我正在努力使用 ARMAX 模型预测样本值。
拟合模型工作正常。
armax_mod31 = sm.tsa.ARMA(endog = sales, order = (3,1), exog = media).fit()
armax_mod31.fittedvalues
就我有一个相应的模型而言,没有外生值的预测也可以正常工作。
arma_mod31 = sm.tsa.ARMA(sales, (3,1)).fit()
all_arma = arma_mod31.forecast(steps = 14, alpha = 0.05)
forecast_arma = Series(res_arma[0], index = pd.date_range(start = "2013-08-21", periods = 14))
ci_arma = DataFrame(res_arma[2], columns = ["lower", "upper"])
但是,一旦我想预测样本值之外,我就会遇到问题。
all_armax = armax_mod31.forecast(steps = 14, alpha = 0.05, exog = media_out)
导致“ValueError:矩阵未对齐”。
我的第一个想法是,*media_out* 的长度不合适。我检查了几次,并尝试将其他系列作为 exog 传递。exog 的长度与步数相同。我尝试了一个时间序列,也只有 *media_out.values*。
检查了文档:
"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 。On In [53]:您可以看到类似的错误。作者的评论表明样本外预测存在一般问题,对吗?
我正在运行 python 2.7.3、pandas 0.12.0-1 和 statsmodels 0.5.0-1。