4. 需求预测方法论(下)
在上一节中,我们探讨了基于时间序列的统计预测方法。然而,实际供应链中的需求往往受到多种外部因素的驱动,如促销活动、价格变动、宏观经济指标等。本节将深入介绍能够捕捉这些因果关系的因果预测模型,以及能够自动学习复杂非线性模式的机器学习预测方法,最后系统讲解如何通过误差评估指标来量化预测的准确性。
4.1 因果预测:回归分析
因果预测的核心假设是:需求(因变量 Y)与一个或多个解释变量(自变量 X)之间存在稳定的函数关系。最常用的工具是线性回归与多元回归。
核心公式(多元线性回归):
Y = β₀ + β₁X₁ + β₂X₂ + ... + βₙXₙ + ε
其中,Y 为预测需求,Xᵢ 为第 i 个影响因素(如价格、广告支出、竞争对手价格),βᵢ 为回归系数,ε 为随机误差项。
Y = β₀ + β₁X₁ + β₂X₂ + ... + βₙXₙ + ε
其中,Y 为预测需求,Xᵢ 为第 i 个影响因素(如价格、广告支出、竞争对手价格),βᵢ 为回归系数,ε 为随机误差项。
应用场景示例:预测某款饮料的周销量。自变量可以包括:上周平均气温、当周促销折扣力度、货架陈列位置(虚拟变量)、同期历史销量。
| 模型类型 | 适用场景 | 优点 | 局限性 |
|---|---|---|---|
| 简单线性回归 | 单一强相关因素(如:温度 vs 空调销量) | 解释性强,计算快 | 无法处理多因素交互 |
| 多元线性回归 | 多因素共同影响(如:价格+促销+季节) | 可量化各因素贡献度 | 需处理多重共线性、特征选择 |
| 岭回归 / Lasso | 高维数据,特征数量多 | 内置正则化,防止过拟合 | 系数解释性略有下降 |
供应链实战提示:在构建回归模型前,务必进行 VIF(方差膨胀因子)检验,剔除高度相关的自变量(如“广告曝光量”与“点击量”通常只保留一个),否则会导致系数估计失真。
4.2 机器学习预测:随机森林与 LSTM
当需求与影响因素之间的关系高度非线性、存在复杂交互效应时,传统回归模型往往力不从心。此时,集成学习与深度学习方法展现出显著优势。
4.2.1 随机森林(Random Forest)
随机森林是一种基于Bagging策略的集成学习方法,通过构建多棵决策树并对其预测结果取平均(回归)或投票(分类)来提升泛化能力。在需求预测中,它能够自动处理缺失值、捕捉特征间的非线性关系,并输出特征重要性排序。
随机森林在供应链中的典型应用:
- 新品需求预测:利用相似品特征(价格带、品类、上市季节)进行迁移学习。
- 促销效果评估:将促销类型、折扣深度、持续时间作为特征,预测促销期的销量 uplift。
- 特征重要性分析:识别出对需求影响最大的前5个因子,指导业务决策。
4.2.2 长短期记忆网络(LSTM)
LSTM 是一种特殊的循环神经网络(RNN),专门设计用于解决长序列依赖问题。它通过引入“门控机制”(遗忘门、输入门、输出门)和“细胞状态”,有效缓解了传统RNN的梯度消失/爆炸问题,非常适合处理具有季节性、趋势性和周期性模式的时间序列数据。
| 对比维度 | 随机森林 | LSTM |
|---|---|---|
| 数据形式 | 表格型特征(静态+时序特征均可) | 时间序列窗口(必须按时间顺序输入) |
| 长依赖捕捉 | 较弱(需手动构造滞后特征) | 强(自动学习长期依赖) |
| 训练速度 | 快,可并行化 | 慢,需序列化计算 |
| 可解释性 | 中等(特征重要性、部分依赖图) | 差(黑盒模型) |
| 数据量需求 | 中等(数千条即可) | 大(通常需要数万条以上) |
工程落地警告:LSTM 对数据尺度敏感,必须进行归一化(如 Min-Max 或 Z-score)。同时,超参数(时间步长、隐藏层单元数、学习率)的调优对最终效果影响巨大,建议使用 Keras Tuner 或 Optuna 进行自动化搜索。
4.3 预测误差评估指标
无论采用何种预测方法,都必须通过统一的量化指标来评估其性能。以下是供应链需求预测中最核心的三个误差指标。
| 指标 | 全称 | 计算公式 | 供应链含义 | 适用场景 |
|---|---|---|---|---|
| MAE | 平均误差 | MAE = (1/n) Σ|yᵢ - ŷᵢ| | 预测值与实际值的平均偏差,单位与原始数据一致 | 库存持有成本评估,偏差的量重要时 |
| RMSE | 均方根误差 | RMSE = √[(1/n) Σ(yᵢ - ŷᵢ)²] | 对大误差给予更高惩罚(平方项),反映预测的稳定性 | 安全库存设定,需要避免极端缺货时 |
| MAPE | 平均百分比误差 | MAPE = (100%/n) Σ|(yᵢ - ŷᵢ) / yᵢ| | 相对误差百分比,便于跨SKU比较 | 管理层汇报,多品类横向对比 |
指标选择黄金法则:
- 库存优化场景:优先关注 RMSE,因为它对高需求期间的预测失误(可能导致严重缺货)更为敏感。
- 预算与计划场景:优先关注 MAPE,便于向非技术管理层解释预测精度。
- 注意 MAPE 的陷阱:当实际需求 yᵢ 接近 0 时,MAPE 会趋向无穷大。对于间歇性需求(如备件),应改用 sMAPE 或 MASE。
4.3.1 误差评估的 Python 实现示例
import numpy as np
from sklearn.metrics import mean_absolute_error, mean_squared_error
def mean_absolute_percentage_error(y_true, y_pred):
"""计算 MAPE,避免除零错误"""
y_true, y_pred = np.array(y_true), np.array(y_pred)
# 过滤掉实际值为0的样本点
mask = y_true != 0
return np.mean(np.abs((y_true[mask] - y_pred[mask]) / y_true[mask])) * 100
# 示例数据
actual = np.array([100, 150, 130, 200, 180])
predicted = np.array([110, 140, 125, 210, 170])
mae = mean_absolute_error(actual, predicted)
rmse = np.sqrt(mean_squared_error(actual, predicted))
mape = mean_absolute_percentage_error(actual, predicted)
print(f"MAE: {mae:.2f} 单位")
print(f"RMSE: {rmse:.2f} 单位")
print(f"MAPE: {mape:.2f} %")
模型选择决策框架:在实际项目中,建议同时运行基准模型(如简单移动平均、ETS)、因果模型(回归)和机器学习模型(随机森林、LSTM),然后在验证集上对比 MAE、RMSE、MAPE 三个指标。通常,如果数据量充足且特征工程扎实,随机森林在大多数供应链预测任务中能取得比 LSTM 更稳定且可解释的结果;LSTM 则在具有强周期性且序列长度超过 52 周的数据上表现更优。