📦 需求预测入门

📊 数据驱动库存补货决策 · 第3章

⚡ 需求预测是库存补货的“指南针”。没有准确的预测,补货就像蒙眼飞行。 本章带你从零掌握预测的核心逻辑、方法分类与时间序列基础。

🔍 1. 需求预测的重要性

“预测不是为了让未来变得确定,而是为了管理不确定性。”

—— 好的预测能显著降低库存成本、提升服务水平,是供应链的神经中枢。

📈 商业价值

  • ↓ 减少缺货损失 (Lost Sales)
  • ↓ 降低过剩库存与折旧
  • ↑ 提高客户满意度 (OTIF)
  • ↑ 优化仓储与运输资源

🎯 决策影响

  • 采购计划 & 供应商协同
  • 安全库存设置与动态调整
  • 促销与新品上市规划
  • 现金流与财务预算

⚖️ 2. 定性预测 vs 定量预测

根据数据可用性与预测场景,选择不同范式:

维度定性预测定量预测
依据专家判断、市场调研、直觉历史数据、统计模型、机器学习
适用场景新品上市、技术变革、缺乏历史数据稳定需求、中长期规划、数据充足
常用方法德尔菲法、销售人员合意、类比法时间序列、因果模型、神经网络
优点灵活、捕捉突发因素客观、可重复、可自动化
局限主观偏差、难以规模化对数据质量敏感、无法预测“黑天鹅”

💡 最佳实践:将定性洞察作为定量模型的“先验信息”或“修正因子”,例如用德尔菲法调整时间序列预测的异常峰值。

⏳ 3. 时间序列预测基础概念

时间序列是按时间顺序排列的观测值序列(如日销量、周库存)。核心目标是识别并外推其模式。

时间 (t) → 需求量 季节性波动 趋势分量

🧩 时间序列的四个核心成分

📐 趋势 (Trend)

长期上升/下降/平稳。如季节性产品年度增长。

示例:移动平均平滑趋势

🌀 季节性 (Seasonality)

固定周期波动(周、月、季度)。如羽绒服冬季高峰。

示例:季节指数 = 周期平均值 / 总平均

🔁 循环 (Cyclical)

非固定周期,通常与经济相关(>1年)。

示例:经济扩张/收缩影响

🎲 随机/噪声 (Irregular)

不可预测的偶然波动,需通过平滑过滤。

示例:突发事件、测量误差

📌 基础预测模型速览

模型描述适用场景
朴素法 (Naïve)用上一期值作为下一期预测随机游走、无趋势/季节
移动平均 (MA)取最近k期平均值平滑噪声,短期稳定
指数平滑 (SES)加权平均,越近权重越大无趋势/季节的平稳序列
Holt-Winters指数平滑 + 趋势 + 季节同时有趋势和季节性的数据
ARIMA自回归移动平均 (差分平稳)复杂模式,中短期预测

🧭 预测流程架构 (数据驱动)

历史需求数据 数据清洗 & 分解 模型选择 (MA / SES / 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 进行更完整的分解与预测。