我正努力用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。在
啊,我明白了。你也需要传递过去的数据。E、 如果你想预测一个ARMAX(2,q)模型的12个步骤,那么exog的长度应该是14。你需要两个额外的滞后时间才能预测出1步。因此,如果您确保exog是2d的,那么这应该可以像预期的那样工作。在
我看不出这件事,但如果你觉得有什么需要改进的地方,请告诉我。现在我会在文件中注明。在
[编辑:我意识到这个要求是愚蠢的。使用ARMA forecasthttps://github.com/statsmodels/statsmodels/pull/1124.]时,不再需要提供任何样本内变量
相关问题 更多 >
编程相关推荐