You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R的fable包创建以中位数替代均值的组合模型?

用fable/fabletools实现中位数组合预测模型

你当前的代码存在两处关键问题:一是括号匹配错误(ARIMA()后面多了一个右括号),二是向cmbn_args传参的方式不对,导致无法正确调用中位数聚合逻辑。

以下是修正后的可运行代码:

首先加载依赖包:

library(fable)
library(fabletools)
library(tsibble)

模拟示例时间序列数据(可替换为你的实际数据集):

set.seed(123)
y <- tsibble(
  date = seq.Date(as.Date("2020-01-01"), by = "month", length.out = 60),
  y = exp(rnorm(60, mean = 5, sd = 0.2) + 0.01*1:60 + sin(2*pi*1:60/12))
)

构建基于中位数的组合模型:

comb1 <- combination_model(
  TSLM(log(y) ~ trend() + season()),
  ARIMA(log(y), stepwise = TRUE, approximation = TRUE),
  THETA(log(y)),
  ETS(log(y)),
  cmbn_fn = combination_ensemble,
  cmbn_args = list(fun = median)
)

# 拟合模型并生成预测
fit <- y %>% model(comb = comb1)
fc <- fit %>% forecast(h = 12)

关键说明:

  • combination_ensemble函数的fun参数用于指定聚合单个模型预测结果的函数,直接传入fun = median即可实现中位数组合
  • 需修正原始代码中的括号错误,所有子模型都要放在combination_model()的前序参数位置,不能提前闭合括号

内容的提问来源于stack exchange,提问作者Brian Head

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:54:54