这来自文本预测原理和实践,引导说明,但我不知道如何计算袋装模型的 AICc。
library(fpp3)
library(tidyverse)
cement <- aus_production |>
filter(year(Quarter) >= 1988) |>
select(Quarter, Cement)
cement_stl <- cement |>
model(stl = STL(Cement))
接下来,通过创建多个模拟来计算引导值(我将其设置为 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')"
AICc 是基础模型中的可能性和参数数量的函数,因此您需要能够写出模型和可能性。通过装袋,您可以对许多模型进行平均,因此不存在单一的基础模型。您可以通过假设残差为高斯分布来近似似然,但不清楚参数的数量应该是多少。