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

R语言forecast包geom_forecast函数使用常见问题解析

geom_forecast 常见问题解答

1. 未来5年预测的参数配置

geom_forecast 通过 h 参数控制预测时间步长,本次使用的lungDeaths是月度频率时间序列(年采样频率为12),5年对应60个时间步,直接在函数内指定h=60即可实现需求:

library(forecast)
# 直接加载包内置标准数据集,不要手动cbind避免丢失时间属性
data("lungDeaths")
# 绘制未来5年预测结果
autoplot(lungDeaths) + geom_forecast(h = 60)

其他频率的序列按对应时间粒度换算h即可:年度数据预测5年设h=5,季度数据预测5年设h=20。

2. 阴影区域的含义

红色、蓝色阴影是两个序列各自的预测置信区间,颜色和同组预测线一一对应(红色对应mdeaths男性肺部死亡序列、蓝色对应fdeaths女性肺部死亡序列):

  • 内层颜色更深的同色系色块为80%置信区间:代表未来真实观测值有80%概率落在该范围内
  • 外层颜色更浅的同色系色块为95%置信区间:代表未来真实观测值有95%概率落在该范围内
    距离历史数据越远阴影宽度越大,是因为预测时长越久不确定性越高,区间会自然变宽。如果需要调整置信水平,可以给geom_forecast传level参数,比如level=c(0.9, 0.99)就会输出90%和99%两层置信区间。

3. 历史线与预测线断点的原因

你贴的测试代码本身就有大概率触发断点的问题,常见诱因按出现概率排序:

  • 时间属性丢失:代码里手动执行lungDeaths = cbind(mdeaths, fdeaths),如果没有提前加载标准ts格式的源数据,cbind操作很容易丢失时间序列的起始时间、采样频率属性,导致预测起始点和历史数据终点错位。直接调用data("lungDeaths")加载包内置数据集即可规避这个问题。
  • 版本兼容bug:旧版本forecast包处理多变量mts对象时,存在预测起始点偏移1个时间步的已知问题,更新到最新版forecast包即可修复。
  • 序列存在缺失值:如果历史序列末尾存在缺失值,模型拟合时会自动剔除缺失段,导致拟合终点和预测起点衔接不上,补全末尾缺失值即可解决。

4. 默认预测模型

geom_forecast默认调用forecast::ets()做预测,也就是指数平滑状态空间模型,函数会自动根据AICc信息准则,从所有可选的误差类型(加性/乘性)、趋势类型(无趋势/加性趋势/阻尼趋势)、季节类型(无季节/加性季节/乘性季节)组合里选择最优模型适配数据。
如果需要替换默认模型,可以通过method参数指定,比如geom_forecast(method = 'arima')就会调用自动ARIMA模型做预测。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:36:22