Прогнозирование в будущее с Dynami c ARIMA - PullRequest
0 голосов
/ 27 апреля 2020

Допустим, я пытаюсь предсказать переменную y через четыре месяца, используя динамическую c регрессию ARIMA. Я заранее знаю переменные xreg за четыре месяца. Я не совсем уверен, как функция forecast делает прогнозы, например, могу ли я кормить ее пропущенными значениями y, и она автоматически предполагает, что я пытаюсь прогнозировать четыре месяца сразу после периода обучения, если кормить ее только xreg за эти месяцы?

Имеет ли смысл приведенный ниже код для прогнозирования следующих четырех месяцев?

library(dplyr)
library(fable)
library(tsibble)

set.seed(1)
r <- rnorm(36)
r2 <- rnorm(4)
x <- data.frame(index = yearmonth(seq.Date(as.Date("2017-01-01"),
                                           as.Date("2020-04-01"),
                                           "1 month")),
                y = cumprod(c(r, rep(NA, 4))),
                a = c(1.8 * r + rnorm(36), 1.8 * r2 + rnorm(4)),
                b = c(0.5 * r + rnorm(36), 1.5 * r2 + rnorm(4))) %>% 
  as_tsibble()


a1 <- x %>% 
  model(ARIMA(y ~ a + b))

a1 %>% forecast(x[37:40, ])

1 Ответ

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

Нет, функция прогнозирования предполагает, что вы хотите прогнозировать месяцы после данных обучения. Если ваши тренировочные данные заканчиваются пропущенными наблюдениями, это просто означает, что они прогнозируют по последнему доступному наблюдению, через пропущенный период, а затем в период после обучающих данных.

Вот некоторый код для выполнения того, что вы хотите .

x %>%
  filter(index <= yearmonth("2019 Dec")) %>%
  model(ARIMA(y ~ a + b)) %>%
  forecast(new_data = filter(x, index > yearmonth("2019 Dec")))
...