НУЛЕВАЯ модель при указании окна для СРЕДНЕГО ЗНАЧЕНИЯ (басня)

#forecasting #forecast #fable

Вопрос:

Я новичок в кодировании R и Fable и в настоящее время работаю над созданием некоторых базовых моделей прогнозирования скользящей средней, и мое намерение состоит в том, чтобы создать несколько моделей, учитывающих среднее значение разной продолжительности периода.
Я попытался указать ~window for MEAN() , однако он возвращает NULL модель.

Вот некоторые тестовые данные:

 Units <- sample(1:30)
Date  <- ymd(paste0("2019-01-",1:30))
key[1:30] <- "test1"
trial <- bind_cols(Date=Date, Units=Units, key = key) %>%
  as_tsibble(index=Date, key=key)

fit <- trial %>% 
  model(Avg = MEAN(Units~window(size = 12)))
 

Запустив код, я получаю следующий результат:

 
> Units <- sample(1:30)
> Date  <- ymd(paste0("2019-01-",1:30))
> key[1:30] <- "test1"
> trial <- bind_cols(Date=Date, Units=Units, key = key) %>%
    as_tsibble(index=Date, key=key)
> 
> fit <- trial %>% 
    model(Avg = MEAN(Units~window(size = 12)))
Advarselsbesked:
1 error encountered for Avg
[1] `slide()` was deprecated in tsibble 0.9.0 and is now defunct.
Please use `slider::slide()` instead.
 
> 
> fit
# A mable: 1 x 2
# Key:     key [1]
  key            Avg
  <chr>      <model>
1 test1 <NULL model>
 

Любые указания о том, как я могу MEAN() просто взять среднее значение последних 12 наблюдений, которые были бы очень признательны.

Ответ №1:

Это работает с использованием последних версий пакетов:

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

Units <- sample(1:30)
Date  <- ymd(paste0("2019-01-",1:30))
key <- "test1"
trial <- bind_cols(Date=Date, Units=Units, key = key) %>%
  as_tsibble(index=Date, key=key)

fit <- trial %>% 
  model(Avg = MEAN(Units ~ window(size = 12)))

# .fitted shows mean of previous 12 observations
augment(fit) %>% tail()
#> # A tsibble: 6 x 7 [1D]
#> # Key:       key, .model [1]
#>   key   .model Date       Units .fitted .resid .innov
#>   <chr> <chr>  <date>     <int>   <dbl>  <dbl>  <dbl>
#> 1 test1 Avg    2019-01-25    24    16.4   7.58   7.58
#> 2 test1 Avg    2019-01-26    27    18.1   8.92   8.92
#> 3 test1 Avg    2019-01-27    26    18.9   7.08   7.08
#> 4 test1 Avg    2019-01-28    18    20.5  -2.5   -2.5 
#> 5 test1 Avg    2019-01-29    11    19.6  -8.58  -8.58
#> 6 test1 Avg    2019-01-30     3    20.1 -17.1  -17.1

# Check
mean(trial$Units[18:29])
#> [1] 20.08333
 

Создано 2021-08-04 пакетом reprex (v2.0.0)

Комментарии:

1. Спасибо! Обновление пакетов решило проблему.