当前位置:首页 > 时间序列分析
残差的分位数-分位数图极值处有明显异常。Shapiro-Wilk正态检验统计量值为W=0.72671,p极小,为10-8量级,因此拒绝原假设,即残差非正态。
qqnorm(residuals(ml.ts));qqline(residuals(ml.ts)) shapiro.test(residuals(ml.ts))
4.参数估计
ml.ts 即模型为:
?2Y??=????+0.3523?????1
5.预测
利用ARIMA(1,2,2)模型对未来10年的数据进行预测,得到2阶差分的未来10年数据。
plot(ml.ts,n.ahead = 10) predict(ml.ts,10)
将预测值与2011年至2015年的实际值进行比较,可知第一年误差仅为千分之2,随时间增长,由于2011年日本刚好人口首次出现负增长并持续至2014年,误差增长较快,但仍不超过百分之一。综合考虑认为模型预测精度还是很高的。
5.1模型更新
将之前预留的最近5年即2011年至2015的数据更新加入模型,并删除序列最前面的5年即1960至1964年的数据,再次进行预测。 重复之前的步骤,得到新的未来10年的预测,
更新后的模型预测值如上图所示。对本月,即2016年5月1日的预测为127081,与日本总务省统计局公布的预测126960相比相差了120(千人),相差约千分之一,比更新前的数据预测的精度更准确。
6.异常值检验
在前面的分析中,序列中含有明显的异常值,为此我们对异常值进行处理。
[,1] [,2]
ind 13.000000 14.000000 lambda2 5.093549 -3.900442 detectAO(ml.ts) [,1] [,2]
ind 13.000000 14.000000 lambda1 6.910984 -3.415474 detectIO(ml.ts)
从上面的AO,IO检验可知,序列在T=13时有一个IO ,即新息异常。T=14,有一个AO,
即可加异常值。
因此拟合一个在t=13时有一个IO,t=14,有一个AO的IMA模型
m3=arima(ts,order = c(0,2,1),xreg =data.frame(AO=seq(ts)==14),io=c(13)) 新模型的AIC明显变好,但模型参数非显著。因此,考虑拟合只在t=13有一个IO的模型
新模型的模型参数显著,AIC明显变好,且与上面的模型相差不多。因此认为在t=13时有一个IO的IMA(2,1)模型更适合原时间序列。
m4=arima(ts,order = c(0,2,1),io=c(13))
7.结论
本文对日本1960年至2010年的总人口数量进行了时间序列分析与预测。经过分析对比确定这一期间的日本人口符合IMA(2,1)模型,模型通过检验。模型预测与实际数据基本吻合,更新至最新数据后依此预测了未来10年的人口数据。对于异常值也进行了分析和重新拟合。
参考文献:
[1]Jonathan D. Cryer&Kung-Sik Chan.Time Series Analysis with Applications in R(Second Edition).机械工业出版社,2011
共分享92篇相关文档