# 用于时间序列预测的 Box-Jenkins 方法简介

> 原文： [https://machinelearningmastery.com/gentle-introduction-box-jenkins-method-time-series-forecasting/](https://machinelearningmastery.com/gentle-introduction-box-jenkins-method-time-series-forecasting/)

自回归整合移动平均模型（简称 ARIMA）是时间序列预测和分析的标准统计模型。

随着它的发展，作者 Box 和 Jenkins 还建议了一个识别，估计和检查特定时间序列数据集模型的过程。此过程现在称为 Box-Jenkins 方法。

在这篇文章中，您将发现 Box-Jenkins 方法以及在时间序列预测问题中使用它的提示。

具体来说，您将学到：

*   关于 ARIMA 流程以及 Box-Jenkins 方法的 3 个步骤。
*   用于选择 ARIMA 模型的 q，d 和 p 模型配置的最佳实践启发式算法。
*   通过寻找过拟合和残余误差作为诊断过程来评估模型。

让我们开始吧。

![A Gentle Introduction to the Box-Jenkins Method for Time Series Forecasting](img/92be6beaf7c27b8a53a723b650aaf9ff.jpg)

时间序列预测 Box-Jenkins 方法的温和介绍
[Erich Ferdinand](https://www.flickr.com/photos/erix/6306715646/) 的照片，保留一些权利。

## 自回归整合移动平均模型

ARIMA 模型是一类用于分析和预测时间序列数据的统计模型。

ARIMA 是 **A** uto **R** egressive **I** 整合 **M** oving **A** verage 的首字母缩写词。它是更简单的 AutoRegressive 移动平均线的推广，并添加了集成的概念。

这个首字母缩略词是描述​​性的，捕捉模型本身的关键方面。简而言之，它们是：

*   **AR** ：_ 自回归 _。使用观察与一些滞后观察之间的依赖关系的模型。
*   **I** ：_ 综合 _。使用差异原始观察（即，从前一时间步骤的观察中减去观察值）以使时间序列静止。
*   **MA** ：_ 移动平均值 _。使用应用于滞后观察的移动平均模型的观测和残差之间的依赖关系的模型。

这些组件中的每一个都在模型中明确指定为参数。

标准符号用于 _ARIMA（p，d，q）_，其中参数用整数值代替，以快速指示正在使用的特定 ARIMA 模型。

ARIMA 模型的参数定义如下：

*   _**p**_ ：模型中包含的滞后观察数，也称为滞后顺序。
*   _**d**_ ：原始观察值差异的次数，也称为差分程度。
*   _**q**_ ：移动平均窗口的大小，也称为移动平均的顺序。

## Box-Jenkins 方法

Box-Jenkins 方法由 George Box 和 Gwilym Jenkins 在其开创性的 1970 年教科书[时间序列分析：预测和控制](http://www.amazon.com/dp/1118675029?tag=inspiredalgor-20)中提出。

该方法首先假设生成时间序列的过程可以使用 ARMA 模型（如果它是静止的）或 ARIMA 模型（如果它是非静态的）来近似。

2016 年第 5 版教科书（第二部分，第 177 页）将该过程称为随机模型构建，它是一种迭代方法，包括以下 3 个步骤：

1.  **鉴定**。使用数据和所有相关信息来帮助选择可以最好地汇总数据的模型子类。
2.  **估算**。使用数据训练模型的参数（即系数）。
3.  **诊断检查**。在可用数据的上下文中评估拟合模型，并检查可以改进模型的区域。

这是一个迭代过程，因此在诊断过程中获取新信息时，您可以回到步骤 1 并将其合并到新的模型类中。

让我们更详细地看一下这些步骤。

## 1.识别

识别步骤进一步细分为：

1.  评估时间序列是否静止，如果不是，需要多少差异才能使其静止。
2.  确定数据的 ARMA 模型的参数。

### 1.1 差异

以下是识别过程中的一些提示。

*   **单位根测试**。对时间序列使用单位根统计检验以确定它是否静止。每轮差分后重复。
*   **避免过度分化**。使时间序列差异超过所需时间会导致额外的串行相关性和额外的复杂性。

### 1.2 配置 AR 和 MA

两个诊断图可用于帮助选择 ARMA 或 ARIMA 的`p`和`q`参数。他们是：

*   **自相关函数（ACF）**。该图总结了观察与滞后值的相关性。 x 轴表示滞后，y 轴表示-1 和 1 之间的相关系数，表示负相关和正相关。
*   **部分自相关函数（PACF）**。该图总结了具有滞后值的观测值的相关性，该滞后值未被先前滞后观察所解释。

两个图都绘制为条形图，显示 95％和 99％置信区间为水平线。因此，跨越这些置信区间的条形图更为重要且值得注意。

您可以在这些图中观察到的一些有用模式是：

*   如果 ACF 在滞后之后落后并且在滞后之后在 PACF 中具有硬切断，则该模型是 AR。该滞后被视为`p`的值。
*   如果 PACF 滞后后退出并且在滞后后 ACF 中有一个硬切断，则该模型为 MA。该滞后值被视为`q`的值。
*   如果 ACF 和 PACF 都落后，该模型是 AR 和 MA 的混合。

## 2.估计

估算涉及使用数值方法来最小化损失或误差项。

我们不会详细介绍估算模型参数，因为这些细节由所选库或工具处理。

我建议参考一本教科书，以便更深入地理解 ARMA 和 ARIMA 模型以及用于解决它的[有限记忆 BFGS](https://en.wikipedia.org/wiki/Limited-memory_BFGS) 等优化方法所要解决的优化问题。

## 3.诊断检查

诊断检查的想法是寻找模型不适合数据的证据。

调查诊断的两个有用领域是：

1.  过拟合
2.  剩余错误。

### 3.1 过拟合

第一项检查是检查模型是否过拟合数据。通常，这意味着模型比它需要的更复杂并且捕获训练数据中的随机噪声。

这是时间序列预测的一个问题，因为它会对模型推广的能力产生负面影响，导致样本数据的预测表现不佳。

必须仔细注意样品内和样品外的表现，这需要仔细设计一个强大的测试工具来评估模型。

### 3.2 残留错误

预测残差为诊断提供了很好的机会。

对错误分布的回顾可以帮助梳理出模型中的偏差。来自理想模型的误差将类似于白噪声，即具有零均值和对称方差的高斯分布。

为此，您可以使用密度图，直方图和 Q-Q 图来比较错误分布与预期分布。非高斯分布可以提示数据预处理的机会。分布的偏差或非零均值可能表明预测偏差可能是正确的。

此外，理想模型在预测残差的时间序列中不会留下时间结构。可以通过创建剩余错误时间序列的 ACF 和 PACF 图来检查这些。

残差中存在序列相关性表明在模型中使用该信息的进一步机会。

## 进一步阅读

关于该主题的权威资源是[时间序列分析：预测和控制](http://www.amazon.com/dp/1118675029?tag=inspiredalgor-20)。我会推荐 2016 年第 5 版，特别是第二部分和第 6-10 章。

以下是一些额外的阅读材料，如果您希望深入了解，可能有助于充实您的理解：

*   [Box-Jenkins 建模](http://robjhyndman.com/papers/BoxJenkins.pdf)作者：Rob J Hyndman，2002 [PDF]。
*   维基百科上的 [Box-Jenkins 方法](https://en.wikipedia.org/wiki/Box%E2%80%93Jenkins_method)。
*   [第 6.4.4.5 节。 Box-Jenkins 模型](http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc445.htm)，NIST 统计方法手册。

## 摘要

在这篇文章中，您发现了用于时间序列分析和预测的 Box-Jenkins 方法。

具体来说，你学到了：

*   关于 ARIMA 模型和一般 Box-Jenkins 方法的 3 个步骤。
*   如何使用 ACF 和 PACF 图来为 ARIMA 模型选择`p`和`q`参数。
*   如何使用过拟合和残差来诊断拟合的 ARIMA 模型。

您对 Box-Jenkins 方法或此帖有任何疑问吗？
在下面的评论中提出您的问题，我会尽力回答。