目录
一、西安GDP 的 ARIMA 分析
通过对某一指标进行短期的ARIMA分析预测,我们能够预见其未来几年的变化趋势.基于这些预测结果,我们可以采取针对性的措施和制定适应性政策,以促进快速且高效的发展.以西安GDP为例,我们首先运用ARIMA模型进行分析,并与回归分析的结果进行比较,以便选取更优的模型对其他指标进行预测分析.
二、判断序列的平稳性
我们以 GDP 作为西安地区的总产值指标,并采用1990至2021年的数据集.通过绘制 GDP 的随时间变化图表,即时序图,我们可以直观地观察到数据随时间显著增长的走势,如图展示.
这表明原始序列存在明显的上升趋势,为了减缓上升趋势,对该序列进行取对数(以10为底)处理,取对数后,时序图如图.
观察取对数后的分时序图,上升趋势依旧存在.因此在此基础上,继续进行差分处理.然而,当进行二阶差分后,时序图显示出较为平稳的趋势.因此,可以初步认为初始序列是二阶差分后平稳的时间序列如图 所示.
进一步利用adf检验,检验该序列的平稳性,结果如下图:
ADF检验p值小于0.05,表明该序列不存在单位根,说明该序列为平稳序列.
对一阶差分后的序列进行白噪声检验,SAS输出结果如图.
p值小于0.05,说明序列是非白噪声序列,说明可以进行后续分析.
三、定阶和预测
ACF图和PACF图均为2阶拖尾.
下面借助BIC最小准则确定最优模型,结果如下:
最小BIC 信息量为-8.234.由BIC最小准则确定的最优模型为ARIMA(2,2,0) .因此尝试利用该模型进行拟合,该模型参数检验结果如下:
该模型中常数项以及AR(1) 项不显著,只有AR(2) 显著,因此对该模型进一步使用稀疏系数处理,只保留AR(2) 项,结果如下:
残差的白噪声检验结果如图所示.
残差随机性检验结果表明,残差为随机序列,表明该模型很好的提取了序列的信息.
如图所示,残差的每项滞后阶的白噪声检验p值都大于0.05,通过显著性检验,残差为白噪声序列,就如同图4-10的残差正态诊断图一样,残差服从正态分布,不含有有效性息,模型拟合效果好.最终拟合模型结果如图:
利用该模型进行拟合和预测,模型拟合图如图.
由拟合图可知模型拟合值与真实值非常接近.进一步利用该模型预测2021-2027年西安的GDP数据,结果如图(取log后):
对比 2022年和 2023年的预测结果.结果显示,相对误差保持在 0.10 以内,这表明模型的预测性能较为可靠.
真实值 | 预测值 | 误差 | |
2022年 | 11486.51 | 11593.11 | 0.0092 |
2023年 | 12010.76 | 12615.37 | 0.0503 |
2024年 | — | 13630.13 | — |
2025年 | — | 14702.8 | — |
2026年 | — | 15911.09 | — |
2027年 | — | 17230.58 | — |
SAS代码附录:
/*导入数据集*/
data data1;
input year GDP;
GDP_log=log10(GDP);
cards;
1990 116.51
1991 136.14
1992 164.85
1993 229.56
1994 289.82
1995 330.35
1996 406.95
1997 488.82
1998 525.85
1999 577.29
2000 646.13
2001 734.86
2002 826.68
2003 941.60
2004 1095.87
2005 1270.14
2006 1473.68
2007 1763.73
2008 2190.04
2009 2724
2010 3241.5
2011 3864.21
2012 4366.1
2013 4884.13
2014 5492.64
2015 5801.2
2016 6282.65
2017 7471.89
2018 8349.86
2019 9321.19
2020 10020.39
2021 10688.28
;
run;
/*原数据时序图*/
proc sgplot data= data1;
series x=year y=GDP;
run;
/*取log数据时序图*/
proc sgplot data= data1;
series x=year y=GDP_log;
run;
/*一阶差分后平稳性检验*/
proc arima data=data1;
identify var=GDP_log(1) nlag=6 stationarity=(adf=0);
run;
/*二阶差分后平稳性检验*/
proc arima data=data1;
identify var=GDP_log(1,1) nlag=6 stationarity=(adf=0);
run;
/*利用minic过程根据BIC最小原则寻找最优模型*/
proc arima data =data1;
identify var=GDP_log(1,1) minic p=(0:2) q=(0:2);
run;
/*模型估计*/
proc arima data =data1;
identify var=GDP_log(1,1);
estimate p=2 ;
run;
/*稀疏处理*/
proc arima data =data1;
identify var=GDP_log(1,1);
estimate p=(2) noint;
run;
/*预测*/
proc arima data =data1;
identify var=GDP_log(1,1);
estimate p=(2) noint;
forecast lead=6 id=year out=results;
run;
/*预测图和拟合图*/
proc gplot data=results;
plot GDP_log*year=1 forecast*year=2 l95*year=3 u95*year=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;
标签:GDP,run,log,模型,ARIMA,序列,SAS,data
From: https://blog.csdn.net/lonelyxxyo/article/details/140250366