时间序列预测之--ARIMA模型

什么是 ARIMA模型

ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model)。也记作ARIMA(p,d,q),是统计模型(statistic model)中最常见的一种用来进行时间序列 预测的模型。

1. ARIMA的优缺点

优点: 模型十分简单,只需要内生变量而不需要借助其他外生变量。

缺点:
1.要求时序数据是稳定的(stationary),或者是通过差分化(differencing)后是稳定的。
2.本质上只能捕捉线性关系,而不能捕捉非线性关系。
注意,采用ARIMA模型预测时序数据,必须是稳定的,如果不稳定的数据,是无法捕捉到规律的。比如股票数据用ARIMA无法预测的原因就是股票数据是非稳定的,常常受政策和新闻的影响而波动。

2. 判断是时序数据是稳定的方法。

严谨的定义: 一个时间序列的随机变量是稳定的,当且仅当它的所有统计特征都是独立于时间的(是关于时间的常量)。
判断的方法:

  1. 稳定的数据是没有趋势(trend),没有周期性(seasonality)的; 即它的均值,在时间轴上拥有常量的振幅,并且它的方差,在时间轴上是趋于同一个稳定的值的。
  2. 可以使用Dickey-Fuller Test进行假设检验。(另起文章介绍)

3. ARIMA的参数与数学形式

ARIMA模型有三个参数:p,d,q。

  • p--代表预测模型中采用的时序数据本身的滞后数(lags) ,也叫做AR/Auto-Regressive项
  • d--代表时序数据需要进行几阶差分化,才是稳定的,也叫Integrated项。
  • q--代表预测模型中采用的预测误差的滞后数(lags),也叫做MA/Moving Average项

先解释一下差分: 假设y表示t时刻的Y的差分。

\[ if \ d=0 ,\ y_t = Y_t \\[2ex] if \ d=1 ,\ y_t = Y_t-Y_{t-1} \\[2ex] if \ d=2 ,\ y_t = (Y_t-Y_{t-1}) -(Y_{t-1}-Y_{t-2}) \\ =Y_t-2Y_{t-1}+Y_{t-2}\]

ARIMA的预测模型可以表示为:

Y的预测值 = 常量c and/or 一个或多个最近时间的Y的加权和 and/or 一个或多个最近时间的预测误差。

假设p,q,d已知,
ARIMA用数学形式表示为:

\[\widehat{y_t} = \mu + \phi_1*y_{t-1} + ...+ \phi_p*y_{t-p} + \theta_1*e_{t-1} +...+\theta_q*e_{t-q} \]

\[其中, \phi表示AR的系数,\theta表示MA的系数 \]

4.ARIMA模型的几个特例

1.ARIMA(0,1,0) = random walk:

当d=1,p和q为0时,叫做random walk,如图所示,每一个时刻的位置,只与上一时刻的位置有关。
file-list
预测公式如下:

\[\widehat Y_t = \mu + Y_{t-1} \]

2. ARIMA(1,0,0) = first-order autoregressive model:

p=1, d=0,q=0。说明时序数据是稳定的和自相关的。一个时刻的Y值只与上一个时刻的Y值有关。

\[\widehat Y_t = \mu + \phi_1*Y_{t-1}. \\ where,\ \phi \in [-1,1] , 是一个斜率系数 \]

3. ARIMA(1,1,0) = differenced first-order autoregressive model:

p=1,d=1,q=0. 说明时序数据在一阶差分化之后是稳定的和自回归的。即一个时刻的差分(y)只与上一个时刻的差分有关。

\[ \widehat y_t = \mu +\phi_1*y_{t-1} \\ 结合一阶差分的定义,也可以表示为:\widehat Y_t-Y_{t-1} = \mu+ \phi_1 * (Y_{t-1} - Y_{t-2})\\ 或者 \widehat Y_t = \mu +Y_{t-1} + \phi_1 * (Y_{t-1} - Y_{t-2}) \]

4. ARIMA(0,1,1) = simple exponential smoothing with growth.

p=0, d=1 ,q=1.说明数据在一阶差分后市稳定的和移动平均的。即一个时刻的估计值的差分与上一个时刻的预测误差有关。

\[ \widehat y_t = \mu + \alpha_1*e_{t-1} \\ 注意q=1的差分y_t与p=1的差分y_t的是不一样的 \\ 其中,\widehat y_t = \widehat Y_t-\widehat Y_{t-1} , \ e_{t-1}={Y_{t-1} - \widehat Y_{t-1}} , 设\theta_1 = 1- \alpha_1 \\ 则也可以写成: \widehat Y_t = \mu + \widehat Y_{t-1} + \alpha_1 ({Y_{t-1} - \widehat Y_{t-1}}) \\ = \mu +Y_{t-1} - \theta_1*e_{t-1}\]

5. ARIMA(2,1,2)

在通过上面的例子,可以很轻松的写出它的预测模型:

\[ \widehat y_t = \mu + \phi_1 * y_{t-1} + \phi_2 * y_{t-2} - \theta_1 * e_{t-1} - \theta_2* e_{t-2} \\ 也可以写成: \widehat Y_t = \mu + \phi_1 * (Y_{t-1} - Y_{t-2}) + \phi_2 * (Y_{t-2} - Y_{t-3}) - \theta_1 *(Y_{t-1} - \widehat Y_{t-1}) -\theta_2 *(Y_{t-2} - \widehat Y_{t-2}) \]

6. ARIMA(2,2,2)

\[ \widehat y_t = \mu + \phi_1 * y_{t-1} + \phi_2 * y_{t-2} - \theta_1 * e_{t-1} - \theta_2* e_{t-2} \\ \widehat Y_t = \mu + \phi_1 * (Y_{t-1}-2Y_{t-2} + Y_{t-3}) + \phi_2 * (Y_{t-2}-2Y_{t-3} + Y_{t-4}) - \theta_1 *(Y_{t-1} - \widehat Y_{t-1})- \theta_2* (Y_{t-2} - \widehat Y_{t-2}) \]

7. ARIMA建模基本步骤

  1. 获取被观测系统时间序列数据;
  2. 对数据绘图,观测是否为平稳时间序列;对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列;
  3. 经过第二步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数ACF 和偏自相关系数PACF,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p 和阶数 q
  4. 由以上得到的d、q、p,得到ARIMA模型。然后开始对得到的模型进行模型检验。
    具体例子会在另一篇文章中给出。
posted @ 2017-05-08 20:22  geek精神  阅读(150106)  评论(7编辑  收藏  举报