资源描述
《时间序列分析》
课 程 实 验 报 告
项目名称:
非平稳序列确定性分析
组员姓名:
李菲
指导教师:
牛宪华
完成日期:
2013 年 4 月 20日
一、上机练习(P124)
1、拟合线性趋势
12、79 14、02 12、92 18、27 21、22 18、81
25、73 26、27 26、75 28、73 31、71 33、95
程序:
data xiti1;
input x;
t=_n_;
cards;
12、79 14、02 12、92 18、27 21、22 18、81
25、73 26、27 26、75 28、73 31、71 33、95
;
proc gplot data=xiti1;
plot x*t;
symbol c=red v=star i=join;
run;
proc autoreg data=xiti1;
model x=t;
output predicted=xhat out=out;
run;
proc gplot data=out;
plot x*t=1 xhat*t=2/overlay;
symbol2 c=green v=star i=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、29 23、02 37、42 74、27 140、72
265、81 528、23 1040、27 2064、25 4113、73 8212、21 16405、95
程序:
data xiti2;
input x;
t=_n_;
cards;
1、85 7、48 14、29 23、02 37、42 74、27 140、72
265、81 528、23 1040、27 2064、25 4113、73 8212、21 16405、95
;
proc gplot data=xiti2;
plot x*t;
symbol c=red v=star i=none;
run;
proc nlin method=gauss;
model x=a*b**t;
parameters a=0、1 b=1、1;
der、a=b**t;
der、b=a*t*b**(t—1);
output predicted=xh out=out;
run;
proc gplot data=out;
plot x*t=1 xh*t=2/overlay;
symbol2 c=green v=none i=join;
run;
运行结果:
分析:上图为该时间序列得时序图,可以很明显得瞧出其基本就是呈指数函数趋势慢慢递增得,故我们可以选择指数型模型进行非线性拟合:xt=abt+It,t=1,2,3,…,12
分析:由上图可得该拟合模型为:xt=1、0309*1、9958t+It
分析:图中得红色星号为原序列值,绿色得曲线为拟合后得拟合曲线,可以瞧出原序列值与拟合值基本上就是重合得,故该拟合效果就是很好得。
3. X-11过程
40777 41778 43160 45897
41947 44061 44378 47237
43315 43396 44843 46835
42833 43548 44637 47107
42552 43526 45039 47940
43740 45007 46667 49325
44878 46234 47055 50318
46354 47260 48883 52605
48527 50237 51592 55152
50451 52294 54633 58802
53990 55477 57850 61978
程序:
data xiti3;
input x;
t=intnx('quarter’,'1jan1978’d,_n_—1);
format t yyq4、;
cards;
40777 41778 43160 45897
41947 44061 44378 47237
43315 43396 44843 46835
42833 43548 44637 47107
42552 43526 45039 47940
43740 45007 46667 49325
44878 46234 47055 50318
46354 47260 48883 52605
48527 50237 51592 55152
50451 52294 54633 58802
53990 55477 57850 61978
;
proc gplot data=xiti3;
plot x*t;
symbol c=red v=star i=join;
run;
proc x11 data=xiti3;
quarterly date=t;
var x;
output out=out b1=x d10=season d11=adjusted d12=trend d13=irr;
data out;
set out;
estimate=trend*season/100;
proc gplot data=out;
plot x*t=1 estimate*t=2/overlay;
plot adjusted*t=1 trend*t=1 irr*t=1;
symbol1 c=red i= join v=star;
symbol2 c=black i= none v=star;
run;
运行结果:
分析:上图为该序列得时序图,可以很明显得瞧出其具有长期增长趋势,且具有季节波动,故我们用X-11过程进行拟合。
分析:上图为季节调整后得序列值时序图。
分析:上图为趋势拟合值序列时序图.
分析:上图为不规则波动值得时序图。
分析:上图中得红色线段为原序列值,黑色星星为拟合值,可以由图中瞧出该拟合值与原序列值基本上就是重合得,故该拟合效果很好。
4、Forecost过程
程序:
data xiti4;
input x;
t=1949+_n_-1;
cards;
40777 41778 43160 45897
41947 44061 44378 47237
43315 43396 44843 46835
42833 43548 44637 47107
42552 43526 45039 47940
43740 45007 46667 49325
44878 46234 47055 50318
46354 47260 48883 52605
48527 50237 51592 55152
50451 52294 54633 58802
53990 55477 57850 61978
;
proc gplot data=xiti4;
plot x*t;
symbol c=red v=star i=join;
run;
proc forecast data=xiti4 method=stepar trend=2 lead=5 out=out outfull outest=est;
id t;
var x;
run;
proc gplot data=out;
plot x*t=_type_/href=2008;
symbol1 i=join v=star c=black;
symbol2 i=join v=none c=green;
symbol3 i=join v=none c=red;
symbol4 i=join v=none c=red;
run;
分析:由该序列得时序图可知,其具有长期趋势,且含有季节效应,趋势特征基本为线性趋势,即trend=2、
分析:由上表可以很明显得瞧到每一年得与序列值、预测值,还有预测得后面六期预测值得95%置信区间。
分析:此表为预测过程中相关参数及拟合效果,可以瞧到RSQUARE=0、,拟合效果很好。
分析:上图为预测效果图,其中绿色得线段表示预测值,红色得代表预测得5期值得95%置信区间,黑色得为原序列,可以瞧出其预测效果很好。
二、课后习题
7. 某地区1962—1970年平均每头奶牛得月度产奶量数据(单位:磅)具体数据详见书P123
589 561 640 656 727 697 640 599 568 577 553 582
600 566 653 673 742 716 660 617 583 587 565 598
628 618 688 705 770 736 678 639 604 611 594 634
658 622 709 722 782 756 702 653 615 521 602 635
677 635 736 755 811 798 735 697 661 667 645 688
713 667 762 784 837 817 767 722 681 687 660 698
717 696 775 796 858 826 783 740 701 706 677 711
734 690 785 805 871 845 801 764 725 723 690 734
750 707 807 824 886 859 819 783 740 747 711 751
(1)绘制该序列得时序图,直观考察该序列得特点。
程序:
data lianxi1;
input x;
t=intnx('month’,'1jan1962'd,_n_-1);
format t date、;
cards;
589 561 640 656 727 697 640 599 568 577 553 582
600 566 653 673 742 716 660 617 583 587 565 598
628 618 688 705 770 736 678 639 604 611 594 634
658 622 709 722 782 756 702 653 615 521 602 635
677 635 736 755 811 798 735 697 661 667 645 688
713 667 762 784 837 817 767 722 681 687 660 698
717 696 775 796 858 826 783 740 701 706 677 711
734 690 785 805 871 845 801 764 725 723 690 734
750 707 807 824 886 859 819 783 740 747 711 751
;
proc gplot data=lianxi1;
plot x*t;
symbol c=red v=star i=join;
run;
分析:由上图得时序图可以很明显得瞧出该序列具有长期得增长趋势,且具有明显得季节效应。
(2)使用因素分解方法,拟合该序列得发展,并预测下一年该地区奶牛得月度产奶量。
程序:
proc forecast data=lianxi1 method=stepar trend=2 lead=12 out=out outfull outest=est;
id t;
var x;
run;
data out;
set out;
t=intnx('month','1jan1962'd,_n_-1);
proc gplot data=out;
plot x*t=_type_;
symbol1 i=join v=star c=black;
symbol2 i=join v=none c=green;
symbol3 i=join v=none c=red;
symbol4 i=join v=none c=red;
run;
分析:上图绿色得为拟合趋势图,后面得12个月就为所预测得1年得奶牛产奶量,上下两条红色得线为95%执行区间,黑色得为原序列时序图,故可以瞧出该拟合趋势与原序列基本重合,故后面得预测结果也比较可信.
(3)使用X—11方法,确定该序列得趋势。
程序:
proc x11 data=lianxi1;
monthly date=t;
var x;
output out=out b1=x d10=season d11=adjusted d12=trend d13=irr;
data out;
set out;
estimate=trend*season/100;
proc gplot data=out;
plot x*t=1 estimate*t=2/overlay;
plot adjusted*t=1 trend*t=1 irr*t=1;
symbol1 c=red i= join v=star;
symbol2 c=black i=join v=star;
run;
分析:上图中,红色得代表原序列,黑色得代表拟合得序列,可以瞧出除了在66年1月份左右有一点区别外,其余得基本上都与原序列重合,故该拟合效果很好.
8、某城市1980年1月至1995年8月每月屠宰生猪数量(单位:头)(数据详见书P123)
选择适当地模型拟合该序列得发展,并预测1995年9月至1997年9月该城市生猪屠宰数量.
data lianxi2;
input x;
t=intnx(’month’,’1jan1980'd,_n_-1);
format t date、;
cards;
76378 71947 33873 96428 105084 95741 110647 100331 94133 103055
90595 101457 76889 81291 91643 96228 102736 100264 103491 97027
95240 91680 101259 109564 76892 85773 95210 93771 98202 97922
100306 94089 102680 77919 93561 117032 81225 88357 106175 91922
104114 109959 97880 105386 96479 97580 109490 110191 90974 98981
107188 94177 115097 113696 114532 120110 93607 110925 103312 120184
103069 103351 111331 106161 111590 99447 101987 85333 86970 100561
89546 89265 82719 79498 74846 73819 77029 78446 86978 75878
69571 75722 64182 77357 63292 59380 78332 72381 55971 69750
85472 70133 79125 85805 81778 86852 69069 79556 88174 66698
72258 73445 76131 86082 75443 73969 78139 78646 66269 73776
80034 70694 81823 75640 75540 82229 75345 77034 78589 79769
75982 78074 77588 84100 97966 89051 93503 84747 74531 91900
81635 89797 81022 78265 77271 85043 95418 79568 103283 95770
91297 101244 114525 101139 93866 95171 100183 103926 102643 108387
97077 90901 90336 88732 83759 99267 73292 78943 94399 92937
90130 91055 106062 103560 104075 101783 93791 102313 82413 83534
109011 96499 102430 103002 91815 99067 110067 101599 97646 104930
88905 89936 106723 84307 114896 106749 87892 100506
;
proc gplot data=lianxi2;
plot x*t;
symbol c=red v=star i=join;
run;
proc forecast data=lianxi2 method=stepar trend=1 lead=24 out=out outfull outest=est;
id t;
var x;
run;
data out;
set out;
t=intnx(’month’,'1jan1980’d,_n_-1);
proc gplot data=out;
plot x*t=_type_;
symbol1 i=join v=star c=black;
symbol2 i=join v=none c=green;
symbol3 i=join v=none c=red;
symbol4 i=join v=none c=red;
run;
分析:上图为该时间序列得时序图,可以很明显得瞧出该序列无长期趋势,但在每一年当中由季节性变化。
分析:上图为预测得2年趋势图,红色得为95%置信区间,其中由绿色线与黑色线得情况可知该拟合效果还就是比较可信得,基本得趋势大致就是一样。
三、 实验体会
针对不同得问题,首先要根据原序列得时序图分析后得到大致得拟合方案,然后才进行拟合。只有自己动手做了之后,才会发现不同得方法拟合出来得效果就是不一样得,有时也需要我们对不同得方法进行拟合,最后选择自己认为最好得方法.同时在做得过程中也会出现一些问题,这就需要我们找出问题在哪里,然后给与解决.总之,通过此次试验,我还就是学到了很多。
展开阅读全文