自下而上 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%),同时保证各层级预测完全一致。


参考来源

相关推荐
ai小陈27 分钟前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
测试者家园2 小时前
为什么意图驱动测试是自动化测试的下一站,而不是替代品
自动化测试·软件测试·人工智能·持续测试·ai赋能·智能化测试·软件测试变革
D202020203 小时前
TikTok Shop禁止AI语音直播落地后,跨境卖家如何通过达秘合规调整带货内容
人工智能
像风一样自由20203 小时前
20.Milvus常见问题检索不到维度错误和数据一致性
人工智能·大模型·milvus
现代野蛮人4 小时前
【深度学习实验】—— 基于 LSTM 与 Optuna 调参的丙型肝炎预测
人工智能·深度学习·lstm
支支დ4 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
TDengine (老段)4 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
ZGIAI4 小时前
ZGI 让那些"等你去处理"的事,真正跑起来
人工智能·架构
ZGIAI4 小时前
ZGI:别再做Agent Demo了,先问问它在业务里能不能撑过下周三
人工智能·架构
香芋芋圆4 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展