使用fable/fable.prophet的FB Prophet分层模型调和预测无置信区间咨询
问题解答
这既不是数据问题,也不是代码错误,而是fable框架当前的设计限制——不管用Prophet还是神经网络模型,分层调和操作都会丢失置信区间信息。
原因说明
fable中的reconcile()函数(包括min_trace、top_down、bottom_up这些调和方法)目前仅针对点预测值进行层级一致性调整,没有实现对预测分布或置信区间的调和逻辑。原始模型(比如你用的Prophet)本身能输出个体序列的置信区间,但经过调和步骤后,框架不会把这些不确定性信息整合到最终结果里,所以调和后的预测只会保留单一的点估计值。
临时解决方案
如果需要得到调和后的置信区间,目前可以手动通过bootstrap方法实现:
- 用原始模型生成大量(比如1000次)的样本预测值(而非仅点估计和置信区间)
- 对每一组样本预测值执行分层调和操作
- 从调和后的所有样本中,按分位数计算得到置信区间
你的代码示例
Data %>% model(prophet = prophet(Variable ~ season(period = 12, type = "additive"))) %>% reconcile(min_trace(prophet),top_down(prophet), bottom_up(prophet)) %>% forecast(h = 12)
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

