0

我将一个幼稚的模型拟合到一个时间序列中,并为 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:这是这个问题的后续问题: Getting null results from the accuracy function in fabletools package

4

1 回答 1

0

您有四个预测,但测试集中只有 2 个值,因此accuracy只能使用前 2 个预测。这给了它 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

reprex 包(v0.3.0)于 2020 年 8 月 16 日创建

于 2020-08-16T06:39:50.650 回答