【问题标题】:Null result for ACF1 from accuracy function精度函数的 ACF1 结果为空
【发布时间】:2020-08-16 02:40:42
【问题描述】:

我为时间序列拟合了一个幼稚模型,并为 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)

谢谢!

P.s.:这是这个问题的后续问题: Getting null results from the accuracy function in fabletools package

【问题讨论】:

    标签: r forecasting fable


    【解决方案1】:

    您有 4 个预测,但测试集中只有 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 package (v0.3.0) 于 2020 年 8 月 16 日创建

    【讨论】:

    • 谢谢!这种特殊的加分有效,但我仍然想知道为什么当我在末尾添加两个 0 时它不起作用?也就是说,如果我有 value = c(12, 12, 0, 0, 0, 0, 0, 0, 0),对于 ACF1,我仍然会得到 null。
    • 因为所有的预测都是零,所有的实际都是零,所以所有的错误都是零。您要求的是一系列未定义的零的自相关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2015-09-13
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多