时间序列分析实验报告3.docx
《时间序列分析实验报告3.docx》由会员分享,可在线阅读,更多相关《时间序列分析实验报告3.docx(21页珍藏版)》请在冰豆网上搜索。
时间序列分析实验报告3
《时间序列分析》
课程实验报 告
项目名称:
非平稳序列确定性分析
组员姓名:
李菲
指导教师:
牛宪华
完成日期:
2013年4月20日
一、上机练习(P124)
1.拟合线性趋势
12。
7914.02 12。
92 18。
2721。
2218.81
25。
7326.2726.75 28.7331。
71 33.95
程序:
dataxiti1;
inputx@@;
t=_n_;
cards;
12。
79 14。
0212.92 18.2721.2218.81
25。
7326.27 26.75 28。
73 31。
7133。
95
;
proc gplot data=xiti1;
plotx*t;
symbol c=redv=stari=join;
run;
proc autoregdata=xiti1;
modelx=t;
output predicted=xhatout=out;
run;
procgplot data=out;
plotx*t=1 xhat*t=2/overlay;
symbol2c=green v=stari=join;
run;
运行结果:
分析:
上图为该序列的时序图,可以看出其具有明显的线性递增趋势,故使用线性模型进行拟合:
xt=a+bt+It,t=1,2,3,…,12
分析:
上图为拟合模型的参数估计值,其中a=9。
7086,b=1.9829,它们的检验P值均小于0.0001,即小于显著性水平0。
05,拒绝原假设,故其参数均显著。
从而所拟合模型为:
xt=9.7086+1。
9829t.
分析:
上图中绿色的线段为线性趋势拟合线,可以看出其与原数据基本吻合。
2.拟合非线性趋势
1。
85 7。
48 14.2923。
0237。
42 74。
27140。
72
265.81528.23 1040。
27 2064.254113。
738212。
2116405.95
程序:
dataxiti2;
inputx@@;
t=_n_;
cards;
1.857.4814.2923.0237。
4274。
27140。
72
265。
81528.231040。
27 2064。
254113.738212.2116405。
95
;
procgplot data=xiti2;
plotx*t;
symbolc=redv=star i=none;
run;
proc nlinmethod=gauss;
model x=a*b**t;
parameters a=0.1 b=1.1;
der.a=b**t;
der.b=a*t*b**(t-1);
outputpredicted=xh out=out;
run;
procgplotdata=out;
plotx*t=1xh*t=2/overlay;
symbol2c=greenv=nonei=join;
run;
运行结果:
分析:
上图为该时间序列的时序图,可以很明显的看出其基本是呈指数函数趋势慢慢递增的,故我们可以选择指数型模型进行非线性拟合:
xt=abt+It,t=1,2,3,…,12
分析:
由上图可得该拟合模型为:
xt=1。
0309*1.9958t+It
分析:
图中的红色星号为原序列值,绿色的曲线为拟合后的拟合曲线,可以看出原序列值与拟合值基本上是重合的,故该拟合效果是很好的。
3.X-11过程
407774177843160 45897
41947440614437847237
43315433964484346835
42833 4354844637 47107
42552 435264503947940
4374045007 4666749325
44878462344705550318
46354472604888352605
48527502375159255152
504515229454633 58802
539905547757850 61978
程序:
data xiti3;
input x@@;
t=intnx('quarter’,'1jan1978'd,_n_—1);
formattyyq4.;
cards;
40777 41778 4316045897
4194744061 44378 47237
43315433964484346835
428334354844637 47107
42552 43526 4503947940
43740450074666749325
44878462344705550318
4635447260 4888352605
48527502375159255152
50451 5229454633 58802
5399055477 5785061978
;
procgplot data=xiti3;
plotx*t;
symbolc=redv=stari=join;
run;
procx11data=xiti3;
quarterlydate=t;
varx;
outputout=out b1=xd10=seasond11=adjusted d12=trend d13=irr;
dataout;
setout;
estimate=trend*season/100;
proc gplotdata=out;
plotx*t=1estimate*t=2/overlay;
plot adjusted*t=1trend*t=1irr*t=1;
symbol1 c=red i=join v=star;
symbol2c=black i=none v=star;
run;
运行结果:
分析:
上图为该序列的时序图,可以很明显的看出其具有长期增长趋势,且具有季节波动,故我们用X—11过程进行拟合。
分析:
上图为季节调整后的序列值时序图。
分析:
上图为趋势拟合值序列时序图。
分析:
上图为不规则波动值的时序图。
分析:
上图中的红色线段为原序列值,黑色星星为拟合值,可以由图中看出该拟合值与原序列值基本上是重合的,故该拟合效果很好。
4.Forecost过程
程序:
data xiti4;
inputx@@;
t=1949+_n_—1;
cards;
40777417784316045897
41947 440614437847237
433154339644843 46835
42833435484463747107
42552435264503947940
43740450074666749325
448784623447055 50318
46354472604888352605
48527 502375159255152
50451 522945463358802
53990554775785061978
;
procgplot data=xiti4;
plotx*t;
symbolc=red v=stari=join;
run;
procforecastdata=xiti4method=stepar trend=2lead=5 out=outoutfull outest=est;
idt;
varx;
run;
procgplotdata=out;
plotx*t=_type_/href=2008;
symbol1 i=join v=starc=black;
symbol2 i=joinv=nonec=green;
symbol3 i=joinv=nonec=red;
symbol4 i=joinv=nonec=red;
run;
分析:
由该序列的时序图可知,其具有长期趋势,且含有季节效应,趋势特征基本为线性趋势,即trend=2.
分析:
由上表可以很明显的看到每一年的与序列值、预测值,还有预测的后面六期预测值的95%置信区间。
分析:
此表为预测过程中相关参数及拟合效果,可以看到RSQUARE=0.,拟合效果很好。
分析:
上图为预测效果图,其中绿色的线段表示预测值,红色的代表预测的5期值的95%置信区间,黑色的为原序列,可以看出其预测效果很好。
二、课后习题
7.某地区1962-1970年平均每头奶牛的月度产奶量数据(单位:
磅)具体数据详见书P123
589561640 656727697 640599 568577553582
600566653673742 716660617583587 565598
628 618 688705770736 678 639604611594 634
658622709722 782756 702 653 615521 602635
677 635736755811 798 735697 661667 645688
713667762 784 837817 767722681 687 660698
717 696 775796858 826783740 701 706 677711
734690785805871 845 801 764725723690734
750 707 807824 886 859 819 783740747711751
(1)绘制该序列的时序图,直观考察该序列的特点。
程序:
datalianxi1;
inputx@@;
t=intnx(’month','1jan1962'd,_n_—1);
formatt date.;
cards;
589 561640 656727697 640599568577 553 582
600566 653673742716 660617 583 587565598
628 618 688 705 770 736678 639604 611594 634
658 622709 722 782 756 702653 615521 602 635
677 635 736755 811 798 735 697661667 645 688
713667762 784 837 817767722 681 687660698
717696 775796858826783740701 706677 711
734 690 785805 871845 801 764 725 723 690734
750707807 824 886859819 783740 747711751
;
procgplotdata=lianxi1;
plot x*t;
symbol c=redv=stari=join;
run;
分析:
由上图的时序图可以很明显的看出该序列具有长期的增长趋势,且具有明显的季节效应。
(2)使用因素分解方法,拟合该序列的发展,并预测下一年该地区奶牛的月度产奶量.
程序:
procforecastdata=lianxi1method=stepartrend=2lead=12 out=outoutfull outest=est;
idt;
varx;
run;
dataout;
setout;
t=intnx('month’,'1jan1962'd,_n_—1);
procgplotdata=out;
plotx*t=_type_;
symbol1i=joinv=starc=black;
symbol2 i=joinv=nonec=green;
symbol3i=joinv=nonec=red;
symbol4i=joinv=nonec=red;
run;
分析:
上图绿色的为拟合趋势图,后面的12个月就为所预测的1年的奶牛产奶量,上下两条红色的线为95%执行区间,黑色的为原序列时序图,故可以看出该拟合趋势和原序列基本重合,故后面的预测结果也比较可信。
(3)使用X—11方法,确定该序列的趋势。
程序:
procx11data=lianxi1;
monthly date=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=1trend*t=1irr*t=1;
symbol1 c=redi= join v=star;
symbol2 c=blacki=joinv=star;
run;
分析:
上图中,红色的代表原序列,黑色的代表拟合的序列,可以看出除了在66年1月份左右有一点区别外,其余的基本上都与原序列重合,故该拟合效果很好。
8。
某城市1980年1月至1995年8月每月屠宰生猪数量(单位:
头)(数据详见书P123)
选择适当地模型拟合该序列的发展,并预测1995年9月至1997年9月该城市生猪屠宰数量。
data lianxi2;
inputx@@;
t=intnx('month’,’1jan1980’d,_n_-1);
formatt date.;
cards;
76378 719473387396428 10508495741110647 10033194133103055
90595 101457 768898129191643 96228 102736 100264 103491 97027
9524091680101259109564768928577395210937719820297922
100306940891026807791993561117032 81225 88357 106175 91922
10411410995997880 105386 96479 97580 109490110191 9097498981
1071889417711509711369611453212011093607110925103312120184
103069103351 111331 10616111159099447 1019878533386970 100561
8954689265 8271979498 7484673819 77029784468697875878
69571 75722 641827735763292 59380 78332723815597169750
854727013379125 8580581778 8685269069 795568817466698
72258734457613186082 754437396978139786466626973776
800347069481823756407554082229 75345 770347858979769
759827807477588 84100979668905193503847477453191900
81635 89797 8102278265 77271850439541879568 10328395770
91297101244 114525 1011399386695171100183103926 102643 108387
9707790901903368873283759992677329278943 94399 92937
9013091055 106062103560104075 101783937911023138241383534
1090119649910243010300291815 9906711006710159997646104930
88905 89936 106723 8430711489610674987892100506
;
procgplotdata=lianxi2;
plotx*t;
symbolc=redv=stari=join;
run;
proc forecast data=lianxi2method=stepartrend=1lead=24out=out outfulloutest=est;
id t;
varx;
run;
data out;
setout;
t=intnx(’month',’1jan1980'd,_n_—1);
procgplotdata=out;
plotx*t=_type_;
symbol1i=joinv=star c=black;
symbol2i=join v=nonec=green;
symbol3i=joinv=nonec=red;
symbol4i=join v=nonec=red;
run;
分析:
上图为该时间序列的时序图,可以很明显的看出该序列无长期趋势,但在每一年当中由季节性变化。
分析:
上图为预测的2年趋势图,红色的为95%置信区间,其中由绿色线与黑色线的情况可知该拟合效果还是比较可信的,基本的趋势大致是一样。
3、实验体会
针对不同的问题,首先要根据原序列的时序图分析后得到大致的拟合方案,然后才进行拟合.只有自己动手做了之后,才会发现不同的方法拟合出来的效果是不一样的,有时也需要我们对不同的方法进行拟合,最后选择自己认为最好的方法。
同时在做的过程中也会出现一些问题,这就需要我们找出问题在哪里,然后给与解决。
总之,通过此次试验,我还是学到了很多.