ARMAX模型预测在传递exog值时会导致“ValueError:矩阵不对齐”

2024-05-29 05:51:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正努力用ARMAX模型预测样本外的值。在

装配模型很好。在

armax_mod31 = sm.tsa.ARMA(endog = sales, order = (3,1), exog = media).fit()
armax_mod31.fittedvalues

据我所知,没有外生值的预测也很有效。在

^{pr2}$

然而,一旦我想预测样本外的值,我就遇到了问题。在

all_armax = armax_mod31.forecast(steps = 14, alpha = 0.05, exog = media_out)

导致“值错误:矩阵未对齐”。在

我的第一个想法是,媒体输出的长度不合适。 我检查了好几次,并试图通过其他系列作为exog。 exog长度与步数相同。我尝试了一个时间序列 也仅限于*媒体_输出值*. 在

检查了文件:

"exog : array
If the model is an ARMAX, you must provide out of sample
values for the exogenous variables. This should not include
the constant."

据我所知,这是我所做的。你知道我做错了什么吗? 另外,我发现了这个ipython笔记本http://nbviewer.ipython.org/cb6e9b476a41586958b5 在网上寻找解决方案。 在[53]中的上:您可以看到类似的错误。作者的评论暗示了样本外预测的一个普遍问题,我说得对吗?在

我运行的是python2.7.3、pandas 0.12.0-1和statsmodels 0.5.0-1。在


Tags: the模型错误ipythonoutmedia媒体sm
1条回答
网友
1楼 · 发布于 2024-05-29 05:51:42

啊,我明白了。你也需要传递过去的数据。E、 如果你想预测一个ARMAX(2,q)模型的12个步骤,那么exog的长度应该是14。你需要两个额外的滞后时间才能预测出1步。因此,如果您确保exog是2d的,那么这应该可以像预期的那样工作。在

我看不出这件事,但如果你觉得有什么需要改进的地方,请告诉我。现在我会在文件中注明。在

[编辑:我意识到这个要求是愚蠢的。使用ARMA forecasthttps://github.com/statsmodels/statsmodels/pull/1124.]时,不再需要提供任何样本内变量

相关问题 更多 >

    热门问题