SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1698|回复: 4
打印 上一主题 下一主题

使用SAS进行简单的时间序列分析解说

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2007-10-24 10:19:44 | 只看该作者

使用SAS进行简单的时间序列分析解说

时间序列分析在经济金融及其它各个领域都有广泛的应用,因此决定在论坛上发布一系列关于时间序列的帖子。这些帖子一开始会介绍一些共性的东西,后面则侧重于金融时间序列分析。
为了给大家一些直观的印象,第一个帖子将以一个时间序列分析的例子作为开头。由于充分高阶的AR模型可以代替一定阶数的MA或ARMA模型,因此尽管ARMA模型足以代表相当大范围的平稳时间序列,但从计算方便和实用程度,人们还是愿意采用AR模型。我们的第一站就从AR模型开始。

1. 使用PROC ARIMA进行AR时间序列数据的分析
[例1] 分析历年太阳黑子数序列

[b:1yltk1up][步骤1] 绘制数据与时间的关系图,初步识别序列[/b:1yltk1up]
[code:1yltk1up]data sunspot;
infile datalines;
input a1 year;
datalines;
1000.7 1742
571.9 1743
573.6 1744
368.3 1745
146.6 1746
114.8 1747
122.3 1748
389.1 1749
571.2 1750
647.6 1751
754.3 1752
1030.2 1753
733.8 1754
541.4 1755
436.2 1756
250.9 1757
136.9 1758
453.9 1759
838.1 1760
1273.1 1761
1209.6 1762
979 1763
797.9 1764
417.3 1765
367.4 1766
84.1 1767
237.8 1768
1110 1769
1852.4 1770
1511.1 1771
1017.6 1772
817.1 1773
461.5 1774
273.6 1775
122 1776
289.2 1777
994.4 1778
1584.3 1779
1570.9 1780
1417.3 1781
1078.7 1782
799 1783
720.5 1784
562.8 1785
492 1786
255.2 1787
192.2 1788
76.7 1789
48.8 1790
81.1 1791
173.7 1792
408 1793
540.4 1794
516.6 1795
569.6 1796
506.9 1797
337.3 1798
120.6 1799
97.7 1800
30.4 1801
0 1802
17 1803
59.4 1804
146.3 1805
167.2 1806
424.8 1807
549.7 1808
492.7 1809
360.7 1810
287.3 1811
188.1 1812
79.1 1813
48 1814
21.5 1815
102.5 1816
198.8 1817
435.3 1818
596.5 1819
769.8 1820
804.3 1821
851.8 1822
573.7 1823
330.3 1824
102.3 1825
158.9 1826
682.3 1827
1457.4 1828
1659.3 1829
1237.8 1830
1029.8 1831
758.3 1832
441.6 1833
290.3 1834
128.1 1835
180 1836
480.7 1837
738 1838
1181.5 1839
1491.8 1840
1150.4 1841
798.4 1842
774 1843
650.5 1844
468.3 1845
246.8 1846
80.5 1847
51.6 1848
273.3 1849
657.7 1850
1126 1851
1148.3 1852
926 1853
709.3 1854
528.2 1855
563.4 1856
365.7 1857
195.5 1858
87.1 1859
447.5 1860
886.8 1861
1669.3 1862
1334.4 1863
1220 1864
795.5 1865
535.8 1866
204.9 1867
135.8 1868
147.3 1869
40.5 1870
71.5 1871
387.2 1872
651 1873
715.8 1874
764.4 1875
761.4 1876
625.9 1877
304.5 1878
156.6 1879
81 1880
75.2 1881
84.6 1882
427.5 1883
875.6 1884
1019.2 1885
936.1 1886
767.6 1887
501.4 1888
314.9 1889
320.6 1890
145.3 1891
113.5 1892
32.9 1893
60.3 1894
292.6 1895
503.4 1896
761.6 1897
646.3 1898
744.4 1899
582.5 1900
526.6 1901
223 1902
68.4 1903
43.1 1904
17.3 1905
115.1 1906
568.4 1907
684.8 1908
1246.7 1909
966.9 1910
763.3 1911
451.7 1912
313.6 1913
170.9 1914
69.3 1915
200.6 1916
531.7 1917
766.7 1918
828.5 1919
933.5 1920
779.6 1921
428 1922
254.7 1923
133.7 1924
67.9 1925
104.6 1926
432.7 1927
956.8 1928
1372.8 1929
1314.6 1930
1065 1931
813.4 1932
569.7 1933
367.2 1934
195.9 1935
115.1 1936
397.1 1937
1110.1 1938
1798.1 1939
1634.4 1940
1621.4 1941
1007.1 1942
837.1 1943
376.9 1944
166.2 1945
52.9 1946
455.4 1947
1700.5 1948
2278.2 1949
2215.1 1950
1905 1951
1347.3 1952
646.8 1953
451.2 1954
334.7 1955
122.4 1956
180.7 1957
;
run;

proc gplot data=sunspot;      
    symbol i=spline v=star c=green;
    plot a1*year;
run;
quit;[/code:1yltk1up]
[说明]
[list:1yltk1up]i 图形
v 数据点的形状
c 颜色[/list:u:1yltk1up]

[结果及其解释]
从图上可以看到,历年太阳黑子数存在一定的自相关性。
[img:1yltk1up]http://www.easysas.com/forum/attachments/20071007_7834f1984d5aa9266323vqQz5sMFBA2S.jpg[/img:1yltk1up]

[b:1yltk1up][步骤2] 使用proc arima初步识别模型,确定模型阶数[/b:1yltk1up]
确定模型阶数的方法有很多,其中最简单的方法是根据序列的自相关系数和偏自相关系数。(可参看后面的一系列帖子)
[code:1yltk1up]proc arima data=sunspot   
    identify var=a1 nlag=24;
run;[/code:1yltk1up]
[说明]
[list:1yltk1up]Var   时间序列变量
Nlag   在计算自相关和互相关时的时间间隔。[/list:u:1yltk1up]
为了得到ARIMA(p,d,q)模型的初步估计,NLAG=的值至少为p+q+d,其中p为AR阶数,q为MA阶数,d为对时间序列的差分阶数。观测值的数量必须大于等于NLAG=的值。默认值NLAG=24或者观测值的四分之一,两者取小。

[结果及其解释]
偏自相关系数三阶显著,初步识别序列为AR(3)模型。
[img:1yltk1up]http://www.easysas.com/forum/attachments/20071007_3dd5788690e2d7a04970TyWgc06JKp2B.jpg[/img:1yltk1up]

[b:1yltk1up][步骤3]  模型的估计和诊断[/b:1yltk1up]
使用PROC ARIMA 进行模型的参数估计并根据残差序列进行模型的诊断。若模型是合理的,其残差序列应是白噪声(自相关系数为零)。
[code:1yltk1up]   estimate p=3plot; run;[/code:1yltk1up]
[说明]
[list:1yltk1up]P   AR阶数;
METHOD=ML最大似然法。METHOD=ULS 无条件最小二乘法。METHOD=CLS条件最小二乘法。默认 METHOD=CLS。[/list:u:1yltk1up]

[结果及其解释]
[img:1yltk1up]http://www.easysas.com/forum/attachments/20071007_1929ca94863399ac81f7potxhyIjdoFU.jpg[/img:1yltk1up]
[img:1yltk1up]http://www.easysas.com/forum/attachments/20071007_cd46c499a4ff5b8094c2pUn9LJo2GckE.jpg[/img:1yltk1up]

[b:1yltk1up][步骤4]  模型的预测[/b:1yltk1up]
使用PROC ARIMA 进行模型的预测,并将结果输出到指定的SAS数据集。
[code:1yltk1up]    forecast lead=6 interval=year id=year out=out; run;[/code:1yltk1up]
[说明]
[list:1yltk1up]Lead     预测的步数,默认lead=24;
Id       时间变量的名字;
Interval 时间变量的间隔;
Out      输出数据集。[/list:u:1yltk1up]

[结果及其解释]
[img:1yltk1up]http://www.easysas.com/forum/attachments/20071007_d71def4efd621eed0624lfsuEGLostdH.jpg[/img:1yltk1up]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2007-10-24 12:33:17 | 只看该作者

Re: 使用SAS进行简单的时间序列分析解说

欢迎施兄转载,[color=#FF0000:2so28xpk][b:2so28xpk]下次请注明转载出处(<!-- w --><a class="postlink" href="http://www.easysas.com">http://www.easysas.com</a><!-- w -->)及作者(Ayla),[/b:2so28xpk][/color:2so28xpk]谢谢!


您的老朋友Ryan, Liu
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2007-10-24 20:24:53 | 只看该作者

to ryan

原来是老弟搞的网站啊,早点知会一声啊,没啥说的,大力支持!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2007-10-24 23:13:22 | 只看该作者

Re: 使用SAS进行简单的时间序列分析解说

谢谢施兄的支持,宝信的兄弟们非常感谢:)
另外,已经转的帖子能不能注明下转载?谢谢!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2007-10-25 08:08:15 | 只看该作者

to ryan

没问题,等我有空了一一添上出处。

不是你搞的?是宝信的同学们搞的?谁们啊?那更要支持啦!

宝信和工行是上海地区最大的2个本地企业SAS用户群,藏龙卧虎啊,水平极高!

有没有工行的同学们在这里?也知会一声。 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 10:31 , Processed in 0.067234 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表