这来自文本预测原理和实践,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')"
型
1条答案
按热度按时间c3frrgcw1#
AICc是可能性和基础模型中参数数量的函数,因此您需要能够写下模型和可能性。使用bagging,您将对许多模型进行平均,因此没有单一的基础模型。您可以通过假设残差为高斯分布来近似可能性,但不清楚参数的数量应该是多少。