ARIMA时间序列模型-操作篇
Posted 统计联盟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARIMA时间序列模型-操作篇相关的知识,希望对你有一定的参考价值。
上期我们介绍了ARIMA模型的理论,在理论的基础上,本期将结合实例进行软件操作,本期介绍ARIMA模型的SPSS操作,以方便大家对照用自己的数据:
1缺失值填补
如果数据有缺失,是无法做ARIMA的模型预测的,所以第一步是缺失值的填补。
2定义时间变量
点击数据-定义日期,选择对于的格式。
如果提供的格式没有我们想要的,可以用语法自定义。如果我们定义年、周这样数据,操作如下:文件-新建-语法。语法中CYCLE代表日期循环的起始,默认间隔为1,WEEK代表周次,52代表52周为一个周期。
3时间序列平稳话与季节性模型识别
ARIMA序列分析的前提要求时间序列为零均值的平稳随机序列。为此我们首先要做时间序列图对原始的数据进行观察。
我们得到的序列图如下,观察图形可知时间序列具有明显的上升性和季节性,对数据进行一次差分与季节性差分转换,重新获得新的时间序列图。再次观察可知转换后的时间序列图基本是一个白噪声序列。
数据转换:
数据转化后时间序列图:
4ACF图与PACF图
对未转换的数据做ACF与PACF图。
当时间序列较长时可以增大延迟数便于观察。
得到的ACF图显示在特定的节点均出现局部极大值,结合时间序列图可初步判断时间序列具有季节性,因此建立的模型应为混合模型(季节+非季节)。
5季节模型参数的确定
对数据做一次季节性差分观察得到的ACF与PACF图。观察可知ACF图是拖尾的,而PACF图是骤减的,初步确定季节性部分可能为AR模型p=1,参数为ARIMA(1,1,0)。
ACF图:
PACF图:
6建立季节性模型部分
以ARIMA(1,1,0)进行建模,步骤如下:
step1:
step2:
切换到“统计量”,选择需要保存的统计量,将“参数估计”与“显示预测值”勾选。
step3:
切换到图表,选择图形的选项。
step4:
点击确定之后输出结果如下图:
结果1:参数汇报
结果2:参数检验
结果3:残差ACF与PACF图
模拟拟合的判断:
(1)R方:
决定系数,即现有模型可以解释原变量的多少变异。对于有趋势有周期波动的序列而言,R方往往有点过于乐观,因为只要把相应的趋势解释掉,可能就占了相当大的变异解释,比较客观的平稳的R方,指的是平稳后的序列,我们的建模可以解释多少信息。
(2) RMSE:
相当于回归里的残差剩余的离散程度,残差的均方
(3)MAPE,MaxAPE:
相当于相对误差和绝对误差,相对于原始数据,我们的误差有百分之多少,2.07%
(4)MAE,MaxAE:
平均的实测误差,最大的绝对误差
(5)正态化的BIC:
基于均分误差的分数,可用于比较相同序列的不同模型的统计量。
(6)模型统计量:
Ljung-Box的sig(P值)告诉我们这个序列是不是白噪声,该例子中p值<0.05,h0为扣除模型后的残差是白噪声,拒绝H0,说明残差还不是白噪声,需要加入非季节的模型。
(7)ARIMA模型参数:
t检验的p值均小于0.05,说明我们构建的模型参数是有统计学意义的。
(8)残差的ACF与PACF图:
ACF图与PACF图均为仍不是白噪声序列,其中ACF图与PACF图为拖尾,可初步判定非季节性部分为ARIMA(1,1,1)。
综上所述,我们的季节模型经过尝试构建,仍然有不足,仍含有非季节性部分,需要继续添加非季节性部分。
7加入非季节性部分
重复(6)中的步骤,设置模型为ARIMA(1,1,1)(1,1,0)
得到结果如下:
结果1:参数汇报
结果2:参数检验
结果3:残差ACF与PACF图
结果4:模型拟合效果
结论:输出的结果显示Q统计量的p值>0.05,模型的参数均有意义,残差图与趋于白噪声,模型的拟合效果较好,可认为我们创建的模型效果较好。
8模型间比较
由观察得到的模型不一定是最优模型,可能由于观察的不确定性,有时候不能确定模型到底是拖尾的还是骤减的,可以假设多个可能的模型,然后去比较得到的结果。
例如我们在该例子中季节性部分可能是ARIMA(0,1,1),混合后的模型为ARIMA(1,1,1)(0,1,1),因此我们需要去比较两个模型的哪个个好。可以选择正态化的BIC较小的那个。
ARIMA(1,1,1)(0,1,1)得到的结果如下图。在参数均有意义的前提下比较正态化的BIC,ARIMA(1,1,1)(1,1,0)为7.755,ARIMA(1,1,1)(0,1,1)为7.675,且平稳R方后者稍微高点,因此ARIMA(1,1,1)(0,1,1)较优。
我们可以去把所有可能的结果列出来,然后比较后选择最优的模型。所以做ARIMA预测的过程是一个探索比较的过程,模型也没有绝对的好坏。
9预测未来数据
想要预测未来的数据,在创建模型的时候需要在“保存”与“选项”界面做如下配置,之后在数据视图界面就能看到结果。
参数配置:
指定预测时间:
10验证数据集
一般我们可以将已有的数据集分为分析集与验证集,分析集用于建模,验证集用于验证。对于spss将验证集与预测值同时选入序列图后作图比较二者的拟合程度,或者计算RMSE。可以手动计算RMSE,将验证集与预测的数据集做差得到的残差算RMSE。可新建语法输入”FIT VARIABLES=残差变量.”得到RMSE结果,比较不同模型的RMSE可知道哪个模型的预测效果更好。
语法输入:
结果输出:
1.张文彤.SPSS统计分析高级教程(第二版)
2.孙振球.医学统计学(第四版)
https://blog.csdn.net/u010159842/article/details/53067828
小编寄语
ARIMA模型需要用户根据自身数据不断判断和调整,是个不断修正的过程,相对其它模型往往比较复杂和主观,如果你暂时不能掌握也没关系,欢迎您随时与我们交流!
为方便联盟内部成员交流,特建立微信交流群,由高校、科研院所、临床医生构成,由于群人数超过100,需要由工作人员拉你才能入群,工作人员二维码如下,添加时请备注“申请入群”;此外现转发我们指定的推文就可送SPSS、SAS、R软件视频教程一套,详情请点击下方阅读全文。
科研统计交流群工作人员二维码
以上是关于ARIMA时间序列模型-操作篇的主要内容,如果未能解决你的问题,请参考以下文章
R语言实战应用精讲50篇(二十)-R语言时间序列预测模型:ARIMA vs KNN