自下而上 vs 自上而下 vs 最优组合预测策略解析

在多层级销量预测中,自下而上、自上而下与最优组合是三种核心的预测协调策略,旨在解决不同层级(如单品、品类、总店)预测结果不一致的问题。其原理与优缺点对比如下:

策略 核心原理 优点 缺点
自下而上 (Bottom-Up) 仅在最底层(如单品/SKU)训练预测模型,高层级(如品类、总店)的预测值通过汇总底层预测结果得到。 1. 简单直观 ,易于实现。 2. 保证一致性 ,高层预测天然等于底层预测之和。 3. 保留底层细节,对单品层面的促销或事件响应更敏感。 1. 误差累积 :底层模型的预测误差在向上汇总时会传递并可能放大,导致高层预测不稳定、波动大。 2. 依赖底层模型质量:若底层数据稀疏或噪声大,整体预测质量会受限。
自上而下 (Top-Down) 仅在最高层级(如总店)训练一个聚合模型得到预测,然后按照历史比例(如销售额占比)或预测比例将总量拆分至下层各级(品类、单品)。 1. 高层预测稳健 :聚合数据通常噪声更小、模式更稳定,总预测往往更准确。 2. 天然满足资源约束:适合预算或库存总量固定的分配场景。 1. 丢失个体特征 :假设下层结构比例固定,无法捕捉单品特有的趋势或对促销事件的响应,导致下层预测可能不准确。 2. 结构僵化:历史比例可能无法反映未来的结构性变化。
最优组合 (Optimal Combination) 允许所有层级独立生成预测,然后通过一个优化模型(如基于最小二乘的线性回归)对所有层级的原始预测进行加权调整,得到一个既满足层级加总一致性,又使整体预测误差最小的修正预测集。 1. 平衡精度与一致性 :在尊重各层级独立预测信息的同时,强制其满足加总约束。 2. 提升高层预测精度 :通过组合信息,常能显著降低高层级的预测误差。 3. 灵活:可以纳入各层预测的不确定性(误差协方差)进行优化。 1. 计算复杂 :需要估计协方差矩阵并求解优化问题,实现和计算成本较高。 2. 依赖底层预测质量:若底层预测质量极差,优化效果可能有限。

策略选择与代码示例

选择策略需权衡业务重点、数据质量和计算资源。若业务强依赖单品计划且底层数据质量高,可选自下而上 ;若更关注总量控制且高层模式稳定,可选自上而下 ;若需同时保证多层级决策的一致性与整体精度,最优组合是最佳实践。

以下是一个使用 hierarchicalforecast 库实现最优组合预测的简化示例:

python 复制代码
import pandas as pd
import numpy as np
from hierarchicalforecast.core import HierarchicalForecast
from hierarchicalforecast.methods import BottomUp, TopDown, OptimalCombination

# 1. 准备数据:假设已有包含日期、三个单品预测值的DataFrame
# Y_hat_df 结构示例:
# ds | SKU_A | SKU_B | SKU_C
# 2024-01-01 | 10.5  | 15.2  | 5.8
# 2024-01-02 | 11.3  | 14.8  | 6.1
Y_hat_df = pd.read_csv('your_forecasts.csv')  # 替换为你的预测数据
Y_hat_df['ds'] = pd.to_datetime(Y_hat_df['ds'])

# 2. 定义层级聚合矩阵 S(描述SKU如何加总为品类和总量)
# 此处简化:假设三个SKU直接加总为总销售额(单品类场景)
# 实际应用中,库会根据层级文本描述自动生成S矩阵
S = np.array([
    [1, 0, 0],  # SKU_A
    [0, 1, 0],  # SKU_B
    [0, 0, 1],  # SKU_C
    [1, 1, 1]   # Total (所有SKU之和)
])
# 注:hierarchicalforecast 通常使用 `aggregate` 函数或指定层级关系文本自动构建S,此处为原理展示。

# 3. 应用最优组合方法进行协调预测
# 首先需要将原始预测和层级信息封装
# 这里假设已按库要求格式准备好数据reconciler = HierarchicalForecast(
    models=Y_hat_df.set_index('ds'),  # 基础预测 reconciliation_methods=[OptimalCombination()]
)
reconciled_forecasts = reconciler.reconcile()

# reconciled_forecasts 即为协调后的一致预测结果
print(reconciled_forecasts.head())

在实际业务中,最优组合策略已被证明能有效降低高层预测误差(例如,在案例中使品类预测的WMAPE从18%降至11%),同时保证各层级预测完全一致。


参考来源

相关推荐
古城小栈21 小时前
为啥说:训练用BF16,推理用FP16
人工智能·算法·机器学习
KaMeidebaby21 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
TMT星球21 小时前
从像素复刻到行动控制:具身世界模型的底层逻辑探索
人工智能·深度学习·机器学习
ccimao631621 小时前
散户做财报整理、研报阅读、复盘记录,各类AI工具适配环节梳理
大数据·人工智能
派叔21 小时前
老字号营销服务商技术解构:三类方案的架构逻辑与选型评估
大数据·人工智能·搜索引擎·架构·产品运营·流量运营
Byron__1 天前
AI学习_06_短期记忆与长期记忆
人工智能·python·学习
万悉科技1 天前
实战:如何通过GEO原生内容结构化,让LLM稳定推荐你的品牌网站
大数据·人工智能·重构
董厂长1 天前
从 Claude Code 放弃 RAG 说起:实际项目中如何合理创建知识库
人工智能·llm
泛普软件1 天前
企业项目管理软件如何选型?统筹多项目资源把控交付与盈利水平
大数据·安全
元岳数字人小元1 天前
如何依托数字人源码做好私有化部署选型
人工智能·开源·人机交互·交互