library(fpp2) # for prison dataset
library(hts) # forecasting function
# prepare group time series
prison.gts <- gts(prison/1e3, characters = c(3,1,9),
gnames = c("State", "Gender", "Legal",
"State*Gender", "State*Legal",
"Gender*Legal"))
# run forecasts
forecast.gts(prison.gts, method="bu", fmethod="arima")
forecast.gts(prison.gts, method="comb", fmethod="arima")
forecast.gts(prison.gts, method="bu", fmethod="ets")
forecast.gts(prison.gts, method="comb", fmethod="ets")
forecast.gts(prison.gts, method="bu", fmethod="rw")
forecast.gts(prison.gts, method="comb", fmethod="rw")正如您所看到的,我正在尝试这两个参数'method‘和'fmethod’可用的所有不同值,以比较预测结果。
有没有一种更简单的方法可以用tidyverse格式来做这件事?基本上,我想创建一个所有参数组合的列表,将它们的结果收集到一个表中。
发布于 2020-04-15 15:17:54
使用tidyverse方法,您可以使用crossing来创建methods和fmethod的所有组合。我们可以使用map2将forecast.gts函数应用于每种组合。
library(fpp2)
library(hts)
library(dplyr)
result_obj <- tidyr::crossing(methods = c('bu', 'comb'),
fmethod = c('arima', 'ets', 'rw')) %>%
mutate(forecast_result = purrr::map2(methods, fmethod,
~forecast.gts(prison.gts,method = .x, fmethod = .y)))https://stackoverflow.com/questions/61223227
复制相似问题