【问题标题】:ARIMAX With Multiple Lags具有多个滞后的 ARIMAX
【发布时间】:2022-01-21 02:52:50
【问题描述】:
我正在使用 statsmodels ARIMA 包来创建一些 ARIMAX 模型。我在预测中使用了一些不同的外生变量。从documentation 看来,该模型似乎只使用外生变量的当前值来预测我的内生变量。有没有一种好方法可以在我的预测中包含滞后到某个点(旧值)的外生变量,而无需手动将滞后的外生序列添加到模型中?
需要明确的是,here 的解决方案正是我想要避免的。
【问题讨论】:
标签:
python
statsmodels
arima
【解决方案1】:
我明白你的意思,但这不起作用。您可以将 ARIMA 视为单个函数,例如时间序列 f(t) 上的 ARIMA(2, 0, 1) 类似于:
ar.L1 * f(t-1) + ar.L2 * f(t-2) + ma.L1 * e(t-1)
ar.L1 和 ar.L2 是用于第一和第二滞后自回归的系数。 ma.L1是用于移动平均模型的系数(以前的预测误差通常命名为e(t)。可以在ARIMA模型的.summary()看到:
现在,当您向 ARIMA 模型添加外生变量时,您只需向该函数添加另一个项:
ar.L1 * f(t-1) + ar.L2 * f(t-2) + ma.L1 * e(t-1) + coef_exog * exog(t)
statsmodels 的 ARIMA 实现只允许每个外生变量有一个值,因为只有一个系数。也许他们将来会改变这一点,但现在将外生滞后作为单独的值传递是唯一的可能性。
您可以使用 pandas .diff() 方法创建滞后版本。