Нулевой результат для 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)