4.2.12
WAPE
まとめ
- WAPE は実測総量に対する絶対誤差の割合を測る指標です。
- 需要予測の実測総量を基準に WAPE を算出し、レポートでの表示例を確認します。
- 総量が小さい場合の不安定さや MAE との併用ポイントを整理します。
1. 定義 #
$$ \mathrm{WAPE} = \frac{\sum_{i=1}^n |y_i - \hat{y}_i|}{\sum_{i=1}^n |y_i|} \times 100\% $$- 実測値の総量でスケーリングするため、アイテム間の規模が大きく違っても比較しやすい。
- MAPE と異なり、ゼロに近い実測値でも暴走しにくい。
2. Python で計算 #
| |
実測の総量が 0 に近い場合はエラーになるため、そのようなデータは除外するか、平均需要で割るなど工夫します。
計算例 #
具体的な数値で WAPE を手計算してみましょう。
| SKU | 実測 \(y\) | 予測 \(\hat{y}\) | 絶対誤差 |
|---|---|---|---|
| A | 100 | 110 | 10 |
| B | 50 | 45 | 5 |
| C | 200 | 180 | 20 |
| 合計 | 350 | — | 35 |
MAPE の場合は \(\frac{1}{3}(10% + 10% + 10%) = 10%\) で同じ値になりますが、SKU ごとの需要量に偏りがあると結果が変わります。たとえば SKU B の需要が 5 に減ると MAPE は急騰しますが、WAPE は全体量で割るため安定します。
3. WAPE と MAPE の比較 #
| 指標 | 特徴 | 注意点 |
|---|---|---|
| MAPE | 各サンプルの百分率誤差を平均 | 実測値が 0 に近いと発散 |
| WAPE | 絶対誤差の総量 ÷ 実測総量 | アイテムごとの重みが実測値に依存 |
| sMAPE | 実測と予測の平均で割る | 0 を扱えるが解釈が難しい |
| 需要予測では SKU ごとの需要量が大きく異なるため、WAPE で全体的な外れ方を評価するとわかりやすくなります。 |
4. 実務での使い方 #
在庫計画:全 SKU の WAPE を KPI として管理し、10% 以下を保つなどの目標を設定。
モデル比較:MAE だと単位に依存するが、WAPE なら百分率で比較できる。
アイテム別詳細:全体 WAPE が良くても一部 SKU が酷い可能性があるため、SKU スライスごとの WAPE も併せて確認。
5. 注意点 #
- 需要がゼロの期間が多い場合は、需要が発生した期間だけをベースに計算するなど前処理が必要。
- 期間をまたいで比較する場合は、同じ期間・同じアイテムセットで計算する。
- 単一アイテムの評価には MAE や MAPE も併用し、個別の改善余地を把握する。
まとめ #
WAPE は絶対誤差の総量を実測量で割り、需要予測の精度をわかりやすい百分率で示せる。
MAPE の弱点であるゼロ需要の発散問題を緩和し、実務 KPI として使いやすい。
SKU 単位やセグメント単位での WAPE 分析と併用し、精度改善の優先順位を決めよう。
- MAPE・sMAPE — 各サンプル均等重みの割合誤差
- RMSPE — 二乗ベースの割合誤差
- MASE — スケール不変な別アプローチ
ノイズと各指標の変化 #
ノイズ量を変えた場合の各指標の変化を確認できます。