ARIMA模型群是最经典的统计学时序模型,也是最经典的、适用于单变量时间序列数据的模型。随着越来越多的机器学习模型以及深度学习模型的出现,以及由于统计模型自身繁琐的检验ARIMA在各大竞赛中已难见其大显身手。
然而,作为最具代表性的时间序列算法、同时也是学习时间序列时无法逃避的经典架构,任何学习机器学习的人都需要对ARIMA系列模型有着基础的了解。
首先,ARIMA模型是AR模型(自回归模型)与MA模型(移动平均模型)结合后诞生的模型,因此在理解ARIMA之前,我们必须先理解AR与MA模型。由于ARIMA模型大多数时候只能处理单变量时间序列,因此可想而知,AR与MA模型也只能够被用于单变量时间序列。
AR(自回归模型)是最早、最淳朴的时间序列模型之一,AR模型的基本思想可以被概括为一句:今天的结果依赖于过去的积累。
AR模型将时间点之间的关系解构为:一个时间点上的标签值可以由过去某个时间段内的所有时间点上的标签值线性组合后构成(实际就是加权求和)。用数学公式表示则有: y t = c + β 1 y t − 1 + β 2 y t − 2 + β 3 y t − 3 + . . . β p y t − p + z t y_t = c + \beta_1y_{t-1} + \beta_2y_{t-2} + \beta_3y_{t-3} + ... \beta_py_{t-p} + z_t yt=c+β1yt−1+β2yt−2+β3yt−3+...βpyt−p+zt
其中 y t y_t yt表示在时间点 t t t时的标签(训练时这里使用真实标签,预测时这里输出预测标签), y t − 1 y_{t-1} yt−1则表示在时间点 t t t的前一个时间点 t − 1 t-1 t−1时的标签值。我们可以根据不同的场景规定 t t t与 t − 1 t-1 t−1之间具体的时间间隔大小。在该公式中,不同的系数 β \beta β乘在每一个时间点的数值之前,表示不同历史时间点的真实标签值以不同的方式影响着当前/未来时间点 t t t的真实标签值。很明显,该公式与多元线性回归的方程非常类似,只不过系数 β \beta β的脚标逐渐上升(由1到p)的同时,标签 y y y的脚标在逐渐下降(由t-1到t-p,是从未来到过去)。
需要注意的是,该公式中包含两个常数项: c c c和 z t z_t zt。其中, c c c是线性方程中惯例存在的常数项(可以为0),而 z t z_t zt则代表当前时间点下无法被捕捉到的某些影响,也就是白噪音(White Noise)。在统计学/数据挖掘领域中,白噪音相当于是随机变量,独立于任何已经获取的样本或标签数据,因此在时间序列中,白噪音代表着当下时间点可能发生的一切影响标签数值的偶然事件。虽然白噪声序列在不同的统计场景下往往定义有些区别,在时间序列预测中,最严格的情况下,只有均值为0、方差为特定 σ 2 \sigma^2 σ2、服从正太分布的序列才能被称之为白噪声序列,在现实中我们往往无法使用这么严格的条件。由于 c c c和 z t z_t zt都是常数,因此我们往往将它们合并为一个对象 β 0 \beta_0 β0进行建模,因此你也有可能看到公式:
y t = β 0 + β 1 y t − 1 + β 2 y t − 2 + β 3 y t − 3 + . . . β p y t − p y_t = \beta_0 + \beta_1y_{t-1} + \beta_2y_{t-2} + \beta_3y_{t-3} + ... \beta_py_{t-p} yt=β0+β1yt−1+β2yt−2+β3yt−3+...βpyt−p
这一公式被我们称之为是p阶的自回归模型,写作AR§且 p ≠ 0 p \neq 0 p=0。
y t = β 0 + β 1 y t − 1 + β 2 y t − 2 + β 3 y t − 3 + . . . β p y t − p y_t = \beta_0 + \beta_1y_{t-1} + \beta_2y_{t-2} + \beta_3y_{t-3} + ... \beta_py_{t-p} yt=β0+β1yt−1+β2yt−2+β3yt−3+...βpyt−p
这一公式被我们称之为是p阶的自回归模型,写作AR§且 p ≠ 0 p \neq 0 p=0。
MA模型是不同于AR模型的、另一流派的时序模型。虽然与AR模型共同发源于经典统计学,但MA模型的基本思想和基本假设却与AR模型大不相同。MA模型的基本思想是:大部分时候时间序列应当是相对稳定的。在稳定的基础上,每个时间点上的标签值受过去一段时间内、不可预料的各种偶然事件影响而波动。即在一段时间内,时间序列应该是围绕着某个均值上下波动的序列,时间点上的标签值会围绕着某个均值移动,因此模型才被称为“移动平均模型 Moving Average Model”
基于MA模型的基本思想,我们可以用如下公式表示MA模型:
y t = μ + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + θ 3 ϵ t − 3 + . . . + θ q ϵ t − q y_t = \mu + \epsilon_t + \theta_1\epsilon_{t-1} + \theta_2\epsilon_{t-2} + \theta_3\epsilon_{t-3} + ... +\ \theta_q\epsilon_{t-q} yt=μ+ϵt+θ1ϵt−1+θ2ϵt−2+θ3ϵt−3+...+ θqϵt−q
这一公式被我们称之为是q阶的移动平均模型,写作MA(q)且 q ≠ 0 q \neq 0 q=0。不难发现,这个公式虽然看上去也与线性回归非常相似,但建模思路明显有巨大的差别——
首先,公式中的 y t y_t yt表示在时间点 t t t时的标签值, μ \mu μ表示当前时间序列标签的均值, ϵ t \epsilon_{t} ϵt则表示在时间点 t t t时、不可预料、不可估计的偶然事件的影响, ϵ t − 1 \epsilon_{t-1} ϵt−1则代表在时间点 t − 1 t-1 t−1时不可预料的、不可估计的偶然事件的影响。不难发现,“偶然事件”这一定义与AR模型中白噪音的定义几乎一模一样,它们都是当前时间点下无法被捕捉到的某些影响,因此 ϵ \epsilon ϵ在MA模型中就代表当日的“白噪音”,而AR模型公式中的 z t z_t zt也可使用 ϵ t \epsilon_t ϵt来表示。在理想条件下,MA模型规定 ϵ \epsilon ϵ应当服从均值为0、标准差为1的正态分布,但在实际计算时,MA模型规定 ϵ \epsilon ϵ等同于模型的预测值 y ^ t \hat{y}_{t} y^t与真实标签 y t y_{t} yt之间的差值(Residuals),即:
ϵ t = y t − y ^ t \epsilon_t = y_t - \hat{y}_t ϵt=yt−y^t
由于偶然事件是无法被预料的、偶然事件带来的影响也是无法被预估的,因此MA模型使用预测标签与真实标签之间的差异就来代表“无法被预料、无法被估计、无法被模型捕捉的偶然事件的影响”。MA模型相信这些影响累加起来共同影响下一个时间点的标签值,因此 y t y_t yt等于所有 ϵ \epsilon ϵ的线性组合(加权求和)。
在公式中,不同的系数 θ \theta θ乘在每一个时间点的差值之前,表示不同时间点发生的各种偶然事件对真实标签值所产生的影响不同,需要注意的是,今天的“偶然事件” ϵ t \epsilon_t ϵt之前没有需要求解的系数(即默认系数为1),这可能代表今天的“偶然事件”对今天的标签的影响程度是100%。
在这一公式当中, μ \mu μ和 ϵ t \epsilon_t ϵt都是常数项,因此在一些教材当中我们也会看到将这两项进行合并后、整理为 θ 0 \theta_0 θ0来进行求解的情况,但这种写法其实是不严谨的。有以下两个理由:
1)MA模型与AR模型不同, ϵ t \epsilon_t ϵt虽然在结果上呈现为一个常数(而不是一个需要求解的参数),但它实际上是由标签 y t y_t yt和预测值 y ^ t \hat{y}_t y^t的差值计算出来的、并不是在模型估计过程中和常数一样被估计出来的,这一点令我们不能将 ϵ t \epsilon_t ϵt当做普通的常数来看待。
2)常数 μ \mu μ与常数 ϵ \epsilon ϵ对应了MA模型假设中的两个部分。MA模型假设时间序列的(长期)趋势与时间序列的(短期)波动受不同因素的影响,而在该公式中常数 μ \mu μ对应的是长期趋势, ϵ \epsilon ϵ对应的是短期波动,因代表的含义不同因此不能一概而论。