您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > ARIMA预测原理以及SAS实现代码
█ARIMA定义ARIMA的完整写法为ARIMA(p,d,q)►其中p为自回归系数,代表数据呈现周期性波动►d为差分次数,代表数据差分几次才能达到平稳序列►q为移动平均阶数,代表数据为平稳序列,可以用移动平均来处理。█平稳性检测方法►方法一:时序图序列始终在一个常数值附近随机波动,且波动范围有界,且没有明显的趋势性或周期性,所以可认为是平稳序列。下图明显不是一个平稳序列procgplotdata=gdp;plotgdp*year=1;symbolc=redi=joinv=star;run;►方法二:自相关图自相关系数会很快衰减向0,所以可认为是平稳序列。procarimadata=gdp;identifyvar=gdpstationarity=(adf=3)nlag=12;run;►ADF单位根检验(精确判断)三个检验中只要有一个PrRho小于0.05即可认定为平稳序列,主要是stationarity=(adf=3)起作用procarimadata=gdp;identifyvar=gdpstationarity=(adf=3)nlag=12;run;█白噪声检验Pr卡方0.05即可认定为通过白噪声检验。procarimadata=gdp;identifyvar=gdpstationarity=(adf=3)nlag=12;run;█非平稳序列转换为平稳序列方法一:将数据取对数。方法二:对数据取差分dif函数datagdp_log;setgdp;loggdp=log(gdp);cfloggdp=dif(loggdp);run;/**对数数据散点图**/procgplot;plotloggdp*year=1;symbolc=blacki=joinv=star;run;/*一阶差分对数数据散点图*/procgplot;plotcfloggdp*year=1;symbolc=greenv=doti=join;run;从上图中可以看出,一阶差分后序列已经变成平稳的了,因此,数列需要做一阶差分█转换完毕后再验证下面代码中的(1)就代表1阶差分,adf=3则代表平稳性检验0-3,/*一阶差分对数数据的自相关图、偏自相关图、纯随机性检验、单位根检验*/procarimadata=gdp_log;identifyvar=loggdp(1)stationarity=(adf=3)nlag=12;run;用QLB统计量作的2检验结果表明:对数差分后的GDP序列的QLB统计量的P值为0.0045(0.05),故序列为非白噪声序列。单位根检验结果表明:对数差分后的GDP序列有常数均值、无趋势的二阶自回归模型的Tau统计量的P值小于0.0573,故序列基本可以确定为平稳序列,并可初步考虑用ARMA(2,q)模型对它们进行拟合。█模型定阶/**定阶**/procarimadata=gdp_log;identifyvar=loggdp(1)nlag=6minicp=(0:2)q=(0:4);run;/*minic为一定范围模型定阶——相对最优模型识别*/采用相对最优模型识别,根据上述分析及序列的自相关和偏自相关图,适当选择m=4,n=2,使用indentify命令中的minicp=(0:n)q=(0:m)短语进行相对最优模型定阶。结果显示(图6.10),在p=1,q=4时,BIC函数值最小。执行ARIMA过程的Estimatep=1q=4命令做参数检验,结果未能通过参数检验。让q在0~3之间取值,通过反复测试,只有ARMA(1,3)模型与ARMA(1,0)模型通过参数检验及模型检验,其检验结果及参数估计如图6.11所示。█参数估计/**参数估计**/procarimadata=gdp_log;identifyvar=loggdp(1);estimatep=1q=4;run;/*SAS支持三种估计,默认为条件最小二乘估计,要制定可增加选项:METHOD=ML极大似然估计METHOD=ULS最小二乘估计METHOD=CLS条件最小二乘估计输出项的含义见王燕P104*/;从上面可以看出,在p=1q=4时,通不过检验。p=1q=3和p=1q=0时能通过检验从上面2个模型的检验结果可以看到,它们均为有效模型,但ARMA(1,0)模型的AIC为-67,SBC为-65均比ARMA(1,3)的AIC与SBC小,根据AIC准则和SBC准则,ARMA(1,0)应该更有效,所以应选择前者作为预测模型。GDP对数序列模型的口径为:Bxtt49853.01155955.0log其中,xt表示GDP序列,模型可写为:ttttxxx078207.0log49853.0log49853.1log21█预测/**参数估计及预测**/procarimadata=gdp_log;identifyvar=loggdp(1)nlag=16;estimatep=1q=0;forecastlead=4id=yearout=results;run;█还原预测数值并画图/**绘制预测图**/dataresults;setresults;y=exp(loggdp);estimate1=exp(forecast);el95=exp(l95);eu95=exp(u95);run;procgplotdata=results;ploty*year=1estimate1*year=2el95*year=3eu95*year=3/overlay;symbol1c=blacki=nonev=star;symbol2c=redi=joinv=none;symbol3c=greeni=joinv=nonel=2;run;█另一种确定p、q的方式procarimadata=gdp;identifyvar=gdpstationarity=(adf=3);run;直接对gdp求arima模型,可已看出acf是拖尾,而pacf是1阶截尾,所以最好是p=1,q=0█确定p、q的方式理论由于),(qpARMA模型可以转化为无穷阶移动平均模型,所以),(qpARMA模型的自相关系数不截尾。同理,由于),(qpARMA模型也可以转化为无穷阶自回归模型,所以),(qpARMA模型的偏自相关系数也不截尾。总结)(pAR模型、)(qMA模型和),(qpARMA模型的自相关系数和偏自相关系数的规律,见表6.1所示。模型自相关系数k偏自相关系数kk)(pAR拖尾p阶截尾)(qMAq阶截尾拖尾),(qpARMA拖尾拖尾█模型优化指标当一个拟合模型在指定的置信水平下通过了检验,说明了在这个置信水平下该拟合模型能有效地拟合时间序列观察值的波动。但是这种有效的拟合模型并不是惟一的。如果同一个时间序列可以构造两个拟合模型,且两个模型都显著有效,那么应该选择哪个拟合模型用于统计推断呢?通常采用AIC和SBC信息准则来进行模型优化。1.AIC准则AIC准则是由日本统计学家赤池弘次(Akaike)于1973年提出,AIC全称是最小信息量准则(aninformationcriterion)。AIC准则是一种考评综合最优配置的指标,它是拟合精度和参数未知个数的加权函数:AIC=-2ln(模型中极大似然函数值)+2(模型中未知参数个数)(6.68)使AIC函数达到最小值的模型被认为是最优模型。2.BIC准则AIC准则也有不足之处:如果时间序列很长,相关信息就越分散,需要多自变量复杂拟合模型才能使拟合精度比较高。在AIC准则中拟合误差等于)ˆln(2n,即拟合误差随样本容量n放大。但是模型参数个数的惩罚因子却与n无关,权重始终为常数2。因此在样本容量n趋于无穷大时,由AIC准则选择的拟合模型不收敛于真实模型,它通常比真实模型所含的未知参数个数要多。为了弥补AIC准则的不足,Akaike于1976年提出BIC准则。而Schwartz在1978年根据Bays理论也得出同样的判别准则,称为SBC准则。SBC准则定义为:SBC=-2ln(模型中极大似然函数值)+ln(n)(模型中未知参数个数)(6.69)它对AIC的改进就是将未知参数个数的惩罚权重由常数2变成了样本容量n的对数)ln(n。在所有通过检验的模型中使得AIC或SBC函数达到最小的模型为相对最优模型。之所以称为相对最优模型是因为不可能比较所有模型。表6.2河南省历年国民生产总值数据年份(Year)生产总值(亿元)(GDP)人均生产总值(元)(PGDP)年份(Year)生产总值(亿元)(GDP)人均生产总值(元)(PGDP)1978162.92232.319921279.751452.31979190.09266.719931662.761867.41980229.16316.719942224.432475.21981249.69340.119953002.743312.81982263.3035319963661.184007.41983327.95432.919974079.264430.11984370.04481.619984356.604695.11985451.74579.719994576.104893.71986502.91635.320005137.6654441987609.60755.820015640.115923.61988749.09909.920026168.736436.51989850.711012.320037048.597570.21990934.651090.620048815.099469.919911045.731201.2█附:完整代码datagdp;infiledatalines;inputyeargdppgdp;formatgdpBEST12.2pgdpBEST12.2;datalines;1978162.92232.31979190.09266.71980229.16316.71981249.69340.11982263.303531983327.95432.91984370.04481.61985451.74579.71986502.91635.31987609.60755.81988749.09909.91989850.711012.31990934.651090.619911045.731201.219921279.751452.319931662.761867.419942224.432475.219953002.743312.819963661.184007.419974079.264430.119984356.604695.119994576.104893.720005137.66544420015640.115923.620026168.736436.520037048.597570.220048815.099469.9;run;/**原始数据散点图**/procgplotdata=gdp;plotgdp*year=1;symbolc=redi=joinv=star;run;/*注symbol常用参数C—图形颜色,red_红色,black_黑色,green_绿色,blue_蓝色,pink_洋红等*//*V—观测值的图形,star_*,dot_.,cicle_圆圈,diamond_菱形,none_不标*//*I—观察值的链接方式,join_线连,spline_光滑连接,needle_作观察值到横轴悬垂线,none_不连*/procarimadata=gdp;identifyvar=gdpstationarity=(adf=3);run;/**原始数据对数、差分变换**/datagdp_log;setgdp;loggdp=log(gdp);cfloggdp=dif(loggdp);run;/**对数数据散点图**/procgplot;plotloggdp*year=1;symbolc=blacki=joinv=star;run;/*一阶差分对数数据散点图*/procgplot;plotcflo
本文标题:ARIMA预测原理以及SAS实现代码
链接地址:https://www.777doc.com/doc-6879648 .html