ARIMA模型应用
- 格式:docx
- 大小:146.30 KB
- 文档页数:9
1)建立数据集
data exp3;
input gnp@@;
date=intnx('qtr','1jan47'd,_n_-1);
format date yyqc.;
cards;
227.8 231.7 236.1 246.3 252.6 259.9 266.8 268.1 263.0
259.5 261.2 258.9 269.6 279.3 296.9 308.4 323.2
331.1
337.9 342.3 345.3 345.9 351.7 364.2 371.0 374.5
373.7
368.7 368.4 368.7 373.4 381.9 394.8 403.1 411.4
417.8
420.5 426.0 430.8 439.2 448.1 450.1 457.2 451.7
444.4
448.6 461.8 475.0 499.0 512.0 512.5 516.9 530.3
529.2
532.2 527.3 531.8 542.4 553.2 566.3 579.0 586.9
594.1
597.7 606.8 615.3 628.2 637.5 654.5 663.4 674.3
679.9
701.2 713.9 730.4 752.6 775.6 785.2 798.6 812.5
822.2
828.2 844.7 861.2 886.5 910.8 926.0 943.6 966.3
979.9
999.3 1008.0 1020.3 1035.7 1053.8 1058.4 1104.2 1124.9
1144.4
1158.8 1198.5 1231.8 1256.7 1297.0 1347.9 1379.4 1404.4
1449.7
1463.9 1496.8 1526.4 1563.2 1571.3 1608.3 1670.6 1725.3
1783.5
1814.0 1847.9 1899.0 1954.5 2026.4 2088.7 2120.4 2166.8
2293.7
2356.2 2437.0 2491.4 2552.9 2629.7 2687.5 2761.7 2756.1
2818.8
2941.5 3076.6 3105.4 3197.7 3222.8 3221.0 3270.3 3287.8
3323.8
3388.2 3501.0 3596.8 3700.3 3824.4 3911.3 3975.6 4022.7
4100.4
4158.7 4238.8 4306.2 4376.6 4399.4 4455.8 4508.5 4573.1
4655.5
4731.4 4845.2 4914.5 5013.7 5105.3 5217.1 5329.2 5423.9
5501.3
5557.0 5681.4 5767.8 5796.8 5813.6 5849.0 5904.5 5959.4
6016.6
6138.3 6212.2 6281.1 6390.5 6458.4 6512.3 6584.8 6684.5
6773.6
6876.3 6977.6 7062.2 7140.5 7202.4 7293.4 7344.3 7426.6
7537.5
7593.6
;
run;
注:Intnx函数按间隔递增日期,Intnx函数计算某个区间经过若干区间间
隔之后的间隔的开始日期或日期时间值,其中开始间隔内的一个日期或 日期时间值给出。
Intnx函数的格式如下:
Intnx(interval,from,n)
2、 2)绘序列图,输入如下程序:
proc gplot data=exp3;
symbol1 i=spline;
plot gnp*date=1;
run;
3、 观察图形,发现图形成指数函数上升形式,故做对数变换,输入如下程序:
data lexp;
set exp3;
lgnp=log(gnp);
run;
4、 绘变换后序列图,输入如下程序: set设置当前数据集新变量进入新的数据集。
proc gplot data=lexp;
symbol2 i=spline c=red;
plot lgnp*date=2;
run;
5、 提交程序,到graph窗口中观察变换后的序列图,可以看出它成直线上升趋势。对序列做初步识别,输入如下程序: 对数据进行识别。
proc arima data=lexp;
identify var=lgnp nlag=12;
run;
运行结果如下:
Fig1.Description statistics
Fig 2. autocorrelations,inverse autocorrelations and partial autocorrelations
Fig 3. autocorrelation check for white noise
6、 提交程序,观察样本自相关系数,可看出有缓慢下降趋势,结合我们观察的图形,我们知道要对序列做差分运算,作一阶差分,输入如下程序:
identify var=lgnp(1) nlag=12;
run;
结果如下: 7、 提交程序,观察样本自相关系数,可看出样本自相关系数5步后是截尾的,那么确定为MA(5)模型,进行参数估计,输入如下程序:
estimate q=5 plot;
run;
结果如图:
参数估计及显著性结果及拟合统计量
模型残差项的白噪声检验
8、 提交程序,观察输出结果,可看出模型通过了白噪声检验,说明模型拟合充分。且MA1,3 ,
MA1,4的T值较小,说明参数显著为0,除掉这两项重新进行估计,输入如下程序:
estimate q=(1,2,5) plot; run;
参数估计及显著性结果及拟合统计量
模型残差项的白噪声检验
残差项的自相关系数图
9、 提交程序,观察输出结果,可看出模型通过了白噪声检验,说明模型拟合充分,且残差标准误与前一估计相差很小,故以此结果为我们所要的结果,依此结果写出方程式。
所以可得模型方程式为: Z(t)+0.4674Z(t-1)+0.30715Z(t-2)-0.30001Z(t-5)=0.01766+a(t)
10、 进行预测,预测美国未来2年的每季国民生产总值。输入如下程序:
forecast lead=6 interval=qtr id=date out=results;
run;
data results;
set results;
gnp=exp(lgnp);
l95=exp(l95);
u95=exp(u95);
forecast=exp(forecast+std*std/2);
run;
proc print data=results;
var date forcast;
where date>=’1jan96’d;
run;
11、 提交程序,并把预测值记录下来。