使用 statsmodels.tsa.arima 对 ARIMAX 系数的零限制

Zero-restrictions on ARIMAX coefficients using statsmodels.tsa.arima

我正在尝试将 p=96 和 q=96 的 ARIMAX 模型估计为仅非零系数(意味着所有滞后阶数 <96 的系数为零)。的文档 statsmodels.tsa.arima.model.ARIMA¶ 表示可以为滞后阶数 p 和 q 提供一个列表。我首先使用下面的代码尝试了这个。

p=[96]
q=p.copy()
d=0

order_tuple=(p,d,q)

for i in range(start,len(df_series)+1 -(96)):
  endog= df_series.iloc[0:i-1,:]['1']
  exog=df_series.iloc[0:i-1,:]['temp']

  ARIMAX=ARIMA(endog.values, exog=exog.values, order=order_tuple)
  ARIMAX_fit=ARIMAX.fit()

但是尝试拟合模型后出现如下错误:

--> 428         _check_estimable(len(self.endog), sum(order))
    429         self.k_ar = k_ar = order[0]
    430         self.k_ma = k_ma = order[1]

TypeError: unsupported operand type(s) for +: 'int' and 'list'

我也尝试过 pyflux ARIMAX 模型,但这不允许零限制。知道如何解决这个问题吗?

提前致谢!

看来您使用的是旧型号。您需要执行以下任一操作:

from statsmodels.tsa.arima.model import ARIMA

ARIMA(...)

import statsmodels.api as sm

sm.tsa.arima.ARIMA(...)