搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  rolling regressions with SAS.pdf
资料下载链接地址: https://bbs.pinggu.org/a-2001522.html
附件大小:
181.46 KB   举报本内容
看到有不少朋友寻求滚动回归的程序,对国外的讲解又没看懂,因此分享一个现成的程序,以及程序的英文原版来源。
首先滚动回归是指在回归的时候,对固定长度的时间窗口进行回归,并一直在时间序列上滚动。典型的应用是股票收益率CAPM模型回归,一般都采用36个月固定长度的数据来回归。下面的程序以此为例,样本包含所有股票的月度股票收益率,因此有股票和时间两个维度:

  1. proc sort data=stock;/*** 一定要把数据先排序好 ***/
  2. by stkcd date;
  3. run;

  4. DATA rwin / view=rwin;
  5. array _X {36} _temporary_ ;/*** 创建长度为36的数组,到时候把需要回归的数据放进去***/
  6. array _Y {36} _temporary_ ;
  7. set stock;
  8. by stkcd;
  9. retain N 0; /*** 利用N来识别不同股票,否则不同股票的数据会进入同一个数组,造成混乱 ***/
  10. N = ifn(first.stkcd,1,N+1); /*** 对于同一只股票,N按照时间顺序逐步+1,到下一只股票时,N重设为1 ***/
  11. I=mod(N-1,36)+1; /*** I用来获取数组中的位置;这三行的意思是,将头36个数据放入数组 ***/
  12. _X{I}=ret;
  13. _Y{I}=rm;
  14. if N>=36 then do I= 1 to 36; /*** 从第37个观测开始,数组自动往下移一位,将最早的观测剔除,加入最新的观测 ***/
  15. ret=_X{I};
  16. rm=_Y{I};
  17. output;
  18. end;
  19. run;
  20. proc reg data=rwin noprint outest=outvar; /*** 最后回归,获取回归结果 ***/
  21. by stkcd date;
  22. model ret=rm;
  23. quit;
复制代码
这个方法不需要用到宏,比较好理解。但是对于数据量非常大的,几百万行观测的,可能运行比较慢。
英文原文中还有其他方法,感兴趣可看原文 :




    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2026-1-20 09:32