时间序列分析 第四章非平稳序列的确定性分析.docx
《时间序列分析 第四章非平稳序列的确定性分析.docx》由会员分享,可在线阅读,更多相关《时间序列分析 第四章非平稳序列的确定性分析.docx(30页珍藏版)》请在冰豆网上搜索。
时间序列分析第四章非平稳序列的确定性分析
应用时间序列分析实验报告
实验名称第四章非平稳序列的确定性分析
一、上机练习(就是每章最后一节上机指导部分)
1.拟合线性趋势
在SAS系统中REG(回归)过程与AUTOREG(自回归)过程都可以进行时间序列线性趋势拟。
假定我们要分析的数据存于临时数据集example4_1中,要拟合的线性回归模型为x=a+bt,相关命令如下:
dataexample4_1;
inputx@@;
t=_n_;
cards;
12.7914.0212.9218.2721.2218.81
25.7326.2726.7528.7331.7133.95
;
procautoregdata=example4_1;
modelx=t;
run;
运行该程序输出结果如下:
该输出窗口共输出三方面的信息。
(1)因变量的名称,本例中因变量为x。
(2)普通最小二乘估计相关统计量,该部分输出信息如下表:
SSE(误差平方和)
DFE(误差平方和的自由度)
MSE(均方误差)
RootMSE(均方根误差)
SBC(SBC信息量)
AIC(AIC信息量)
RegressR-Squrae(只针对回归模型的r平方)
Total-R-Square(包括自回归误差过程在内的整体模型的r平方)
Durbin-watson(DW统计量)
(3)参数估计值。
该部分从左到右输出的信息分别是:
变量名、自由度、估计值、估计值的标准差、t值以及统计量大于t值得近似概率P值。
2.拟合非线性趋势
在SAS系统中有一个ULIN(非线性)过程可以进行时间序列非线性趋势拟合。
假如我们要分析的数据存于临时数据集example4_2中,要拟合的非线性回归模型x=at+b^t,则相关命令如下:
dataexample4_2;
inputx@@;
t=_n_;
cards;
1.857.4814.2923.0237.4274.27140.72
265.81528.231040.272064.254113.738212.2116405.95
;
procnlinmethod=gauss;
modelx=a*t+b**t;
parametersa=0.1b=1.1;
der.a=t;
der.b=t*b**(t-1);
outputpredicted=xhatout=out;
run;
(1)“procnlinmethod=gauss;”指令系统采用GAUSS迭代法进行非线性参数估计。
(2)“modelx=a*t+b**t;”告诉系统拟合模型结构。
(3)“parametersa=0.1b=1.1;”告诉系统待估参数是哪些,并给出待估参数的迭代初始值。
(4)“der.a=t;der.b=t*b**(t-1);”给出待估参数的一阶导函数,以便于迭代计算。
(5)“outputpredicted=xhatout=out;”输出部分结果到临时数据集OUT,输出内容包括时间t,原序列值x和估计值x^(本例中该变量取名为XHAT)。
运行该程序共输出如下六方面信息:
(1)迭代过程。
如下图所示。
(2)收敛状况。
如下图所示:
这是告诉我们本次迭代收敛。
(3)估计信息摘要。
如下图所示:
(4)主要统计量。
如下图所示:
(5)参数信息摘要。
如下图所示:
(6)近似相关阵。
如下图所示:
为了直观地看出拟合效果,我们可以将原序列值和拟合值联合作图,相关命令如下:
procgplotdata=out;
plotx*t=1xhat*t=2/overlay;
symbol1c=blacki=nonev=star;
symbol2c=redi=joinv=none;
run;
输出图像如下图所示:
说明:
图中星号为原序列观察值,曲线为拟合值。
通过该图像可以看出拟合效果是非常不错的。
3.X—11过程
以1978--1988年英国非耐用品消费额为例,将数据读入临时序列值example4_3,使用X-11过程进行季节调整,并将原序列与消除季节影响的趋势线联合作图,相关命令如下:
dataexample4_3;
inputx@@;
t=intnx('quarter','1jan1978'd,_n_-1);
formattyyq4.;
cards;
40777417784316045897
41947440614437847237
43315433964484346835
42833435484463747107
42552435264503947940
43740450074666749325
44878462344705550318
46354472604888352605
48527502375159255152
50451522945463358802
53990554775785061978
;
procx11data=example4_3;
quarterlydate=t;
varx;
outputout=outb1=xd10=seasond11=adjustedd12=trendd13=irr;
dataout;
setout;
estimate=trend*season/100;
procgplotdata=out;
plotx*t=1estimate*t=2/overlay;
plotadjusted*t=1
trend*t=1
irr*t=1;
symbol1c=blacki=joinv=star;
symbol2c=redi=joinv=nonew=2l=3;
run;
语句说明:
(1)“procx11data=example4_3;”指令系统对数据集example4_3的数据进行X-11分析。
(2)“quarterlydate=t;”告诉系统这是季度数据(假如是月度数据就应该记作monthly),变量t为时间变量名。
(3)“varx;”告诉系统要进行季节调整的变量为x。
(4)“outputout=outb1=xd10=seasond11=adjustedd12=trendd13=irr;”告诉系统输出部分结果到临时数据集OUT,在此我们要求输出的结果是:
原序列值x(表B1的数值);
季节指数(或称为季节因子)season(表D10的数据);
季节调整后的序列值adjusted(表D11的数据);
趋势拟合值trend(表D12的数据);
最后的不规则波动值irr(表D13的数据)。
X-11过程的输出结果非常多,主要分为七大类:
A.先验修正(可选)
B.不规则成分权重和回归交易因子的初始估计
C.规则成分权重和回归交易日因子的最终估计
D.季节项、长期趋势项和不规则波动的最终估计
E.分析表格
F.概括性量度
G.图表
在每一部分输出里又包含了非常多的子表,由于内容过于庞杂,详细的解析略。
每张表的具体输出内容及解析请考察附录3。
本例输出季节指数图、消除季节效应后的序列图、趋势图及不规则波动图,输出的原序列与拟合序列图如下图所示:
4.Forecost过程
在SAS、EST模块中,有一个专门的forecast过程,可以使用趋势拟合或平滑方法进行快速预测。
以1949--2008年我国每年年末人口总数(单位:
万人)序列为例,将数据读入临时数据集example4_4,使用forecast过程进行快速预测,并将原序列值和预测效果输出,相关命令如下:
dataexample4_4;
inputx@@;
t=1949+_n_-1;
cards;
54167551965630057482587966026661465628286465365994
67207662076585967295691727049972538745427636878534
80671829928522987177892119085992420937179497496259
9754298705100072101654103008104357105851107507109300111026
112704114333115823117171118517119850121121122389123626124761
125786126743127627128453129227129988130756131448132129132802
;
procgplot;
plotx*t=1;
symbol1i=joinv=nonec=black;
run;
procforecastdata=example4_4method=stepartrend=2lead=5
out=outoutfulloutest=est;
idt;
varx;
语句说明:
(1)“procforecastdata=example4_4method=stepartrend=2lead=5out=outoutfulloutest=est;”指令系统对数据集example4_4的数据进行预测分析。
其中:
A.“trend=”是指序列长期趋势特征,“trend=1”是指序列无显著趋势,“trend=2”是指序列有线性趋势,“trend=3”是指序列有曲线趋势。
根据之前的时序图显示,该序列有显著线性递增趋势,所以“trend=2”。
B.“method=stepar”是指特定先使用多项式拟合趋势,拟合好之后,再对残差序列进行自回归拟合,机器会默认一个高阶自回归系数,然后通过逐步回归的方法,筛选合适的延迟阶数,得到最优的AR模型。
所以该方法被命名为逐步自回归方法。
有了拟合和预测数据,还可以绘制预测效果图。
绘图程序如下:
procgplotdata=out;
plotx*t=_type_/href=2008;
symbol1i=nonev=starc=black;
symbol2i=joinv=nonec=red;
symbol3i=joinv=nonec=greenl=2;
symbol4i=joinv=nonec=greenl=2;
run;
程序输出预测效果如下图所示:
二、课后习题
习题6.爱荷华州1984-1979年非农产品季度收入数据。
(详见P123)选择适当地模型拟合该序列长期
趋势。
相关命令如下:
dataexample6_1;
inputx@@;
time=_n_;
cards;
601604620626641642645655682678692707
736753763775775783794813823826829831
830838854872882903919937927962975995
100110131021102810271048107010951113114311541173
117811831205120812091223123812451258127812941314
132313361355137714161430145514801514154515891634
166917151760181218091828187118921946198320132045
204820972140217122082272231123492362244224792528
257126342684279028902964308531593237335834893588
362437193821393440284129420543494463459847254827
49395067523154085492565358285965
;
procgplotdata=example6_1;
plotx*time=1;
symbolc=redi=joinv=star;
run;
得到该序列的时序图:
观察其时序图可得该曲线逐渐递增,为非线性的非平稳序列。
利用曲线专家描绘其曲线得到以下几个拟合模型:
图一
其拟合的模型为:
(图一模型)
图二
其拟合的模型为:
(图二模型)
图三
其拟合的模型为:
(图三模型)
根据曲线专家的拟合效果,当r的数值越接近于1,S的数值越小,表明拟合得效果更好。
图一的r=0.99910801,S=60.00421627,图二的r=0.99087694,S=189.07710034,图三的r=0.98572724,S=237.31358648。
所以我们选择图一作为拟合模型。
又因为拟合模型的各系数为a=495.53956,b=16.507004,c=-0.04922771,d=-0.0015465265。
所以该序列的拟合模型为y=495.53956+16.507004x-0.04922771x^2-0.0015465265x^3
7.某地区1962-1970年平均每头奶牛的月度产奶量数据(单位:
磅)具体数据详见书P123
(1)绘制该序列的时序图,直观考察该序列的特点。
相关命令如下:
dataexample4_3;
inputx@@;
time=_n_;
cards;
589561640656727697640599568577553582
600566653673742716660617583587565598
628618688705770736678639604611594634
658622709722782756702653615521602635
677635736755811798735697661667645688
713667762784837817767722681687660698
717696775796858826783740701706677711
734690785805871845801764725723690734
750707807824886859819783740747711751
;
procgplotdata=example4_3;
plotx*time=1;
symbol1c=blackI=joinv=star;
run;
绘制的时序图可得:
根据所得图像,对序列进行平稳性检验。
时序图就是一个平面二维坐标图,通常横轴表示时间,纵轴表示序列取值。
时序图可以直观地帮助我们掌握时间序列的一些基本分布特征。
根据平稳时间序列均值、方差为常数的性质,平稳序列的时序图应该显示出该序列始终在一个常数值附近随机波动,而且波动的范围有界的特点。
如果观察序列的时序图,显示出该序列有明显的趋势性或周期性,那它通常不是平稳序列。
从图上可以看出,该地区1962--1970年平均每头奶牛的月产奶量数据的时间序列图有明显的递增趋势,所以它不是平稳序列。
(2)使用因素分解方法,拟合该序列的发展,并预测下一年该地区奶牛的月度产奶量。
从
(1)中的时序图中,我们可以确定该序列的波动收到两个因素的影响:
一个是季节效应;一个是随机波动。
假如没有季节效应的影响,每头奶牛的月度产奶量数据应该始终在某个均值附近随机波动,季节效应的存在,使得每头奶牛的月度产奶量数据在不同年份的相同月份呈现出相似的性质。
所以在此我们要消除次序列的季节效应。
为了便于得到数量化的季节信息,构造出季节指数的概念。
季节指数就是用简单平均法计算的周期内各时期季节性影响的相对数。
下面我们来具体计算本序列的序列指数。
计算结果如下表所示:
消除季节效应后的数据如下表所示:
消除季节效应后的数值=原值-(季节指数*总平均)
然后我们对消除季节效应后的数据做时序图和线性拟合:
相关命令如下:
dataexample4_3;
inputx@@;
time=_n_;
cards;
-85.00-79.22-88.33-90.67-82.33-86.33-91.67-91.44-85.11-70.33-80.00-88.11
-74.00-74.22-75.33-73.67-67.33-67.33-71.67-73.44-70.11-60.33-68.00-72.11
-46.00-22.22-40.33-41.67-39.33-47.33-53.67-51.44-49.11-36.33-39.00-36.11
-16.00-18.22-19.33-24.67-27.33-27.33-29.67-37.44-38.11-126.33-31.00-35.11
3.00-5.227.678.331.6714.673.336.567.8919.6712.0017.89
39.0026.7833.6737.3327.6733.6735.3331.5627.8939.6727.0027.89
43.0055.7846.6749.3348.6742.6751.3349.5647.8958.6744.0040.89
60.0049.7856.6758.3361.6761.6769.3373.5671.8975.6757.0063.89
76.0066.7878.6777.3376.6775.6787.3392.5686.8999.6778.0080.89
;
procgplotdata=example4_3;
plotx*time=1;
symbol1c=blackI=joinv=star;
run;
procautoregdata=example4_3;
modelx=t;
outputout=resultp=xcap;
run;
从上面的时序图看以看出,图形像一条线性的直线,数据有明显的递增趋势,所以它不是平稳序列。
下图为做线性拟合后显示的结果图:
从上图我们可以看到变量的参数估计值分别是-98.3227和1.8041,然后我们就对该序列进行残差拟合。
相关命令如下:
dataexample4_1;
inputx@@;
t=_n_;
z=x-(-98.3227+1.8041*t);
cards;
-85.00-79.22-88.33-90.67-82.33-86.33-91.67-91.44-85.11-70.33-80.00-88.11
-74.00-74.22-75.33-73.67-67.33-67.33-71.67-73.44-70.11-60.33-68.00-72.11
-46.00-22.22-40.33-41.67-39.33-47.33-53.67-51.44-49.11-36.33-39.00-36.11
-16.00-18.22-19.33-24.67-27.33-27.33-29.67-37.44-38.11-126.33-31.00-35.11
3.00-5.227.678.331.6714.673.336.567.8919.6712.0017.89
39.0026.7833.6737.3327.6733.6735.3331.5627.8939.6727.0027.89
43.0055.7846.6749.3348.6742.6751.3349.5647.8958.6744.0040.89
60.0049.7856.6758.3361.6761.6769.3373.5671.8975.6757.0063.89
76.0066.7878.6777.3376.6775.6787.3392.5686.8999.6778.0080.89
;
procarimadata=example4_1;
identifyVar=znlag=8minicp=(0:
5)q=(0:
5);
run;
根据检验结果我们知道,在各阶延迟下LB检验统计量的P值都非常小(<0.0001),所以我们可以以很大的把握(置信水平>99.999%)断定该序列样本属于非白噪声序列。
IDENTIFY命令输出的最小信息量结果
某个观察值序列通过序列预处理,可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列建模。
建模的基本步骤如下:
A:
求出该观察值序列的样本自相关系数(ACF)和样本偏自相关系数(PACF)的值。
B:
根据样本自相关系数和偏自相关系数的性质,选择适当地ARMA(p,q)模型进行拟合。
C:
估计模型中未知参数的值。
D:
检验模型有效性。
如果拟合模型不通过检验,转向步骤B,重新选择模型再拟合。
E:
模型优化。
如果拟合模型通过检验,仍然转向步骤B,充分考虑各种可能,建立多个拟合模型,从所有通过检验中选择最优模型。
F:
利用拟合模型,预测序列的将来走势。
最后一条信息显示,在自相数迟阶数小于等于5,移动平均延迟阶数也小于等于5的所有ARMA(p,q)模型中,BIC信息量相对最小的是ARMA(2,0)模型。
即AR
(2)模型。
dataexample4_1;
inputx@@;
t=_n_;
z=x-(-98.3227+1.8041*t);
cards;
-85.00-79.22-88.33-90.67-82.33-86.33-91.67-91.44-85.11-70.33-80.00-88.11
-74.00-74.22-75.33-73.67-67.33-67.33-71.67-73.44-70.11-60.33-68.00-72.11
-46.00-22.22-40.33-41.67-39.33-