RMSPE(二乗平均平方百分率誤差)

Eval

RMSPE(二乗平均平方百分率誤差)

作成日: 最終更新: 読了時間: 1 分
まとめ
  • RMSPE は割合誤差の二乗平均平方根を測る指標です。
  • 販売予測で RMSPE を算出し、平均的な相対誤差の大きさを確認します。
  • ゼロ除算を避ける ε の設定や低需要品目での扱いを整理します。

1. 定義 #

$$ \mathrm{RMSPE} = \sqrt{\frac{1}{n} \sum_{i=1}^n \left( \frac{y_i - \hat{y}_i}{y_i} \right)^2 } $$ 実務ではパーセント表示にするため 100 を掛けることが多いです。実測値が 0 に近い場合は数値が発散するので注意が必要です。


2. Python で計算 #

import numpy as np

def rmspe(y_true: np.ndarray, y_pred: np.ndarray, eps: float = 1e-8) -> float:
    ratios = (y_true - y_pred) / np.maximum(np.abs(y_true), eps)
    return float(np.sqrt(np.mean(ratios**2)))


y_true = np.array([120, 150, 80, 200])
y_pred = np.array([118, 148, 79, 190])
print(f"RMSPE = {rmspe(y_true, y_pred) * 100:.2f}%")

eps を導入してゼロ除算を防ぎます。ゼロ需要が多い場合は RMSLE や WAPE への切り替えを検討します。


3. 使いどころ #

  • リテール需要予測:販売数量の割合誤差を重視する場合。
  • 金融リスク:収益率や価格変動の予測誤差を割合で測りたい場合。
  • エネルギー負荷:負荷の規模が大きく変動する場合でも、相対的なズレを評価できる。

4. 他の百分率指標との違い #

| 指標 | 特徴 | 注意点 |

| — | — | — |

| MAPE | 平均百分率誤差。直感的 | 大きな誤差に線形にしか反応しない |

| RMSPE | 大きな割合誤差を強くペナルティ | 実測値が 0 に近いと発散 |

| RMSLE | 対数スケールで評価 | 比率に近いが、解釈がやや難しい |

RMSPE は MAPE よりも大きな外れを強調するため、リスク回避志向の KPI に適しています。


5. 実務での注意 #

  • ゼロや極小値が多いデータでは RMSPE が不安定。該当サンプルを除外するか、他指標を併用する。
  • 予測対象の単位やスケールを考慮し、RMSPE だけでなく MAE や WAPE も併記する。
  • 期間を跨いで比較する場合は、同じ商品・期間のセットで計算して公平性を保つ。

まとめ #

  • RMSPE は割合誤差を二乗して平均する指標で、大きな外れを強調したいときに有効。

  • ゼロ近傍のデータでは注意が必要だが、リスク管理や KPI としてわかりやすい数値を提供できる。

  • MAPE、WAPE、RMSLE などと併用し、絶対誤差・割合誤差の両面からモデル性能を評価しよう。