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,
rolling
can 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.