📦 需求预测入门
📊 数据驱动库存补货决策 · 第3章
⚡ 需求预测是库存补货的“指南针”。没有准确的预测,补货就像蒙眼飞行。 本章带你从零掌握预测的核心逻辑、方法分类与时间序列基础。
🔍 1. 需求预测的重要性
“预测不是为了让未来变得确定,而是为了管理不确定性。”
—— 好的预测能显著降低库存成本、提升服务水平,是供应链的神经中枢。
📈 商业价值
- ↓ 减少缺货损失 (Lost Sales)
- ↓ 降低过剩库存与折旧
- ↑ 提高客户满意度 (OTIF)
- ↑ 优化仓储与运输资源
🎯 决策影响
- 采购计划 & 供应商协同
- 安全库存设置与动态调整
- 促销与新品上市规划
- 现金流与财务预算
⚖️ 2. 定性预测 vs 定量预测
根据数据可用性与预测场景,选择不同范式:
| 维度 | 定性预测 | 定量预测 |
|---|---|---|
| 依据 | 专家判断、市场调研、直觉 | 历史数据、统计模型、机器学习 |
| 适用场景 | 新品上市、技术变革、缺乏历史数据 | 稳定需求、中长期规划、数据充足 |
| 常用方法 | 德尔菲法、销售人员合意、类比法 | 时间序列、因果模型、神经网络 |
| 优点 | 灵活、捕捉突发因素 | 客观、可重复、可自动化 |
| 局限 | 主观偏差、难以规模化 | 对数据质量敏感、无法预测“黑天鹅” |
💡 最佳实践:将定性洞察作为定量模型的“先验信息”或“修正因子”,例如用德尔菲法调整时间序列预测的异常峰值。
⏳ 3. 时间序列预测基础概念
时间序列是按时间顺序排列的观测值序列(如日销量、周库存)。核心目标是识别并外推其模式。
🧩 时间序列的四个核心成分
📐 趋势 (Trend)
长期上升/下降/平稳。如季节性产品年度增长。
示例:移动平均平滑趋势
🌀 季节性 (Seasonality)
固定周期波动(周、月、季度)。如羽绒服冬季高峰。
示例:季节指数 = 周期平均值 / 总平均
🔁 循环 (Cyclical)
非固定周期,通常与经济相关(>1年)。
示例:经济扩张/收缩影响
🎲 随机/噪声 (Irregular)
不可预测的偶然波动,需通过平滑过滤。
示例:突发事件、测量误差
📌 基础预测模型速览
| 模型 | 描述 | 适用场景 |
|---|---|---|
| 朴素法 (Naïve) | 用上一期值作为下一期预测 | 随机游走、无趋势/季节 |
| 移动平均 (MA) | 取最近k期平均值 | 平滑噪声,短期稳定 |
| 指数平滑 (SES) | 加权平均,越近权重越大 | 无趋势/季节的平稳序列 |
| Holt-Winters | 指数平滑 + 趋势 + 季节 | 同时有趋势和季节性的数据 |
| ARIMA | 自回归移动平均 (差分平稳) | 复杂模式,中短期预测 |
🧭 预测流程架构 (数据驱动)
🐍 快速上手:Python 简单移动平均
import pandas as pd
import numpy as np
# 示例周销量 (时间序列)
sales = [120, 135, 128, 150, 145, 160, 155, 170, 168, 180]
series = pd.Series(sales)
# 3期移动平均
window = 3
ma_forecast = series.rolling(window=window).mean()
print("移动平均预测 (最后三期):", ma_forecast.iloc[-1])
# 输出: 172.67
💡 实际中建议使用 statsmodels 或 Prophet 进行更完整的分解与预测。