现有大量的股票数据,想分别对每一个股票的return做autoregressive model AR(15)的分析, 即:
y= c + a1*y(t-1) + a2*y(t-2) + a3*Y(t-3) + .....+ a15*Y(t-15) + e;
sample data shown below:
date ID y
20040105 am 0.0123
20040107 am 0.0134
20040108 am 0.0158
..
..
20040105 ad 0.0123
20040107 ad 0.0134
20040108 ad 0.0158
..
..
现知道有两种运行autoregressive 的方法:
方法一:
proc autoreg data=a;
model y = / nlag=15 method=ml;
by ID;
run;
方法二:
data b;
set a;
ylag1 = lag1( y ); ylag2 = lag2( y );ylag3 = lag3( y ); .....ylag15 = lag15( y );
run;
proc autoreg data=b;
model y = ylag1 ylag2 ylag3 ...ylag15 ;
by ID;
run;
想请教这两种方法都可行么?我用上面两种方法运行出来的结果好像不太一样。其中方法一的语句“model y = / nlag=15 method=ml;” y=后面可以是空白么?
另一个问题是用proc autoreg运行出来的结果都在output里显示,但由于我的数据量过大,运行后会提示“windows is full and must be cleared" 想请教能不能用其他什么语句 例如 outset或者output out语句把运行出来的结果输出到数据集里。我想要输出的结果包括AR model的系数以及p-value(t-value),R-square。
请教各位高手帮忙解答一下 万分感谢!!