MSE, RMSE 등은 오차가 커질수록 크게 penalty를 준다. 따라서 outlier에 너무 크게 영향을 받는다.
MAPE (Mean Absolute Percentage Error)는 주가가 퍼센트로 수익이 결정되는걸 생각하면 가장 괜찮아보인다. 그런데 Wikipedia등에 보면 이 방법의 단점으로 negative error (actual < forecast)에 큰 penalty를 준다고 지적하여 사용을 꺼리게한다.
하지만 그런 지적은 주가와는 무관한 이야기이다. Errors on percentage errors에서 보인 예를 보면 actual = 150, forecast = 100 일때와 actual = 100, forecast = 150일때를 비교하면서 둘의 MAPE가 다른게 문제라고 말한다. 하지만 주가의 경우 이 둘은 수익률이 다르므로 loss가 다르게 나오는게 맞다. 또 다른 지적은 actual 이 작을 때 실제 보다 작은 forecast의 MAPE가 100%가 넘지 못하는 반면 실제보다 큰 forecast의 MAPE의 상한이 없다고 말한다. 하지만 이는 forecast가 음수가 될 수 없는 모델에서만 해당하는 말이다.
같은 사이트에서 추천하는 방법은 MAPE를 쓰던가, MAPE가 말이 안되는 경우에 한해 MASE (Mean Absolute Scaled Error)를 쓰라고 추천한다.
MASE는 가장 naive 한 prediction 대비 오차의 비를 계산한다. 예를들어 actual 이 1, 3, 5, 7, 9 라고 하자. 그러면 가장 naive 한 forecast는 바로 이전 시점의 값으로 예측하는 것이다. 즉, np.nan, 1, 3, 5 가 가장 naive한 예측이다. 이 naive한 방법을 사용할때 오차는 np.nan, 2 (= |3-1|), 2 (=|5-3|), 2 (=|7-5|)이다. MASE 는 이 값들의 평균을 분모로하고, 분자는 |forecast – actual|로 한다. 즉 가장 단순 무식한 방법대비 얼마나 잘하는지를 본다.
MAPE가 정말로 문제가 될 경우란 forecast와 actual이 정확히 일치해 gradient descent가 안될 경우이다. Metric 으로서는 문제가 없다.