使用SAS系统对时间序列ARMA模型进行模型识别,阶数判定、参数估计和预测

一、首先对时间序列建立数据集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系统进行如上系列操作可以非常方便的进行时间序列的模型识别,阶数判定,参数估计和预测,并进行下一步的研究。

  • 31
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ARMA模型是一种在时间序列分析中常用的模型,它由自回归(AR)和滑动平均(MA)两个部分组成。AR部分表示当前值与过去值之间的线性关系,而MA部分表示当前值与随机误差项之间的线性关系。ARMA模型可以用来预测未来时间序列的值。 建立ARMA模型的过程包括以下几个步骤: 1. 平稳性检验:首先需要确认时间序列是否满足平稳性条件。可以通过绘制时序图和使用统计量(如自相关函数)来判断序列是否平稳[3]。 2. 确定阶数:确定AR和MA的阶数,即p和q。可以使用自相关函数和偏自相关函数来帮助确定合适的阶数。 3. 参数估计使用最小二乘法或最大似然估计来估计模型的参数。 4. 模型检验:对模型进行检验,包括检查残差的自相关性、正态性和异方差性等。 5. 模型预测使用建立ARMA模型进行时间序列预测。 在实际应用中,可以使用R语言中的TSA包来进行ARMA模型的建模和预测。要建立ARMA模型,首先需要确认时间序列的平稳性,可以绘制时序图来观察序列的趋势和波动。接下来,可以使用自相关函数来确定AR和MA的阶数。然后,通过最小二乘法或最大似然估计来估计模型的参数。最后,对模型进行检验,包括检查残差的自相关性和正态性等。完成模型检验后,可以使用建立ARMA模型进行时间序列预测。 总结起来,建立ARMA模型的过程包括平稳性检验、阶数的确定、参数估计模型检验和模型预测。通过这一过程,我们可以建立一个合适的ARMA模型预测时间序列的未来值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值