1、时间序列分析基于时间序列分析的日本人口分析与预测摘要本文基于R语言和时间序列分析,对日本1960 年至2010 年的总人口数量进行了时间序列分析与预测。揭示了这一期间的日本人口符合ARIMA(1,2,2)模型,更新至最新数据后依此预测了未来10年的人口数据。关键字:时间序列,日本人口,R语言原始数据: 数据来源:日本総務省統計局1.数据预处理1.1平稳性检验通过绘制时间序列的时序图,自相关图和偏相关图判断序列的平稳性。 dat=read.csv(file.csv)ts0.05因此接受原假设,即序列非平稳1.2平稳化对原序列进行一阶差分 进行单位根检验,p值为0. 31710.05tsdiff1
2、-diff(ts,diff=1)plot(tsdiff1)acf(tsdiff1)adf.test(tsdiff1)一阶差分序列趋于平稳但自相关图下降依然缓慢,p值改善不明显,仍非平稳,因此继续进行二阶差分 时序图基本在零均值附近震荡自相关图迅速衰减为零进行单位根检验,p值=0.026080.05因此拒绝原假设,即判断序列平稳。Tsdiff2-diff(ts,diff=2)plot(tsdiff2)adf.test(tsdiff2)1.3白噪声检验由acf图像可知,2阶自相关依然显著。Box.test(tsdiff2,type=Ljung-Box)shapiro.test(tsdiff2)Sh
3、apiro-Wilk检验说明序列是非正态的。Box-Ljung检验说明序列非纯随机,因此有充分理由认为该序列不是白噪声。2.模型识别eacf(tsdiff2)画出二阶差分序列的自相关函数图和偏自相关函数图自相关函数图中1阶显著, q取1偏自相关函数图1阶显著,p取1拓展的自相关函数图零三角的左上角处于p=0,q=1处,与acf,pacf图相矛盾,(p,q)的可能取值包括(0,1),(1,1)。模型ARIMA(0,2,1)的AIC为667.62,ARIMA(1,2,1) 的AIC为669.62其中ARIMA(1,2,1)的AR系数不显著,为此选择偏差较小的模型IMA(2,1)并分别进一步检验。m
4、l.ts; ml.ts23.模型检验3.1自相关检验残差基本是均匀分布在0值上下的,但包含一个超出临界值的异常值。残差ACF全部落在虚线内,Ljung-Box检验p值也全大于0.05。ml.ts=arima(ts,order = c(0,2,1)tsdiag(ml.ts)3.2正态检验残差的分位数-分位数图极值处有明显异常。Shapiro-Wilk正态检验统计量值为W=0.72671,p极小,为10-8量级,因此拒绝原假设,即残差非正态。qqnorm(residuals(ml.ts);qqline(residuals(ml.ts)shapiro.test(residuals(ml.ts)4.参
5、数估计ml.ts即模型为: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年的数据,再次进行预测。 重复之前的步骤,得到新的
6、未来10年的预测, 更新后的模型预测值如上图所示。对本月,即2016年5月1日的预测为127081,与日本总务省统计局公布的预测126960相比相差了120(千人),相差约千分之一,比更新前的数据预测的精度更准确。6异常值检验在前面的分析中,序列中含有明显的异常值,为此我们对异常值进行处理。,1 ,2ind 13.000000 14.000000lambda2 5.093549 -3.900442 detectAO(ml.ts) ,1 ,2ind 13.000000 14.000000lambda1 6.910984 -3.415474detectIO(ml.ts)从上面的AO,IO检验可知,
7、序列在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年的人口数据。对于异常值也进行了分析和重新拟合。参考文献:1Jonathan D. Cryer & Kung-Sik Chan. Time Series Analysis with Applications in R(Second Edition).机械工业出版社,2011
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1