时间序列分析--ARIMA模型

指数平滑法对时间序列上连续的值之间的相关性没有要求。但是,如果你想使用指数平滑法计算出预测区间, 那么预测误差必须是不相关的, 且必须是服从零均值、 方差不变的正态分布。即使指数平滑法对时间序列连续数值之间相关性没有要求,在某种情况下, 我们可以通过考虑数据之间的相关性来创建更好的预测模型。
自回归移动平均模型( ARIMA)是最常用的时间序列预测模型。

注意:
时间序列模型通常适用于做短期预测,即统计序列过去的变化模式还未发生根本性变化。

一.时间序列的预处理
拿到一个观察值序列,首先要对它的平稳性和纯随机性进行检验,这两个重要检验称为序列的预处理。
1. 平稳:就是围绕着一个常数上下波动且波动范围有限,即有常数均值和常数方差。如果有明显的趋势或周期性,那它通常不是平稳序列。一般有三种方法:
(1)直接画出时间序列的趋势图,看趋势判断。
(2)画自相关和偏自相关图:平稳的序列的自相关图(Autocorrelation)和偏相关图(Partial Correlation)要么拖尾,要么是截尾。
(3)单位根检验:检验序列中是否存在单位根,如果存在单位根就是非平稳时间序列。
不平稳序列可以通过差分转换为平稳序列。k阶差分就是相距k期的两个序列值之间相减。如果一个时间序列经过差分运算后具有平稳性,则该序列为差分平稳序列,可以使用ARIMA模型进行分析。
2.纯随机性检验:对于纯随机序列,又称白噪声序列,序列的各项数值之间没有任何相关关系,序列在进行完全无序的随机波动,可以终止对该序列的分析。白噪声序列是没有信息可提取的平稳序列。
3.对于平稳非白噪声序列,它的均值和方差是常数。通常是建立一个线性模型来拟合该序列的发展,借此提取该序列的有用信息。ARMA模型是最常用的平稳序列拟合模型。
二、平稳时间序列建模
某个时间序列经过预处理,被判定为平稳非白噪声序列,就可以进行时间序列建模。

1. ARIMA模型
全称为 自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model, 简记ARIMA),ARIMA(p,d,q)模型是针对非平稳时间序列所建立的模型。
根据时间序列是否平稳以及回归中所含部分的不同,可分为:

移动平均过程(MA(q))

自回归过程(AR(p))

自回归移动平均过程( ARMA(p,q) )

自回归积分滑动平均过程 ( ARIMA(p,d,q) )

1.1 补充:
稳定性的确定标准是非常严格的。我们可以通过一下方法判断:
(1). 如果时间序列随着时间产生恒定的统计特征,根据实际目的我们可以假设该序列是稳定的。如下:

1)恒定的平均数
2)恒定的方差
3)不随时间变化的自协方差

(2)DF检测(Dickey-Fuller):这是一种检查数据稳定性的统计测试。无效假设:时间序列是不稳定的。测试结果由测试统计量和一些置信区间的临界值组成。如果“测试统计量”少于“临界值”,我们可以拒绝无效假设,并认为序列是稳定的。
例如:
时间序列分析--ARIMA模型_第1张图片
若DF检测结果如上图所示,因为检验统计量比1%的临界值小,所以我们在99%的置信区间认为它是稳定序列。

2. 时间序列建模基本步骤

(Box-Jenkins的建模思想)
(1). 获取被观测系统时间序列数据;
(2). 对数据绘图,观测是否为平稳时间序列。若为非平稳时间序列要先进行d阶差分运算后化为平稳时间序列,此处的d即为ARIMA(p,d,q)模型中的d;若为平稳序列,则用ARMA(p,q)模型。所以ARIMA(p,d,q) 模型区别于ARMA(p,q)之处就在于前者的自回归部分的特征多项式含有d个单位根。
(3). 对得到的平稳时间序列分别求得其自相关系数ACF 和偏自相关系数PACF,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p 和阶数 q。由以上得到的d、q、p ,得到ARIMA模型。
(4). 模型诊断,进行诊断分析,以证实所得模型确实与所观察到的数据特征相符。若不相符,重新回到第(3)步。

3. 对于2建模中的细节补充

(1). 分析得到的自相关图和偏自相关图,确定用AR(p)模型还是MA(q)模型亦或是ARMA(p,q)模型依据:
时间序列分析--ARIMA模型_第2张图片

(2)若都拖尾,得到ARMA(p,q)模型,自相关图有几个在两倍标准差之外就能确定p,偏自相关图突出两倍标准差的确定q。可用AIC和SBC准则判断得到的p和q参数值的好坏,这两个指标越小越好,其中

 AIC=-2*ln(模型的极大似然函数值)+2*(模型中的未知参数的个数)。

SBC是对AIC的修正

 SBC=-2*ln(模型中的极大似然函数值)+ln(n)(模型中的未知参数的个数)

python中有函数可以直接求AIC,BIC,HQIC值。

4. 最终可以用得到的拟合模型预测将来走势

参考:
(1) [python] 时间序列分析之ARIMA
http://blog.csdn.net/u010414589/article/details/49622625
(2)时间序列预测全攻略(附带Python代码)
http://www.36dsj.com/archives/44065
(3) [python] 时间序列分析之ARIMA
http://blog.csdn.net/u010414589/article/details/49622625
(4)时间序列分析
http://www.cnblogs.com/taojake-ML/p/6400858.html

你可能感兴趣的:(机器学习相关,预测,数据,时间序列分析,ARMA模型,ARIMA模型)