SASers often find proc expand plus transformout very useful for rolling-window (or moving-window) computation. Stataers may wonder if there is a counter party in Stata. The answer is “yes”. The command in Stata is rolling. See the manual below:
http://www.stata.com/manuals13/tsrolling.pdf
The benefits of using rolling in Stata comes from two facts:
- Stata is superior to SAS in dealing with time-series or panel data. After a single-line command to define time-series or panel data (
tsset), Stata can handle gaps in time series intelligently and automatically. In contrast, SAS users have to manually check gaps in time series. 90% of SAS codes using rolling-window transformation in accounting research do not have such gap check. This may generate incorrect inferences. - In Stata,
rollingcan be combined with any other command such asregress. Therefore rolling-window computation in Stata is more flexible.
However, proc expand plus transformout in SAS is insanely faster than rolling in Stata (by “insanely faster”, I mean maybe millions times faster). This is truly a deal breaker for Stata.
Therefore, the best solution to rolling-window computation is to use Stata to do the gap check and filling (tsfill) first, and then use SAS to do lightening rolling-window computation.