SAS:计算前 30 天的滚动偏差

SAS: Calculating rolling skew of previous 30 days

我想滚动计算前 30 天的时间序列(股票 returns)的偏差(从而获得每日值)。

数据集看起来像:

Stock   date    month   year    return
1SF7    1/07/2016   7   2016    0.94
1SF7    5/07/2016   7   2016    0.91
1SF7    6/07/2016   7   2016    0.82
1SF7    7/07/2016   7   2016    0.95

........

目前,我尝试了 proc 方法,只计算月末偏度

            proc means data=have; by year month;
                output out= want (drop= _freq_ _type_ ) skew(return)=Skew_monthly; 
            run;

有人知道滚动偏度吗?我知道这里有一个问题要求滚动偏度,但该问题的答案每 30 天只输出一个值,但我想要每日值。

感谢任何意见! 马克

谢谢,我用数组版本管理它:

data want; array p{0:29} _temporary_;
    set have; by symbol;
        if symbol then call missing(of p{*});
            p{mod(_n_,30)} = return;
                skew = skewness(of p{*});
run;