8.8 预测

点预测

尽管我们在之前的例子中使用ARIMA模型进行了预测,我们没有去解释预测是如何得到的。点预测可以通过下面的步骤得到:

  1. 对 ARIMA 的等式进行变换,让 \(y_t\) 在等号左侧而其他项在右侧。
  2. \(t\) 替换为\(T+h\),改写整个等式。
  3. 在等式右侧,用预测值来代替未来的观测值,用零代替未来的预测误差,用对应的残差代替历史误差。

\(h=1\) 开始,不断对 \(h=2,3,\dots\) 重复上述步骤直到计算出所有的预测值:

我们列举一个例子让这个过程更便于理解。上一节拟合出的ARIMA(3,1,1)模型可以表示为如下形式: \[ (1-\hat{\phi}_1B -\hat{\phi}_2B^2-\hat{\phi}_3B^3)(1-B) y_t = (1+\hat{\theta}_1B)\varepsilon_{t}, \] 上式中\(\hat{\phi}_1=0.0044\)\(\hat{\phi}_2=0.0916\)\(\hat{\phi}_3=0.3698\)\(\hat{\theta}_1=-0.3921\)。之后我们展开等号左边可以得到: \[ \left[1-(1+\hat{\phi}_1)B +(\hat{\phi}_1-\hat{\phi}_2)B^2 + (\hat{\phi}_2-\hat{\phi}_3)B^3 +\hat{\phi}_3B^4\right] y_t = (1+\hat{\theta}_1B)\varepsilon_{t}, \] 代入延迟算子,公式变为: \[ y_t - (1+\hat{\phi}_1)y_{t-1} +(\hat{\phi}_1-\hat{\phi}_2)y_{t-2} + (\hat{\phi}_2-\hat{\phi}_3)y_{t-3} +\hat{\phi}_3y_{t-4} = \varepsilon_t+\hat{\theta}_1\varepsilon_{t-1}. \] 最后,我们将除了 \(y_t\) 之外的所有项移到等号右侧: \[\begin{equation} \tag{8.6} y_t = (1+\hat{\phi}_1)y_{t-1} -(\hat{\phi}_1-\hat{\phi}_2)y_{t-2} - (\hat{\phi}_2-\hat{\phi}_3)y_{t-3} -\hat{\phi}_3y_{t-4} + \varepsilon_t+\hat{\theta}_1\varepsilon_{t-1}. \end{equation}\] 这样就完成了第一步。虽然现在的等式看起来像一个 ARIMA(4,0,1),它仍然是我们开始时的ARIMA (3,1,1)。这个模型不是 ARIMA(4,0,1) 是因为它的系数不符合平稳性的要求。

对于第二步而言,我们使用公式(8.6)里的\(T+1\)来替代\(t\): \[ y_{T+1} = (1+\hat{\phi}_1)y_{T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T-1} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-2} -\hat{\phi}_3y_{T-3} + \varepsilon_{T+1}+\hat{\theta}_1\varepsilon_{T}. \] 假设我们拥有直到时间\(T\)的观测值,则等号右侧的除了 \(\varepsilon_{T+1}\) 的所有项的取值都是已知的,而对于 \(\varepsilon_T\),我们用最后一次观测的残差 \(e_T\) 来代替: \[ \hat{y}_{T+1|T} = (1+\hat{\phi}_1)y_{T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T-1} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-2} -\hat{\phi}_3y_{T-3} + \hat{\theta}_1e_{T}. \]

通过将\(t\)替换为(8.6)中的\(T+2\),我们可以得到\(y_{T+2}\)的预测。等号右侧除了 \(y_{T+1}\) 的所有项都是已知的,因此我们将它替换为\(\hat{y}_{T+1|T}\)。对于 \(\varepsilon_{T+2}\)\(\varepsilon_{T+1}\),我们将它们替换为 0。 \[ \hat{y}_{T+2|T} = (1+\hat{\phi}_1)\hat{y}_{T+1|T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-1} -\hat{\phi}_3y_{T-2}. \]

这个方法可以对所有未来时间进行预测,因此我们可以依此得到未来所有的点预测值。

预测区间

对 ARIMA 模型预测区间的计算是很困难的,而且其中的细节远远超出了本书的囊括的范围。我们这里只给出一些简单的例子.

一步预测区间是很容易计算得到的。设\(\hat{\sigma}\)为残差的标准差,则 95% 的预测区间为\(\hat{y}_{T+1|T} \pm 1.96\hat{\sigma}\)。这个结论对任意参数和阶数的ARIMA模型都成立。

ARIMA(0,0,\(q\))模型的多步预测区间而言也是相对容易计算的。我们可以将模型写作: \[ y_t = \varepsilon_t + \sum_{i=1}^q \theta_i \varepsilon_{t-i}. \] 之后,模型的方差估计为: \[ \hat\sigma_h = \hat{\sigma}^2 \left[ 1 + \sum_{i=1}^{h-1} \hat{\theta}_i^2\right],\qquad\text{for $h=2,3,\dots$,} \]

于是,95%的预测区间即为\(\hat{y}_{T+h|T} \pm 1.96\sqrt{\hat\sigma_h}\)

8.4节中,我们提到 AR(1) 可以被写为 MA(\(\infty\))。通过这个方法,上述用于 MA(\(q\)) 模型的方法可以被用于计算 AR(1) 模型的预测区间。

更深入的教材比如 Brockwell & Davis (2016) 会介绍一般化的结果以及ARIMA(\(p\),\(d\),\(q\))多步预测区间的一些特例,供大家参考。

ARIMA模型的预测区间是基于残差不相关且服从正态分布的假设的,因此如果前提条件之一不被满足,预测区间就可能是错误的。所以在进行预测之前,请先画出残差的自相关图和柱状图来检查假设条件是否满足。

总的来说,当ARIMA模型的预测期数增加时,预测区间也会变大。对于平稳模型(即 \(d=0\))而言,由于它们会逐渐收敛,所以长期的预测区间也会大致相同。对于\(d>1\)的情况,预测区间将会在随时间增长继续增加。

对于大多数预测区间的计算而言,基于 ARIMA 的预测区间相对过于狭窄,这是因为只有误差的方差被加入考量。其实参数估计和模型阶数估计同样存在方差,而这些没有在计算时被加以考虑。除此之外,该方法假设建模时数据的历史特征会一直持续到未来,这也是预测区间过于狭窄的原因之一。

参考文献

Brockwell, P. J., & Davis, R. A. (2016). Introduction to time series and forecasting (3rd ed). New York, USA: Springer. [Amazon]