4. 移动平均法与指数平滑法:简单移动平均、加权移动平均、一次/二次/三次指数平滑

在需求预测的工程落地中,移动平均法与指数平滑法是最基础、最常用的时间序列平滑技术。它们通过消除历史数据中的随机波动,揭示潜在的需求趋势与季节性模式。本节将系统讲解这两种方法的数学原理、参数选择及在供应链计划系统中的实现要点。

4.1 移动平均法

移动平均法通过计算最近 N 期数据的平均值来预测下一期需求。根据是否对历史数据赋予不同权重,分为简单移动平均与加权移动平均。

4.1.1 简单移动平均 (SMA)

简单移动平均对窗口内的所有历史数据赋予相同权重。其计算公式为:

SMA_t = (D_{t-1} + D_{t-2} + ... + D_{t-N}) / N

其中,D_t 为第 t 期的实际需求,N 为移动窗口长度。

参数 含义 工程影响
N(窗口长度) 参与平均的历史期数 N 越大,平滑效果越强,但对趋势变化反应越迟钝
滞后性 预测值总是落后于实际趋势 在趋势上升期预测偏低,下降期预测偏高
数据存储 需保留最近 N 期历史数据 在数据库或内存中维护滑动窗口
工程经验:在供应链计划系统中,SMA 适用于需求平稳、无明显趋势或季节性的产品。窗口长度 N 通常取 3-12 期,可通过交叉验证选择使预测误差最小的 N 值。

4.1.2 加权移动平均 (WMA)

加权移动平均对窗口内的历史数据赋予不同权重,通常近期数据权重更高。其计算公式为:

WMA_t = w_1 * D_{t-1} + w_2 * D_{t-2} + ... + w_N * D_{t-N}

其中,w_i 为第 i 期数据的权重,且 w_1 + w_2 + ... + w_N = 1。

权重方案 特点 适用场景
线性递增权重 权重从远到近线性增加 需求趋势缓慢变化
指数递减权重 权重按指数衰减 近期数据主导预测
自定义权重 根据业务经验手动设定 促销、节假日等特殊时期
注意:加权移动平均虽然能更灵敏地响应近期变化,但权重设定缺乏客观标准,容易引入人为偏差。在工程实现中,建议通过优化算法自动学习最优权重。

4.2 指数平滑法

指数平滑法是一种特殊的加权移动平均,其权重随时间呈指数衰减。根据处理的数据特征,分为一次、二次和三次指数平滑。

4.2.1 一次指数平滑 (SES)

一次指数平滑适用于无趋势、无季节性的平稳序列。其递推公式为:

S_t = α * D_t + (1 - α) * S_{t-1}

其中,S_t 为第 t 期的平滑值,α 为平滑系数(0 < α < 1)。预测值 F_{t+1} = S_t。

α 取值 平滑效果 对变化的响应
接近 0 高度平滑,几乎忽略近期波动 反应迟钝
0.1 - 0.3 中等平滑 常用范围
接近 1 几乎不平滑,紧跟最新数据 反应灵敏,易受噪声影响
工程实现要点:一次指数平滑只需存储上一个平滑值 S_{t-1},内存占用极低,非常适合流式数据处理场景。初始值 S_0 通常取第一期实际需求或前几期均值。

4.2.2 二次指数平滑 (Holt's Method)

二次指数平滑在 SES 基础上增加了趋势分量,适用于有趋势但无季节性的序列。包含两个平滑方程:

水平方程: L_t = α * D_t + (1 - α) * (L_{t-1} + T_{t-1})
趋势方程: T_t = β * (L_t - L_{t-1}) + (1 - β) * T_{t-1}
预测方程: F_{t+m} = L_t + m * T_t

其中,L_t 为水平分量,T_t 为趋势分量,β 为趋势平滑系数,m 为预测步长。

参数调优建议:α 和 β 的取值范围均为 0-1。在供应链系统中,建议使用网格搜索或梯度下降法自动优化这两个参数,最小化历史预测误差(如 MAPE 或 RMSE)。

4.2.3 三次指数平滑 (Holt-Winters Method)

三次指数平滑在二次指数平滑基础上增加季节性分量,适用于既有趋势又有季节性的序列。包含三个平滑方程:

水平方程: L_t = α * (D_t / S_{t-p}) + (1 - α) * (L_{t-1} + T_{t-1})
趋势方程: T_t = β * (L_t - L_{t-1}) + (1 - β) * T_{t-1}
季节方程: S_t = γ * (D_t / L_t) + (1 - γ) * S_{t-p}
预测方程: F_{t+m} = (L_t + m * T_t) * S_{t+m-p}

其中,S_t 为季节性分量,p 为季节周期长度(如 12 个月),γ 为季节平滑系数。

模型 适用数据特征 参数数量 工程复杂度
一次指数平滑 平稳序列 1 (α) 低
二次指数平滑 有趋势、无季节 2 (α, β) 中
三次指数平滑 有趋势、有季节 3 (α, β, γ) 高
工程避坑:三次指数平滑的季节周期 p 必须与数据实际周期一致。例如,月度数据通常 p=12,周数据 p=52。若周期设定错误,预测结果将严重失真。此外,当数据量不足两个完整周期时,不建议使用三次指数平滑。

4.3 方法对比与选型指南

在实际供应链计划系统中,选择哪种方法取决于数据特征、计算资源与业务需求。下表总结了各方法的适用场景与工程考量:

方法 数据要求 存储需求 计算复杂度 预测步长
简单移动平均 至少 N 期历史 N 个数据点 O(1) 1 步
加权移动平均 至少 N 期历史 N 个数据点 + 权重 O(N) 1 步
一次指数平滑 至少 1 期历史 1 个平滑值 O(1) 1 步
二次指数平滑 至少 2 期历史 2 个状态值 O(1) 多步
三次指数平滑 至少 2 个完整季节周期 p + 2 个状态值 O(1) 多步

4.4 工程落地流程

在供应链计划系统中,将移动平均法与指数平滑法落地为可运行的预测模块,通常遵循以下步骤:

  1. 数据准备:清洗历史需求数据,处理缺失值与异常值,确定时间粒度(日/周/月)。
  2. 方法选择:通过时间序列分解或 ACF/PACF 分析,判断数据是否包含趋势和季节性。
  3. 参数优化:使用历史数据训练模型,通过网格搜索或优化算法找到最优参数(N, α, β, γ)。
  4. 模型评估:在验证集上计算预测误差指标(MAE, MAPE, RMSE),评估模型稳定性。
  5. 部署上线:将训练好的模型封装为 API 或批处理任务,集成到计划系统中。
  6. 监控与回滚:实时监控预测误差,当误差超过阈值时自动触发模型重训练或回滚至备用模型。
推荐实践:在工程实现中,建议将移动平均法与指数平滑法作为基线模型(Baseline),与更复杂的机器学习模型(如 Prophet、LSTM)进行对比。如果简单方法已经达到业务要求的精度(如 MAPE < 10%),则优先使用简单方法,以降低维护成本和计算开销。
移动平均法与指数平滑法选型决策流程 历史需求数据 是否有季节性? 是 否 三次指数平滑 是否有趋势? 是 否 二次指数平滑 一次指数平滑 或移动平均 生成预测结果 选型原则:数据量充足时优先使用指数平滑法;数据量不足或需要快速部署时使用移动平均法

上图展示了在供应链计划系统中,根据数据特征选择合适预测方法的决策流程。实际工程中,建议同时运行多个候选模型,通过模型集成或动态切换机制,提升预测的鲁棒性。