statsmodel ARIMA能否使用外生变量进行多步预测
我正在尝试使用statsmodels来预测一个带有外部变量的ARIMA模型。我使用了一系列外部变量,预测未来八个时间段,并运行了以下命令:
prediction = dynamic_arima_results.forecast(steps=8, exog=X_pred)
但我遇到了以下错误:
Traceback (most recent call last):
File "<ipython-input-1-9cfb206405a4>", line 41, in evaluate_model
prediction = dynamic_arima_results.forecast(steps=8, exog=X_pred)
File ".../arima_model.py", line 1603, in forecast exog, method=self.model.method)
File ".../arima_model.py", line 235, in _arma_predict_out_of_sample exog)
File ".../arima_model.py", line 206, in _get_predict_out_of_sample
X = lagmat(np.dot(exog, exparams), p, original='in', trim='both')
ValueError: matrices are not aligned
经过一番研究,似乎错误出现在点乘操作:np.dot(exog, exparams)
这一步。exog
是未来八个时间段的外部变量值,而exparams
是一个单一的值,我猜是外部变量的系数。
如果我只预测一步,并且只传入一个外部变量的值,预测是可以成功的。我是不是做了什么明显的错误,还是说多期预测带外部变量的功能还没有实现呢?
1 个回答
2
是的,这确实是个bug。我猜你现在用的是0.5.0版本吧?这个问题在主版本中已经修复了,并且会在下一个版本发布时解决。在此期间,如果可以的话,建议你升级一下。可以查看文档,了解如何从github构建或者在Windows上安装夜间版本。
你可以在StackOverflow和github的问题页面上搜索更多关于这个错误的信息。