时间序列分析与挖掘

         时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。时间序列分析的主要目的是根据已有的历史数据对未来进行预测。

时间序列

构成要素:长期趋势,季节变动,循环变动,不规则变动
长期趋势( T )现象在较长时期内受某种根本性因素作用而形成的总的变动趋势
季节变动( S )现象在一年内随着季节的变化而发生的有规律的周期性变动
循环变动( C )现象以若干年为周期所呈现出的波浪起伏形态的有规律的变动
不规则变动(I )是一种无规律可循的变动,包括严格的随机变动和不规则的突发性影响很大的变动两种类型


作用

1. 可以反映社会经济现象的发展变化过程,描述现象的发展状态和结果。
2. 可以研究社会经济现象的发展趋势和发展速度。
3. 可以探索现象发展变化的规律,对某些社会经济现象进行预测。
4. 利用时间序列可以在不同地区或国家之间进行对比分析,这也是统计分析的重要方法之一。


R语言里做时间序列分析有哪些包

直接谷歌一下,“时间序列分析 R语言”,就能得到你想要的结果

【包】
library(zoo)            #时间格式预处理
library(xts)            #同上
library(timeSeires)      #同上
library(urca)           #进行单位根检验
library(tseries)         #arma模型
library(fUnitRoots)     #进行单位根检验
library(FinTS)         #调用其中的自回归检验函数
library(fGarch)        #GARCH模型
library(nlme)          #调用其中的gls函数
library(fArma)        #进行拟合和检验

【基本函数】
数学函数
abs,sqrt:绝对值,平方根 log, log10, log2 , exp:对数与指数函数 sin,cos,tan,asin,acos,atan,atan2:三角函数 sinh,cosh,tanh,asinh,acosh,atanh:双曲函数
简单统计量
sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量,sort,order,rank与排序有关,其它还有ave,fivenum,mad,quantile,stem等


1: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= "")








猜你喜欢

转载自blog.csdn.net/xiuxiu179/article/details/80155640