Я борется с прогнозированием из значений образца с помощью модели ARMAX.Прогнозирование модели ARMAX приводит к «ValueError: матрицы не выровнены» при передаче значений exog
Приспособление модели прекрасно работает.
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 такая же, как и количество шагов. Я пробовал временные ряды и также только * 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, а ищет решение в Интернете. В В [53]: вы можете увидеть похожие ошибки. Комментарий автора предлагает общую проблему с предсказанием вне выборки, правильно?
Я запускаю python 2.7.3, pandas 0.12.0-1 и statsmodels 0.5.0-1.
Можете ли вы отправить и/или отправить мне некоторые данные для тиражирования? – jseabold
Нет, похоже, что параметры тренда не должны быть в экзоге, но exog должен быть 2d. Я буду размещать обновления здесь: https://github.com/statsmodels/statsmodels/issues/1076 – jseabold