一、首先对时间序列建立数据集pp,并绘制时序图
data pp;
input a@@;
time=_n_;
cards;
0.31 -0.45 0.32 1.20 0.17 0.45 2.15
4.41 3.58 2.99 1.74 2.40 0.11 0.96
0.21 -0.10 -1.27 -1.45 -1.19 -1.47 -1.34
-1.12 -0.27 0.14 -0.07 0.10 -0.15 -0.36
-0.50 -1.93 -1.49 -2.35 -2.18 -0.39 -0.52
-1.24 -3.46 -3.97 -4.60 -3.09 -2.19 -1.21
0.78 0.88 1.07 1.44 1.50 0.29 -0.36
-0.97 -0.30 -0.28 0.70 0.91 1.95 1.77
1.81 0.56 -0.11 0.10 -0.56 -1.34 -2.47
0.04 -0.69 -1.96 0.04 1.49 0.25 0.39
1.03 -0.39 -0.16 2.07 1.35 1.46 1.50
0.92 -0.08 -0.66 -0.21 -0.71 -0.51 0.15
;
proc gplot data=pp;
plot a*time=1;
symbol1 c=red i=join v=star;
run;
运行结果如下:
从时序图可以看到,时间序列为平稳序列
二、对时间序列数据进行统计分析,并进行平稳性检验结果,在这里用到了identify语句。
proc arima data=pp;
identify var=a nlag=8 stationrity=(adf);
run;
运行结果如下:
从白噪声自相关的检验结果看,时间序列a为非白噪声序列;ADF检验结果来看,该时间序列为平稳时间序列。程序的运行结果输出了时序图、自相关图、偏自相关图和逆自相关图。对时间序列的ARMA模型的定阶起来初步判别作用。
三、ARMA模型的阶数的识别
proc arima data=pp;
identify var=a nlag=8 stationrity=(adf) minic p=(0:5) q=(0:5);
run;
minic p=(0:5) q=(0:5)语句输出了,自相关阶数0-5,移动平价阶数0-5时间序列的Minimum Information Criterion,对模型的阶数起到了判别作用,但该判别的阶数的起到了参考作用,但该阶数并不是一定最优的。
程序输出了模型阶数的识别判别结果:
最小表值: BIC(0,4) = -0.34263 |
在本例中按照模型的运行结果,使用MA(4)进行参数估计和预测。
四、模型参数的估计,默认使用条件最小二乘法进行参数估计
estimate q=4;
run;
运行结果如下:
从程序运行结果可以看到,常数的系数不显著,P值为0.7391,不能拒绝原假设。
所以本来中舍去常数项再一次进行模型参数估计。
使用如下命令:
estimate q=4 noint;
run;
模型运行结果为:
从运行结果可以看到,各系数显著拒绝原假设。并且程序运行输出了模型拟合结果的统计量
AIC,SBC等,用于识别模型拟合的优劣。
五、残差的各项检验
从残差的自相关性检查中,残差为白噪声序列。
程序运行输出了残差的自相关图和正态性的检验结果:
残差的各种相关图显示,残差的自相关系数和偏自相关系数各阶相关系数都在2倍的标准差范围内,说明时间序列的相关信息提取较好,残差中相关性不显著。
六、时间序列的ARMA的预测
forecast lead=5 id=time out=results;
run;
使用如上命令,时间序列的预测结果输出如下:
七、根据时间序列数据集自行绘制数据序列的拟合和预测图
proc gplot data=results;
plot a*time=1 forecast*time=2 l95*time=3 u95*time=3/overlay;
symbol1 c=black i=none v=star;
symbol2 c=red i=join v=none;
symbol3 c=green i=join v=none line=25;
run;
运行如下:
八、总结
通过如上运用SAS系统进行如上系列操作可以非常方便的进行时间序列的模型识别,阶数判定,参数估计和预测,并进行下一步的研究。