Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

8.8 时间序列模型

8.8 时间序列模型

大多数时间序列模型旨在同时考虑趋势、季节性和组成部分,同时解决时间序列中嵌入的自相关性和平稳性。例如,前一节讨论的自回归(AR)模型解决了时间序列中的自相关性问题。

时间序列预测中最广泛使用的模型之一是ARIMA模型。

1. ARIMA模型

如果我们将平稳性与自回归和移动平均模型相结合(在本节后面进一步讨论),我们就得到了ARIMA模型。ARIMA是AutoRegressive Integrated Moving Average的缩写,它具有以下组成部分:

AR(P)AR(P)

它代表自回归,即时间序列对自身的回归,正如前一节所讨论的,假设当前系列值依赖于其之前的值,并存在一些滞后(或多个滞后)。模型中的最大滞后被称为p。

I(d)I(d)

它代表整合的阶数。它简单地表示使序列平稳所需的差分次数。

MA(q)MA(q)

它代表移动平均。恕不展开,简言之,它模拟了时间序列的误差;同样,假设当前误差取决于之前的误差,并存在一些滞后,这被称为q。

移动平均方程可以写成:

yt=c+ϵt+i=1qθiϵtiy_t = c + \epsilon_t + \sum_{i=1}^{q} \theta_i \epsilon_{t-i}

其中:

  • yty_t 是时间序列在时刻 t t 的观测值。

  • cc 是常数项。

  • ϵt\epsilon_t 是在时刻 tt 的误差项。

  • θi\theta_i 是移动平均项的系数 i=1,2,,qi = 1, 2, \ldots, q

综合所有部分,完整的ARIMA模型可以写成:

yt=c+ϕ1yt1++ϕpytp+θ1ϵt1++θqϵtq+ϵty'_t = c + \phi_1 y'_{t-1} + \ldots + \phi_p y'_{t-p} + \theta_1 \epsilon_{t-1} + \ldots + \theta_q \epsilon_{t-q} + \epsilon_t

在这个方程中,yy' 是差分序列(可能已经被差分多次)位于等号左边。右边的预测变量包括 yy' 的滞后值和滞后误差。我们将其称为ARIMA(p,d,qp,d,q)模型,其中:

  • p p 是自回归部分的阶数,

  • d d 是差分的次数,

  • q q 是移动平均的阶数。

与自回归和移动平均模型使用的相同的平稳性和可逆性条件也适用于ARIMA模型。

以下显示了拟合ARIMA模型的Python代码,其阶数为(1,0,0):

from statsmodels.tsa.arima.model import ARIMA

# Fit the ARIMA model
model = ARIMA(endog=Y_train, order=[1,0,0])
fit_model = model.fit()

# Print the summary of the model
print(fit_model.summary())

ARIMA模型族有几个变种,其中一些如下所示:

ARIMAX

包含外生变量的ARIMA模型。我们将在案例研究中使用此模型。

SARIMA

该模型中的“S”代表季节性,旨在建模嵌入在时间序列中的季节性组成部分,以及其他组成部分。

VARMA

这是模型拓展到多变量情况的版本,在需要同时预测多个变量时使用。

参考