自回归建模和移动平均建模是预测时间序列数据的两种不同方法。ARIMA 整合了这两种方法,故此得名。预测是机器学习的一个分支,是利用时间序列的过去行为来预测该时间序列的一个或多个未来值。想象一下,您要购买冰淇淋来为一家小商店进货。如果您知道随着天气变暖,冰淇淋的销量一直在稳步增长,那么您大概应该预测下周的订单会比本周的订单多一些。究竟多多少应该取决于本周销售额与上周销售额的差异量。如果没有过去进行比较,我们就无法预测未来,因此过去的时间序列数据对于 ARIMA 以及所有预测和时间序列分析方法都非常重要。

ARIMA 是应用最广泛的时间序列预测方法之一,根据所处理的时间序列数据的类型,有两种不同的使用方式。在第一种情况中,我们创建了一个非季节性 ARIMA 模型,而无需考虑时间序列数据的季节性。我们仅仅根据过去的数据模式来预测未来。在第二种情况里,我们考虑季节性,即影响时间序列的规律周期。这些周期可以是每天、每周或每月,它们有助于定义可用于预测未来值的时间序列过去数据中的模式。与许多数据科学一样,预测的基础是拥有良好的时间序列数据来训练模型。时间序列是具有等距时间间隔的变量测量值的有序序列。请务必记住,实际上并非所有具有时间元素的数据集都是时间序列数据,因为需要满足等距时间间隔的要求。

1970 年,统计学家 George Box 和 Gwilym Jenkins 提出了后来的 The Box-Jenkins 方法,用于拟合各种时间序列模型。 1 该方法首先假设若生成时间序列的过程是平稳的,则可以使用模型进行近似计算。它包括四个步骤:

识别 :评估时间序列是否平稳,如果不是,则需要多少次差分才能使其平稳。然后生成差分数据以用于诊断图。为自相关和偏自相关数据确定 ARMA 模型的参数。

估计 :使用数据来训练模型参数(即系数)。

诊断检查 :基于可用数据评估拟合模型,检查模型可改进之处。具体来说,这涉及检查过度拟合和计算残差。

预测 :现在您已经有了模型,可以开始使用模型来预测值。

确认您的模型正确拟合您的数据后,就可以开始 ARIMA 预测了。我们将详细讨论其中的每个步骤。

时间序列可以是平稳的,也可以是非平稳的。平稳时间序列具有随时间恒定的统计属性。这意味着平均值、方差、自相关性等统计量在数据上保持不变。大多数统计预测方法,包括 ARIMA,都是基于这样的假设:时间序列可以通过一次或多次变换变得近似平稳。平稳序列相对容易预测,因为您可以简单地预测未来的统计属性将与过去大致相同。使用类似 ARIMA 的方法可以处理非平稳数据,但很困难。

时间序列数据的另一项关键特征是:该数据中是否存在趋势。例如,过去 50 年中杂货店基本主食的价格会呈现出一种趋势,因为通货膨胀会推高这些价格。预测包含趋势的数据可能十分困难,因为趋势会掩盖数据中的其他模式。如果该数据具有一条稳定的趋势线,且它始终会恢复到该趋势线,则它可能具有趋势平稳性;在此情况下,只需拟合趋势线并在将模型拟合到该趋势之前从数据中去除此趋势,即可删除该趋势。如果该数据不具备趋势平稳性,则它可能具有差分平稳性;在此情况下,可通过差分来删除该趋势。最简单的差分方法是从每个值中减去前一个值,从而测量时间序列数据中存在的变化量。例如,如果 Y t 是时间序列 Y 在周期 t 的对应值,则 Y 在周期 t 的一阶差分等于 Y t - Y t-1

在这里,我们可以看到一个非平稳的时间序列图。其具有明显的上升趋势,且表现出季节性。

我们可以通过计算自相关来了解时间序列与其过去值的相关程度。计算自相关可以回答有关数据是否表现出随机性以及一个观测值与紧邻观测值的相关性如何的问题。这可以让我们了解哪种模型最能代表数据。通常绘制自相关图以查看点之间的相关性,一直绘制到并包含滞后单位的点。

自相关的每个滞后定义为:

r K = t = K + 1 T ( y t - y ¯ ) - ( y t - K - y ¯ ) t = 1 T ( y t - y ¯ ) 2

准备在时间序列数据上使用 ARIMA 模型时,另一种重要的图是偏自相关函数。ACF 图显示了不同 k 值下,yt 和 yt−k 之间的关系。 如果 y t 与 y t−1 相关,则 y t-1 与 y t−2 也将相关。但是,yt 与 yt−2 相关也可能仅仅是因为它们都与 y t−1 相关,而不是因为 y t−2 中包含可用于预测 y t 的新信息。为了克服这个问题,我们可以使用偏自相关性来删除一些滞后观测值。它们量度在去除滞后 1 到 k 的影响后,y t 和 y t−k 之间的关系。因此,第一个偏自相关与第一个自相关相同,因为它们之间没有任何东西需要删除。每个偏自相关都可以估计为自回归模型中的最后一个系数。

无论您使用的是 R、Python 还是其他编程语言或库,都能够计算 PACF 并创建 PACF 图以便于检查。自相关图可以在 python 中使用 statsmodels 库中的 plot_pacf 创建,也可以在 R 中使用 pacf 函数创建。

顾名思义,首字母缩略词 ARIMA 根据传递的参数,将自动回归和移动平均模型整合到单个模型中。这两种对时间序列变化进行建模的方式是相关的,但也存在一些关键的区别。在自回归模型中,我们使用变量过去值的线性组合来预测关注的变量。术语“自回归”表示它是变量对自身的回归。这项技术与线性回归模型类似,都使用过去的值作为回归的输入。自回归定义为:

y t = C + ϕ 1 y t - 1 + ϕ 2 y t - 2 + ϕ q y t - q + ϵ t

其中 ε t 是白噪声。这就像多元回归,但使用 y t 的滞后值作为预测因子。我们将其称为 AR(p) 模型,即 p 阶的自回归模型。

另一方面,移动平均模型使用过去的预测误差,而不是在回归中使用预测变量的过去值。移动平均法只是对窗口中的 k 个值求平均值,其中 k 是移动平均窗口的大小,然后向前移动窗口。预测值使用实际值进行评估,以确定时间序列中每个步骤的误差。移动平均值的定义为:

y t = C + ϵ t + θ 1 ϵ t - 1 + θ 2 ϵ t - 2 + θ q ϵ t - q

ε t 是白噪声。我们称之为 MA(q) 模型,即 q 阶移动平均模型。当然,我们不观察 ε t 的值,因此它并不是通常意义上的回归。请注意,y t 的每个值均可视为过去几次预测误差的加权移动平均值。

通常在 ARIMA 模型中会使用自回归项 (AR) 或移动平均项 (MA)。ACF 图和 PACF 图通常用于确定哪一个术语最合适。

一旦时间序列变得平稳并且自相关的性质被确定,就可以拟合 ARIMA 模型。ARIMA 模型有 3 个关键参数,通常称为 p、d 和 q。

p :ARIMA 自回归部分的阶数

d :涉及的差分阶数

q: 移动平均部分的阶数

其通常按以下顺序书写:ARIMA(p, d, q)。许多编程语言和软件包会提供 ARIMA 函数,可以使用要分析的时间序列和这三个参数进行调用。大多数情况下,数据被拆分为训练集和测试集,以便在训练后可以测试模型的准确性。一般不可能仅通过查看时间图来判断什么样 p 和 q 值最适合数据。不过,通常可以使用 ACF 和 PACF 图来确定适当的 p 和 q 值,因此这些图是使用 ARIMA 的重要项

在模型中使用 AR 项的粗略规则是:

  • ACF 图显示自相关性衰减向零
  • PACF 图迅速缩减到零
  • 平稳序列的 ACF 在滞后 - 1 处显示为正

在模型中使用 MA 项的粗略规则是:

  • 滞后 - 1 时负自相关
  • ACF 几个滞后之后急剧下降
  • PACF 逐渐减小,而不是突然减小

您可能会遇到一些经典的 ARIMA 模型类型。

ARIMA(1,0,0) = 一阶自回归模型:如果该序列是平稳的且自相关的,则也许可以预测为其先前值的倍数加上常数。如果仅使用今天的冰淇淋销量可以直接预测明天的冰淇淋销量,那就是一阶自回归模型。

ARIMA(0,1,0) = 随机游走:如果时间序列不平稳,则最简单的模型是随机游走模型。随机游走与随机数列表不同,因为序列中的下一个值是对序列中前一个值的修改。这通常是我们对股票价格差分值进行建模的方式。

ARIMA(1,1,0) = 差分一阶自回归模型:如果随机游走模型的误差是自相关的,也许可以通过在预测方程中增加一个因变量的滞后期来解决问题,即回归 Y 对滞后一期 Y 的一阶差分。

不带常量的 ARIMA (0,1,1) = 简单的指数平滑模型:这用于没有季节性或趋势的时间序列数据。它需要一个单一的平滑参数来控制历史观测值的影响率(用介于 0 和 1 之间的系数值表示)。在该技术中,值接近 1 表示模型很少关注过去的观测值,而较小的值表示预测时会更多考虑历史记录。

带常数的 ARIMA(0,1,1) = 带增长的简单指数平滑模型。这与简单指数平滑法相同,不同之处在于有一个加法常数项,它使时间序列的 Y 值随着时间序列的前进而增长。

当然,ARIMA 模型可以通过许多其他方法进行拟合,因此我们经常计算多个模型并进行比较,以了解哪种模型与我们的数据拟合最好。所有这些都是一阶模型,这意味着它们映射的是线性过程。也有映射二次过程的二阶模型和映射更复杂过程的高阶模型。

通常,多个 ARIMA 模型会与数据进行拟合,并相互之间进行比较,以找出哪个模型能够更好预测时间序列数据中的模式。可评估 ARIMA 模型准确性的三个关键指标:

赤池信息准则或 AIC。其被广泛用于选择回归模型的预测因子,并且对于确定 ARIMA 模型的阶次也很有用。AIC 在单个统计量中量化模型的拟合优度和模型的简单性/简洁性。较低的 AIC 分数比较高的分数要好,因此我们更喜欢分数较低的模型。AIC 倾向于更简单的模型,若准确性大致相同,更复杂的模型会获得更高的分数。还有校正后的 AIC 或 AICC,它只是对样本大小进行了细微修正。

贝叶斯信息准则或 BIC。这是模型选择的另一个准则,其比 AIC 更厌恶复杂性。与 AIC 一样,BIC 较低的模型通常优于分数较高的模型。如果您的模型要用于长期预测,则 BIC 可能更可取;而进行短期预测时,AIC 可能更为可取。

sigma 平方或 sigma2 值是模型残差的方差。sigma 项描述了假设过程的波动性。如果您拥有高度不稳定的数据但 sigma 平方分数非常低,或者相反,拥有稳定的数据但 sigma 平方分数很高,则表明该模型无法很好地捕捉实际的数据生成过程。

如果我们保留了测试数据集,那么我们还可以比较不同预测区间的 RMSE 等准确性指标。ARIMA 模型可以预测未来单个时间步长或多个时间步长的数值。

配置和比较 ARIMA 模型的另一种方法是使用自动 ARIMA,它将自动化配置任务应用于生成和比较 ARIMA 模型。有多种方法可以得出任何最佳模型。该算法将生成多个模型,并尝试最小化 AICc 和最大似然估计的误差,从而获得 ARIMA 模型。

季节性自回归整合移动平均 (SARIMA) 或季节性 ARIMA 是 ARIMA 的扩展,它支持具有季节性分量的时间序列数据。为此,它添加了三个新的超参数,用于为该系列的季节性分量指定自回归、差分和移动平均,并为季节性时期添加了一个额外参数。SARIMA 模型通常表示为 SARIMA((p,d,q),(P,D,Q)),其中小写字母表示时间序列的非季节性分量,大写字母表示季节性分量

向量自回归模型(或 VAR 模型)用于多变量时间序列。它们的结构使每个变量都是自身过去滞后和其他变量过去滞后的线性函数。