售后服务
我们是专业的

Day 8-5:数据驱动的需求预测 — 用算法看见未来

一个预测模型创造的奇迹

2023年夏天,某造车新势力售后运营总监陈浩面临一个难题:

6月:雨刷片严重缺货,客户投诉爆棚

7月:雨刷片大量积压,占用库存资金200万

老板怒了:"你们到底会不会管库存?!"

陈浩痛定思痛,决定引入需求预测系统

3个月后,系统上线。

效果惊人

  • 预测准确率从60%提升至89%
  • 库存周转率从2.8次提升至5.2次
  • 缺货率从15%降至3%
  • 库存资金从5000万降至3200万

老板拍着陈浩的肩膀:"小陈,你是怎么做到的?"

陈浩笑了:"我让数据替我们做决策。"


为什么需要需求预测?

传统方法的三大困境

困境1:拍脑袋决策,误差巨大

典型场景

采购经理:王店长,下个月空调滤芯要备多少?

王店长:嗯...上个月卖了80个,就备100个吧。

采购经理:好的。

结果

  • 下个月进入夏季,空调使用高峰,实际需求150个
  • 缺货50个,客户投诉
  • 王店长:"我哪知道会突然这么热啊!"

问题:凭经验、凭感觉,无法应对市场波动。

困境2:历史平均法,忽视趋势

某门店的历史数据

过去6个月刹车片销量:45、48、52、58、65、72

简单平均法:(45+48+52+58+65+72) ÷ 6 = 57个

但仔细观察,销量明显呈上升趋势

  • 月均增长约10%
  • 如果按趋势预测,下月应该是72 × 1.1 = 79个
  • 用57个备货,肯定缺货

问题:历史平均法看不到趋势。

困境3:无法应对特殊事件

2023年8月,某品牌因质量问题召回50万辆车,需要更换某配件。

某门店:

  • 正常月销量:50个
  • 召回期间实际需求:500个(10倍)
  • 门店库存:50个
  • 缺货率:90%

问题:传统方法无法预见突发事件。


需求预测的底层逻辑

需求的五大驱动因素

1. 季节性因素(Seasonality)

案例:空调滤芯的季节波动

某品牌2023年月销量数据:

月份 销量 季节 波动原因
1月 100 冬季 暖风使用,正常需求
4月 180 春季 花粉季,空调使用增加
7月 250 夏季 高温,空调使用峰值
10月 120 秋季 天气凉爽,需求下降

季节性系数

  • 春季:1.2倍
  • 夏季:1.8倍
  • 秋季:0.9倍
  • 冬季:1.0倍

2. 趋势性因素(Trend)

案例:新能源车保有量增长带动配件需求

某地区新能源车保有量与配件需求:

  • 2021年:保有量5万辆,月均配件需求1000个
  • 2022年:保有量8万辆(增长60%),月均配件需求1600个
  • 2023年:保有量12万辆(增长50%),月均配件需求2400个

年增长率:约50%

3. 周期性因素(Cycle)

案例:保养周期带来的需求波动

某车型首保在5000公里,二保在10000公里。

上市第1个月售出1000辆:

  • 第3个月(平均行驶5000公里):首保高峰,机油滤芯需求1000个
  • 第6个月(平均行驶10000公里):二保高峰,机油滤芯需求1000个
  • 以此类推,每3个月一个小高峰

4. 营销活动因素

案例:会员日促销活动

某品牌每月18日"会员日",保养套餐8折。

  • 平日日均保养单量:30单
  • 会员日当天:120单(4倍
  • 会员日前3天:15单(客户延迟保养等优惠)
  • 会员日后3天:15单(提前消耗了需求)

需要提前预测活动影响,避免缺货或积压。

5. 外部事件因素

案例:极端天气、政策变化、召回事件

  • 暴雨天气:雨刷片需求激增
  • 新交规实施:某安全配件需求上升
  • 车辆召回:特定配件需求暴增
  • 油价上涨:保养频次下降

四种需求预测方法

方法1:移动平均法(Moving Average,简称MA)

原理:用最近N个月的平均值作为预测。

公式:预测值 = (最近N月销量之和) ÷ N

案例:某配件最近6个月销量

月份:1月-50、2月-55、3月-48、4月-62、5月-58、6月-65

简单移动平均(N=6)

预测7月 = (50+55+48+62+58+65) ÷ 6 = 56.3个

加权移动平均(近期权重更大)

预测7月 = (50×1 + 55×1 + 48×2 + 62×2 + 58×3 + 65×3) ÷ 12 = 59.8个

优点

  • 简单易懂
  • 计算快速
  • 适合稳定需求

缺点

  • 反应滞后
  • 无法捕捉趋势
  • 不适合波动大的场景

方法2:指数平滑法(Exponential Smoothing,简称ES)

原理:给历史数据加权,越近的数据权重越大。

公式:预测值 = α × 实际值 + (1-α) × 上期预测值

其中,α是平滑系数,通常取0.1-0.5

案例:某配件预测

假设α=0.3:

  • 1月实际:50,预测:50
  • 2月实际:55,预测:0.3×50 + 0.7×50 = 50
  • 3月预测:0.3×55 + 0.7×50 = 51.5
  • 4月实际:60,预测:0.3×55 + 0.7×51.5 = 52.5
  • 5月预测:0.3×60 + 0.7×52.5 = 54.75

优点

  • 对最新数据反应灵敏
  • 计算简单
  • 适合有缓慢趋势的需求

缺点

  • 无法处理季节性
  • 对突变反应慢

方法3:线性回归预测(Linear Regression)

原理:找出销量与时间、其他因素的线性关系。

公式:Y = a + b×X

  • Y是销量
  • X是时间(月份)
  • a是截距,b是斜率

案例:某配件有明显增长趋势

最近6个月销量:50、55、60、65、70、75

用Excel或统计软件计算回归方程:

Y = 45 + 5×X

预测第7个月:Y = 45 + 5×7 = 80个

多元回归(考虑多个因素)

Y = a + b1×保有量 + b2×季节系数 + b3×油价 + ...

优点

  • 能捕捉趋势
  • 可引入多个影响因素
  • 有统计学基础

缺点

  • 假设线性关系(实际可能非线性)
  • 需要较多历史数据
  • 对异常值敏感

方法4:机器学习预测(Machine Learning,简称ML)

原理:让算法自动学习数据规律,发现复杂的非线性关系。

常用算法

  1. 时间序列算法
    • ARIMA(自回归移动平均模型)
    • Prophet(Facebook开源算法,擅长处理季节性)
    • LSTM(长短期记忆网络,深度学习)
  2. 回归算法
    • XGBoost(梯度提升树)
    • Random Forest(随机森林)
    • Neural Network(神经网络)

案例:某新势力品牌的Prophet预测实践

输入特征

  • 历史销量(24个月)
  • 季节(月份)
  • 节假日标记
  • 车辆保有量
  • 营销活动日期
  • 天气数据
  • 油价数据

训练过程

  1. 用前18个月数据训练模型
  2. 用后6个月数据验证准确性
  3. 不断调优参数

预测效果对比

方法 预测准确率 开发成本 维护成本
拍脑袋 60% 0 0
移动平均 72%
指数平滑 75%
线性回归 80%
机器学习 89%

投资回报分析

某品牌8000个SKU,机器学习预测系统:

  • 开发投入:80万(含数据清洗、模型开发、系统集成)
  • 年维护成本:20万
  • 库存优化收益:从5000万降至3500万,节省1500万
  • 缺货减少收益:减少客户流失,预计年增收500万

总收益:2000万/年

ROI = 2000 ÷ 80 = 25倍


实战:手把手搭建预测系统

第一步:数据准备

必需数据

  1. 历史销量数据:至少12个月,最好24个月
  2. 时间维度:年、月、周、日
  3. 产品维度:配件编码、名称、分类

可选数据(提升准确性)

  1. 车辆数据:保有量、车龄分布、行驶里程
  2. 市场数据:天气、油价、政策、节假日
  3. 运营数据:营销活动、价格变动、竞对动态

数据清洗

  • 去除异常值(如系统错误导致的0销量)
  • 填补缺失值
  • 统一数据格式

第二步:选择预测方法

决策树

是否有IT开发能力?
├─ 否 → 用Excel,移动平均法或指数平滑法
└─ 是 → 有多少历史数据?
    ├─ <12个月 → 用移动平均或指数平滑
    ├─ 12-24个月 → 用线性回归或简单时间序列
    └─ >24个月 → 用机器学习(Prophet或XGBoost)

快速启动方案(Excel版)

适合小型团队,无IT支持的情况。

Excel函数实现移动平均

=AVERAGE(B2:B7)  // 6个月移动平均

Excel实现指数平滑

=0.3*B7 + 0.7*C6  // α=0.3的指数平滑

第三步:模型训练与验证

训练集与测试集划分

假设有24个月数据:

  • 前18个月:训练集(用于建立模型)
  • 后6个月:测试集(用于验证准确性)

验证指标

  1. MAPE(平均绝对百分比误差,Mean Absolute Percentage Error)

公式:MAPE = (∑|实际值-预测值|/实际值) ÷ n × 100%

例如:

  • 实际:100,预测:90,误差:10%
  • 实际:80,预测:85,误差:6.25%
  • MAPE = (10% + 6.25%) ÷ 2 = 8.125%

判断标准

  • MAPE < 10%:优秀
  • MAPE 10-20%:良好
  • MAPE 20-30%:一般
  • MAPE > 30%:需要优化
  1. 准确率(Accuracy)

在允许误差范围内的预测比例。

例如,允许±15%误差:

  • 100个预测
  • 85个在±15%误差内
  • 准确率 = 85%

第四步:持续优化

每月复盘机制

  1. 对比预测与实际
    • 哪些配件预测准确?
    • 哪些配件偏差大?
  2. 分析偏差原因
    • 是否有未考虑的因素?
    • 是否有数据质量问题?
    • 是否有突发事件?
  3. 调整模型参数
    • 调整平滑系数
    • 增加新的特征
    • 更新训练数据
  4. 记录经验教训
    • 建立异常事件库
    • 积累行业知识

五个实战优化技巧

技巧1:分层预测,提高准确性

问题:不同类型的配件,需求模式完全不同。

解决方案:按ABC分类,分别建模

分类 特点 推荐方法
A类高频 销量大、稳定 机器学习
B类中频 有一定波动 指数平滑+季节调整
C类低频 销量小、不规律 历史平均+安全库存

案例

某门店对1000个SKU统一用移动平均法,MAPE=25%。

改为分层预测后:

  • A类200个SKU用机器学习,MAPE=12%
  • B类300个SKU用指数平滑,MAPE=18%
  • C类500个SKU用历史平均,MAPE=30%(但占销售额仅5%,影响小)

整体加权MAPE从25%降至15%

技巧2:引入外部数据,捕捉关联

常见外部数据源

  1. 天气数据
    • 雨天:雨刷片需求增加
    • 高温:空调滤芯、冷却液需求增加
    • 雾霾:空气滤芯需求增加
  2. 油价数据
    • 油价上涨:保养频次可能下降
    • 但电动车不受影响
  3. 节假日数据
    • 长假前:保养高峰
    • 长假后:维修高峰(自驾游后)
  4. 交通数据
    • 限号政策:影响行驶里程
    • 道路施工:可能增加轮胎、底盘件需求

案例:某品牌引入天气数据

雨刷片预测准确率从72%提升至86%。

关键发现

  • 连续3天降雨后,雨刷片需求激增
  • 提前2-3天增加库存,避免缺货

技巧3:人机结合,保留人工干预

问题:算法无法预见所有突发事件。

解决方案:算法预测 + 人工调整

典型场景

  1. 车辆召回
    • 系统预测:某配件下月需求100个
    • 人工干预:厂家宣布召回,调整为500个
  2. 大型营销活动
    • 系统预测:保养套餐下月销量200单
    • 人工干预:会员日促销,调整为600单
  3. 新品上市
    • 系统预测:无历史数据,无法预测
    • 人工干预:参考同类产品,设定初始值

最佳实践

  • 系统给出预测值
  • 标注置信度(如:预测100个,置信区间80-120)
  • 人工根据业务知识调整
  • 记录调整原因,反馈给算法

技巧4:滚动预测,持续更新

问题:环境在变,模型也要变。

解决方案:每月更新预测

传统方式

  • 年初预测全年需求
  • 一年不调整
  • 到年底发现偏差巨大

滚动预测方式

  • 每月初预测未来3个月
  • 每月用最新数据更新模型
  • 始终保持预测的时效性

案例对比

预测方式 1月预测准确率 6月预测准确率 12月预测准确率
年初固定预测 85% 70% 55%
每月滚动预测 85% 83% 82%

技巧5:建立预测准确率奖惩机制

问题:门店不重视预测,随意报需求。

解决方案:与绩效挂钩

某品牌的考核机制

预测准确率 考核等级 奖惩
>90% 优秀 奖励2000元
80-90% 良好 奖励1000元
70-80% 合格 无奖惩
60-70% 待改进 预警
<60% 不合格 扣分

效果

  • 门店开始认真做预测
  • 整体预测准确率从65%提升至82%
  • 库存周转率提升40%

三个常见误区

误区1:追求100%准确

错误认知:预测必须完全准确。

现实:需求本身就有随机性,100%准确不可能。

正确做法

  • 设定合理目标(如80-90%)
  • 用安全库存对冲预测误差
  • 关注成本效益,而非极致准确

误区2:盲目追求复杂算法

错误认知:一定要用最先进的AI算法。

现实

  • 小数据量用简单方法更好
  • 复杂算法需要大量数据和算力
  • 维护成本高

正确做法

  • 数据少(<12个月)→ 移动平均
  • 数据中(12-24个月)→ 指数平滑或回归
  • 数据多(>24个月)+ 有IT支持 → 机器学习

误区3:预测后就不管了

错误认知:预测完成,任务结束。

现实:预测只是开始,关键在执行和复盘。

正确做法

  • 预测 → 采购 → 监控 → 对比 → 优化
  • 形成完整闭环
  • 持续改进

实战工具:Python实现简易预测

对于有一定技术能力的团队,可以用Python快速实现预测。

工具1:Prophet(Facebook开源,最简单)

from fbprophet import Prophet
import pandas as pd

# 准备数据
df = pd.DataFrame({
    'ds': ['2023-01', '2023-02', ...],  # 日期
    'y': [100, 105, 110, ...]  # 销量
})

# 训练模型
model = Prophet()
[model.fit](http://model.fit)(df)

# 预测未来3个月
future = model.make_future_dataframe(periods=3, freq='M')
forecast = model.predict(future)

print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']])

10行代码,搞定预测!

工具2:统计模块(适合中小规模)

import numpy as np
from sklearn.metrics import mean_absolute_percentage_error

# 移动平均
def moving_average(data, window=6):
    return np.convolve(data, np.ones(window)/window, mode='valid')

# 指数平滑
def exponential_smoothing(data, alpha=0.3):
    result = [data[0]]
    for i in range(1, len(data)):
        result.append(alpha * data[i] + (1-alpha) * result[i-1])
    return result

# 历史数据
sales = [50, 55, 48, 62, 58, 65, 70, 68, 75]

# 预测
ma_pred = moving_average(sales, window=6)
es_pred = exponential_smoothing(sales)

print(f"移动平均预测: {ma_pred[-1]}")
print(f"指数平滑预测: {es_pred[-1]}")

总结:让数据说话

需求预测的本质,是用历史规律推测未来趋势

关键原则:

  1. 从简单开始:先用Excel移动平均,再逐步升级
  2. 数据为王:预测准确性取决于数据质量
  3. 持续优化:每月复盘,不断改进
  4. 人机结合:算法+业务知识,两者缺一不可
  5. 关注ROI:预测是手段,降本增效是目的

记住:没有完美的预测,只有持续改进的过程。关键是从拍脑袋变成用数据,从经验判断变成科学决策


? 本周实战

  1. ✅ 选择5个A类配件
  2. ✅ 收集最近12个月销量数据
  3. ✅ 用Excel计算移动平均预测下月需求
  4. ✅ 对比预测值与实际采购量
  5. ✅ 分析差异原因,提出改进建议
未经允许不得转载:似水流年 » Day 8-5:数据驱动的需求预测 — 用算法看见未来