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

时间:2017-02-19 04:58:14

标签: sas proc skew

我想以滚动方式计算前30天的时间序列(股票回报)的偏差(因此,获取每日价值)。

数据集看起来像:

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天输出一个值,但我想要每日价值。

感谢任何输入! 马克

1 个答案:

答案 0 :(得分:0)

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

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;