时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。时间序列分析的主要目的是根据已有的历史数据对未来进行预测。
直接谷歌一下,“时间序列分析 R语言”,就能得到你想要的结果
【包】类ts表示在平均间隔时间点上抽样得到的数据,频率为7表示该时间序列是有每周的数据构成,12和4分别表示以“月”和“季度”为时间间隔的序列。下面的例子演示构造一个含有30个值的时间序列(1~30),其中frequency = 12 和 start = c(2011,3)表示从2011年3月起的月时间序列。
> a <- ts(1:30, frequency = 12, start = c(2011,3)) > print(a) Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2011 1 2 3 4 5 6 7 8 9 10 2012 11 12 13 14 15 16 17 18 19 20 21 22 2013 23 24 25 26 27 28 29 30 > str(a) Time-Series [1:30] from 2011 to 2014: 1 2 3 4 5 6 7 8 9 10 ... > attributes(a) $tsp [1] 2011.167 2013.583 12.000 $class [1] "ts"
2:时间序列分解
时间序列分解就是将时间序列分解为趋势,季节性,周期性以及不规则这几个成分。趋势成分指长时间间隔的大致运动方向,季节性成分指季节性的变化,周期性成分重复但非周期性的波动,最后是不规则成分。
下面在时间序列数据乘客演示时间序列的分解,该数据是由国际机场1949到1960年每月总数的数据构成,共有144(=12*12)条数据,如图:
下面使用函数decompose()将AirPassengers数据分解成不同成分,
> apts <- ts(AirPassengers,frequency = 12) > f <- decompose(apts)
> f$figure [1] -24.748737 -36.188131 -2.241162 [4] -8.036616 -4.506313 35.402778 [7] 63.830808 62.823232 16.520202 [10] -20.642677 -53.593434 -28.619949 > monthNames <- months(ISOdate(2011, 1:12, 1)) > axis(1, at = 1:12, labels = monthNames, las = 2) > plot(f$figure, type ="b", xaxt = "n", xlab= "")