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

如何从fabletools::forecast()的<dist>列提取参数并拆分为新列?

提取fable预测结果中的分布参数到新列

针对新版fabletools包,以下两种方法可直接将forecast()输出的<dist>列中的分布参数(如mu、sigma等)提取为新列:

方法一:使用内置的dist_param()函数(通用型)

该方法适用于所有分布类型,无需手动指定参数名,会自动识别并提取对应分布的参数:

# 加载所需包
library(tsibble)
library(fable)
library(fabletools)
library(dplyr)
library(tidyr)

# 生成示例预测对象
aus_production_filtered <- aus_production %>%
  filter(year(Quarter) <= 2000)
fit <- aus_production_filtered %>%
  model(arima = ARIMA(Beer))
fc <- fit %>% forecast(h = 10)

# 提取分布参数并展开为新列
fc_with_params <- fc %>%
  mutate(dist_params = map(dist, dist_param)) %>%
  unnest(dist_params)

执行后,fc_with_params会新增对应分布的参数列(如正态分布的mu、sigma,泊松分布的lambda等)。

方法二:手动提取参数(针对已知分布类型)

若明确预测结果的分布类型,可直接通过提取分布对象的属性来生成新列,以正态分布为例:

fc_with_params <- fc %>%
  mutate(
    mu = map_dbl(dist, ~ .x$mu),
    sigma = map_dbl(dist, ~ .x$sigma)
  )

此方法更灵活,但需要提前知晓当前模型输出的分布参数名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:25:43