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 虽然避免了除零崩溃,但在实际值和预测值同时为零时同样未定义,且分母中的对称求和会低估高库存期的误差。
零值库存场景:MAPE 与 sMAPE 行为对比 MAPE 行为 实际值 Aₜ = 0 预测值 Fₜ ≠ 0 MAPE = |0 - Fₜ| / 0 → 除零错误 / 无穷大 • 单个零值样本即可使整体 MAPE 失效 • 模型会过度惩罚高估零值的预测 • 无法用于缺货期评估 sMAPE 行为 实际值 Aₜ = 0 预测值 Fₜ ≠ 0 sMAPE = |0 - Fₜ| / (0 + Fₜ)/2 → 有界值 200%(可计算) • 分母始终非零(除非 Fₜ=0) • 但对称分母会稀释高库存误差 • 双零场景仍存在未定义风险

4.2 季节性库存:误差指标的“时间偏移惩罚”差异

库存数据通常呈现明显的季节性波动,例如:节前备货(库存提前上升)、节后消化(库存逐步下降)、季度末盘点(库存骤降)。季节性导致预测值与实际值之间可能出现时间相位偏移(phase shift),即预测趋势正确但时间点错位。

📌 核心差异: MAPE 对时间偏移的惩罚是非对称的——如果预测值在波峰处比实际值晚一个时间步,MAPE 会同时惩罚波峰处的低估和波谷处的高估,且惩罚幅度受分母大小影响。sMAPE 由于分母对称,对时间偏移的惩罚相对更均衡,但会低估波峰处的误差。

4.3 长尾分布:高值库存对误差指标的“支配效应”

库存数据往往呈现长尾分布:少数 SKU 或少数时间点库存量极高(如战略储备物资、大宗原材料),而大部分库存量处于较低水平。这种分布对误差指标的影响如下:

  • MAPE 受长尾影响较小:因为 MAPE 的分母是实际值,高值库存的分母大,即使误差很大,百分比误差也可能较小。但这也意味着 MAPE 会忽略高值库存的偏差。
  • sMAPE 受长尾影响更均衡:对称分母使得高值库存和低值库存的误差贡献相对平衡,但高值库存的误差仍会被分母稀释。
  • 实际业务影响:高值库存通常占用更多资金,其预测偏差的成本远高于低值库存。如果只关注百分比误差,可能会忽视高值库存的优化。
长尾库存分布:MAPE 与 sMAPE 的误差贡献对比 库存值分布(长尾) 高值长尾 低值主体 误差贡献对比 MAPE 误差贡献 低值库存:|误差|/小分母 → 高百分比贡献 高值库存:|误差|/大分母 → 低百分比贡献 → 低值库存支配指标,高值库存被忽略 sMAPE 误差贡献 低值库存:|误差|/(小+小)/2 → 中等贡献 高值库存:|误差|/(大+大)/2 → 中等贡献 → 分布更均衡,但高值误差被稀释 建议:长尾场景下结合误差(MAE)使用

4.4 综合影响矩阵:库存特征 vs 误差指标

下表总结了库存三大特征对 MAPE 和 sMAPE 的具体影响,帮助你在实际场景中快速判断指标适用性:

库存特征 对 MAPE 的影响 对 sMAPE 的影响 推荐处理策略
零值密集(缺货、新品) 除零崩溃,指标失效 有界但双零未定义 剔除零值样本或使用 sMAPE + 零值掩码
强季节性(节前备货) 非对称惩罚时间偏移 均衡惩罚但低估波峰 使用时间对齐后的 sMAPE 或动态时间规整
长尾分布(战略储备) 低值支配,高值被忽略 分布均衡但误差稀释 结合 MAE 或加权指标使用
三者共存(常见实际场景) 完全不可靠 部分可靠但需修正 使用 sMAPE + 零值处理 + 分层评估