ARIMA Количество регрессоров не соответствует подогнанной модели, Ошибка в прогнозе .forecast_ARIMA (fit, xreg =) в R - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть объект временного ряда с именем timeseries2, как показано ниже:

timeseries2

timeseries2
Time Series:
Start = 1 
End = 49 
Frequency = 1 
   sum_profit sum_quantity sum_discount sum_Segment sum_Ship_mode
 1  2424.1125          269         9.45         145           105
 2   866.1925          163         8.05         100            79
 3   123.4122          527        23.15         329           223
 4  3313.2568          543        17.20         352           207
 5  2636.2171          468        18.65         277           208
 6  5316.8660          506        21.42         245           212

Я подхожу к временному ряду, где y = sum_profits столбец и x = columns другие чем прибыль, которая составляет sum_quantity, sum_discount, sum_Segment и sum_Ship_mode. Я подхожу к ним и затем пытаюсь прогнозировать на следующие 8 периодов. Я получаю сообщение об ошибке, как показано

 (fit <- auto.arima(timeseries2[,"sum_profit"],
                    xreg=timeseries2[,c(2:5)]))

  fcast <- forecast(fit, xreg=rep(mean(timeseries2[,c(2:5)]),8))

 Error in forecast.forecast_ARIMA(fit, xreg = rep(mean(timeseries2[,
 c(2:5)]),  :    Number of regressors does not match fitted model

1 Ответ

1 голос
/ 14 апреля 2020

Эта ошибка возникает из-за того, что результат rep(mean(timeseries2[,c(2:5)]),8) представляет собой одномерный вектор, тогда как вашей модели ARIMA требуется 4-мерная матрица значений. Будет выполнена следующая корректировка:

 fcast <- forecast(fit, xreg=matrix(rep(mean(timeseries2[,c(2:5)]),8),ncol=4))

Конечно, это даст вам только прогноз на 2 периода, поскольку на самом деле это 2 наблюдения, но это легко решить. Вы получите предупреждение, если не предоставите имена столбцам матрицы, которые соответствуют вашим исходным данным, но это безопасно игнорируется, если вы правильно проверите свой ввод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...