Нулевой результат для ACF1 из функции точности

Я подобрал наивную модель к временному ряду и получил значение NULL для столбца ACF1. Я думал, что всегда должен быть числовой результат, потому что это просто корреляция? Почему это ноль? Вот мой код:

library('fable')
library('feasts')
library('dplyr')

df = data.frame("t" = 1:7, "value" = c(12, 12, 0, 0, 0, 0, 0))
tsb = df %>%
  as_tsibble(index = t)
train = tsb %>% filter(t < 6)

md = train %>% model(naive = NAIVE(value))
fc = md %>% forecast(h = 4)
accuracy(fc, tsb)

Благодарность!

Ps: Это дополнительный вопрос к этому вопросу: Получение нулевых результатов из функции точности в пакете fabletools

1 ответ

Решение

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

Вот пример с четырьмя значениями в тестовом наборе:

library(fable)
library(dplyr)

tsb <- data.frame(
    t = 1:9,
    value = c(12, 12, 0, 0, 0, 0, 0, 1, 1)
  ) %>%
  as_tsibble(index = t)

md <- tsb %>%
  filter(t < 6) %>%
  model(naive = NAIVE(value))
md %>%
  forecast(h = 4) %>%
  accuracy(data = tsb)
#> # A tibble: 1 x 9
#>   .model .type    ME  RMSE   MAE   MPE  MAPE  MASE  ACF1
#>   <chr>  <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 naive  Test    0.5 0.707   0.5   100   100 0.167  0.25

Создано 16.08.2020 пакетом REPEX (v0.3.0)

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