R语言 如何测量袋装时间序列的AICc

6xfqseft  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(146)

这来自文本预测原理和实践,Bootrapping instructions,但我不知道如何计算袋装模型的AICc。

library(fpp3)
library(tidyverse)
cement <- aus_production |>
  filter(year(Quarter) >= 1988) |>
  select(Quarter, Cement)
cement_stl <- cement |>
  model(stl = STL(Cement))

字符串
接下来,通过创建一些模拟来计算 Bootstrap 值(我将其设置为10,以便运行得更快)

sim <- cement_stl |>
  generate(new_data = cement, times = 10,
           bootstrap_block_size = 8) |>
  select(-.model, -Cement)


到目前为止,这很好。我们可以做一个预测,像这样:

ets_forecasts <- sim |>
  model(ets = ETS(.sim)) |>
  forecast(h = 12)


接下来,我们对预测进行平均,这在书中也是一个简单的过程:

bagged <- ets_forecasts |>
  summarise(bagged_mean = mean(.mean))


这就是我卡住的地方。我试图计算AICc值,但什么都不起作用。例如:

glance(bagged)
accuracy(bagged)
glance(ets_forecasts)
accuracy(object = bagged, data = ets_forecasts)


都返回错误消息,例如:

Error in UseMethod("glance") : 
  no applicable method for 'accuracy' applied to an object of class "c('tbl_ts', 'tbl_df', 'tbl', 'data.frame')"

c3frrgcw

c3frrgcw1#

AICc是可能性和基础模型中参数数量的函数,因此您需要能够写下模型和可能性。使用bagging,您将对许多模型进行平均,因此没有单一的基础模型。您可以通过假设残差为高斯分布来近似可能性,但不清楚参数的数量应该是多少。

相关问题