Инициализация прогноза с помощью пакета fable

Предположим, я оцениваю с помощью пакета fable следующую модель, используя ежедневные данные за 2019 год, где x - экзогенная независимая переменная. Условияpdq(p = 1, d = 0, q = 0) а также PDQ(P = 0, D = 0, Q = 0) означают, что это авторегрессивная модель.

library(tidyverse)
library(fable)

load(file, "Some data.RData")

fit <- dta_2019 %>%
  tsibble() %>%
  model(ar = ARIMA(y ~ x + pdq(p = 1, d = 0, q = 0) + PDQ(P = 0, D = 0, Q = 0)))

Теперь мне нужно использовать эту модель для прогнозирования ежедневных данных на 2020 год, но предположим, что данные начнутся в феврале 2020 года.

forecast_2020 <- fit %>%
  forecast(new_data = tsibble(dta_2020))

Я понимаю, что значение запаздывания y для прогноза, которое требуется, учитывая, что это авторегрессивная модель, будет последним значением, наблюдаемым в наборе данных оценки (dta_2019). Могу ли я инициализировать значение y чем-нибудь другим? Я попытался включить в dta_2020 строку, которая в данном конкретном примере содержит наблюдение за 31 января, но это приводит к тому, что прогноз начинается 31 января.

2 ответа

Для модели ARIMA (с использованием fable::ARIMA()) вам также потребуется сделать прогноз на январь 2020 года, чтобы получить интересующие прогнозы на февраль 2020 года. Если экзогенный регрессор доступен для обоих месяцев, тогда прогнозы могут быть рассчитаны. Предоставление будущих значений вашего экзогенного регрессораx требуется, но будущие значения y не нужны для прогнозирования.

Небольшое обновление, если оно еще актуально.

Я обнаружил, что используя функциюfabletools::refit()сreestimate = FALSEпозволяет обновить модель до последних соответствующих значений, предоставленных черезnew_dataсохраняя при этом оценки, полученные с использованием исходного набора данных.

Таким образом, вы можете указать значение, с которого следует начать на январь 2020 года.

      require(fpp3)

dsub <- us_change[1:190, ]
m <- model(dsub, ARIMA(Consumption))

report(m)
#> Series: Consumption 
#> Model: ARIMA(1,0,3)(1,0,1)[4] w/ mean 
#> 
#> Coefficients:
#>           ar1     ma1     ma2     ma3     sar1    sma1  constant
#>       -0.3474  0.5684  0.3274  0.4123  -0.1367  0.3775    1.1352
#> s.e.   0.1579  0.1486  0.0938  0.0798   0.2164  0.1833    0.1313
#> 
#> sigma^2 estimated as 0.3412:  log likelihood=-164.12
#> AIC=344.25   AICc=345.04   BIC=370.22
  
forecast(m)
  
#> # A fable: 8 x 4 [1Q]
#> # Key:     .model [1]
#>   .model             Quarter   Consumption .mean
#>   <chr>                <qtr>        <dist> <dbl>
#> 1 ARIMA(Consumption) 2017 Q3 N(0.66, 0.34) 0.657
#> 2 ARIMA(Consumption) 2017 Q4  N(0.7, 0.36) 0.698
#> 3 ARIMA(Consumption) 2018 Q1 N(0.69, 0.38) 0.689
#> 4 ARIMA(Consumption) 2018 Q2 N(0.71, 0.42) 0.709
#> 5 ARIMA(Consumption) 2018 Q3 N(0.72, 0.42) 0.724
#> 6 ARIMA(Consumption) 2018 Q4 N(0.73, 0.42) 0.727
#> 7 ARIMA(Consumption) 2019 Q1 N(0.74, 0.42) 0.741
#> 8 ARIMA(Consumption) 2019 Q2 N(0.75, 0.43) 0.748

mfull <- refit(m, new_data = us_change, reestimate = FALSE)

report(mfull)

#> Series: Consumption 
#> Model: ARIMA(1,0,3)(1,0,1)[4] w/ mean 
#> 
#> Coefficients:
#>           ar1     ma1     ma2     ma3     sar1    sma1  constant
#>       -0.3474  0.5684  0.3274  0.4123  -0.1367  0.3775    1.1352
#> s.e.   0.1579  0.1486  0.0938  0.0798   0.2164  0.1833    0.1313
#> 
#> sigma^2 estimated as 0.3207:  log likelihood=-168.58
#> AIC=339.17   AICc=339.19   BIC=342.46

forecast(mfull)

#> # A fable: 8 x 4 [1Q]
#> # Key:     .model [1]
#>   .model             Quarter   Consumption .mean
#>   <chr>                <qtr>        <dist> <dbl>
#> 1 ARIMA(Consumption) 2019 Q3 N(0.68, 0.32) 0.676
#> 2 ARIMA(Consumption) 2019 Q4 N(0.64, 0.34) 0.638
#> 3 ARIMA(Consumption) 2020 Q1 N(0.87, 0.36) 0.869
#> 4 ARIMA(Consumption) 2020 Q2 N(0.73, 0.39) 0.729
#> 5 ARIMA(Consumption) 2020 Q3  N(0.74, 0.4) 0.737
#> 6 ARIMA(Consumption) 2020 Q4  N(0.76, 0.4) 0.755
#> 7 ARIMA(Consumption) 2021 Q1  N(0.81, 0.4) 0.807
#> 8 ARIMA(Consumption) 2021 Q2  N(0.71, 0.4) 0.714

Создано 1 апреля 2023 г. пакетом reprex (v2.0.1).

Другие вопросы по тегам