4. 库存场景的特殊性:库存数据的特点对误差指标的影响
库存预测与一般的时间序列预测(如销量、流量)存在本质区别。库存数据具有零值密集、强季节性和长尾分布三大核心特征。这些特征会显著扭曲 MAPE 和 sMAPE 的计算结果,导致模型选型错误。本章将逐一剖析这些特征对误差指标的影响机制。
4.1 零值库存:MAPE 的“除零崩溃”与 sMAPE 的“分母陷阱”
库存数据中零值出现的频率远高于一般销售数据。原因包括:缺货期(库存耗尽)、新品导入前(历史库存为零)、季节性清仓(季末库存归零)。零值对两种指标的影响截然不同:
| 场景 | 实际值 Aₜ | 预测值 Fₜ | MAPE 计算 | sMAPE 计算 | 问题分析 |
|---|---|---|---|---|---|
| 缺货期 | 0 | 10 | |0-10|/0 → 无穷大 | |0-10|/(0+10)/2 = 2.0 (200%) | MAPE 崩溃,sMAPE 有界但偏高 |
| 正确预测零值 | 0 | 0 | 0/0 → 未定义 | 0/(0+0)/2 → 0/0 → 未定义 | 两者均失效,需特殊处理 |
| 接近零值 | 1 | 5 | |1-5|/1 = 4.0 (400%) | |1-5|/(1+5)/2 = 1.33 (133%) | MAPE 被极小分母放大 |
⚠ 关键警告: 在库存数据中,如果零值占比超过 5%,直接使用 MAPE 会导致指标完全被少数零值样本支配,模型优化方向偏离实际需求。sMAPE 虽然避免了除零崩溃,但在实际值和预测值同时为零时同样未定义,且分母中的对称求和会低估高库存期的误差。
4.2 季节性库存:误差指标的“时间偏移惩罚”差异
库存数据通常呈现明显的季节性波动,例如:节前备货(库存提前上升)、节后消化(库存逐步下降)、季度末盘点(库存骤降)。季节性导致预测值与实际值之间可能出现时间相位偏移(phase shift),即预测趋势正确但时间点错位。
📌 核心差异: MAPE 对时间偏移的惩罚是非对称的——如果预测值在波峰处比实际值晚一个时间步,MAPE 会同时惩罚波峰处的低估和波谷处的高估,且惩罚幅度受分母大小影响。sMAPE 由于分母对称,对时间偏移的惩罚相对更均衡,但会低估波峰处的误差。
4.3 长尾分布:高值库存对误差指标的“支配效应”
库存数据往往呈现长尾分布:少数 SKU 或少数时间点库存量极高(如战略储备物资、大宗原材料),而大部分库存量处于较低水平。这种分布对误差指标的影响如下:
- MAPE 受长尾影响较小:因为 MAPE 的分母是实际值,高值库存的分母大,即使误差很大,百分比误差也可能较小。但这也意味着 MAPE 会忽略高值库存的偏差。
- sMAPE 受长尾影响更均衡:对称分母使得高值库存和低值库存的误差贡献相对平衡,但高值库存的误差仍会被分母稀释。
- 实际业务影响:高值库存通常占用更多资金,其预测偏差的成本远高于低值库存。如果只关注百分比误差,可能会忽视高值库存的优化。
4.4 综合影响矩阵:库存特征 vs 误差指标
下表总结了库存三大特征对 MAPE 和 sMAPE 的具体影响,帮助你在实际场景中快速判断指标适用性:
| 库存特征 | 对 MAPE 的影响 | 对 sMAPE 的影响 | 推荐处理策略 |
|---|---|---|---|
| 零值密集(缺货、新品) | 除零崩溃,指标失效 | 有界但双零未定义 | 剔除零值样本或使用 sMAPE + 零值掩码 |
| 强季节性(节前备货) | 非对称惩罚时间偏移 | 均衡惩罚但低估波峰 | 使用时间对齐后的 sMAPE 或动态时间规整 |
| 长尾分布(战略储备) | 低值支配,高值被忽略 | 分布均衡但误差稀释 | 结合 MAE 或加权指标使用 |
| 三者共存(常见实际场景) | 完全不可靠 | 部分可靠但需修正 | 使用 sMAPE + 零值处理 + 分层评估 |