회귀 오차 지표 계산기 쉽게 이해하기 — 개념과 원리
매출, 가격, 기온, 수요처럼 숫자를 예측하는 모델은 예측값이 실제값에서 얼마나 벗어났는지로 평가합니다. 이 계산기는 실제값 목록과 그에 대응하는 예측값 목록을 받아 MAE, MSE, RMSE, MAPE, sMAPE, 결정계수 R²를 한 번에 계산합니다.
계산 방법
오차는 eᵢ = 예측값ᵢ − 실제값ᵢ, n은 자료 쌍의 개수입니다.
- MAE(평균 절대 오차) = (1/n) Σ |eᵢ| — 자료와 같은 단위
- MSE(평균 제곱 오차) = (1/n) Σ eᵢ² — 단위의 제곱
- RMSE(평균 제곱근 오차) = √MSE — 원래 단위
- MAPE = (1/n) Σ |eᵢ ÷ 실제값ᵢ| × 100%
- sMAPE = (1/n) Σ 2|eᵢ| ÷ (|실제값ᵢ| + |예측값ᵢ|) × 100%
- R² = 1 − Σ eᵢ² ÷ Σ (실제값ᵢ − 실제값 평균)²
원리
MAE는 오차 한 단위를 모두 똑같이 취급하므로 평소에 얼마나 빗나가는지를 보여 줍니다. MSE와 RMSE는 오차를 제곱하므로 큰 오차에 훨씬 큰 비중을 둡니다. 그래서 RMSE는 항상 MAE 이상이며, 크게 빗나간 예측이 몇 개 있으면 차이가 벌어집니다. 백분율 지표는 단위를 없애 규모가 다른 자료끼리 비교할 수 있게 해 주지만, MAPE는 실제값으로 나누므로 0 근처에서 값이 폭주합니다. sMAPE는 실제값과 예측값의 평균 크기로 나누어 이 문제를 완화합니다. R²는 언제나 평균값만 내놓는 가장 단순한 모델과 제곱 오차를 비교한 값입니다.
예제 풀이
- 실제값 100, 150, 200, 250, 예측값 110, 140, 210, 240이므로 오차는 +10, −10, +10, −10입니다.
- MAE = 40 ÷ 4 = 10, MSE = 400 ÷ 4 = 100, RMSE = √100 = 10입니다.
- MAPE = (10% + 6.67% + 5% + 4%) ÷ 4 = 6.42%입니다.
- sMAPE = (20/210 + 20/290 + 20/410 + 20/490) ÷ 4 × 100 = 6.35%입니다.
- 실제값 평균은 175이고 Σ(실제값 − 175)² = 12,500이므로 R² = 1 − 400 ÷ 12,500 = 0.968입니다.
결과 해석
이 예에서는 모든 오차의 크기가 10이라 MAE와 RMSE가 같습니다. R² = 0.968은 평균 주위의 제곱 변동 중 96.8%를 모델이 설명한다는 뜻입니다. R² = 0은 평균으로 예측한 것과 같은 수준이고, 그보다 못하면 음수가 됩니다. MAE와 RMSE는 자료의 규모, 그리고 "지난 기간과 같다" 같은 단순 예측과 비교해 판단하시기 바랍니다.
흔한 실수
- 실제값에 0이나 0에 가까운 값이 있는데 MAPE를 쓰는 경우
- R²가 높으면 업무에 쓸 만큼 정확하다고 단정하는 경우
- 단위가 다른 자료끼리 RMSE를 비교하는 경우
자주 묻는 질문
MAE와 RMSE 중 무엇을 써야 하나요?
큰 오차가 특히 치명적이면 RMSE를, 이상치에 덜 흔들리는 전형적 오차를 보고 싶으면 MAE를 씁니다.
MAPE는 왜 과대 예측과 과소 예측을 다르게 취급하나요?
예측값이 음수가 아니라면 과소 예측의 오차는 최대 100%에 그치지만 과대 예측에는 상한이 없습니다. 그래서 MAPE를 최소화하면 낮게 잡은 예측이 유리해지는 경향이 있습니다.
여기서의 R²는 상관계수의 제곱과 같은가요?
같은 자료에 절편이 있는 최소제곱 회귀를 적합한 경우에만 같고, 임의의 예측값에서는 다를 수 있습니다.
출처: R. J. Hyndman and A. B. Koehler, Another look at measures of forecast accuracy, International Journal of Forecasting, 2006 · R. J. Hyndman and G. Athanasopoulos, Forecasting: Principles and Practice, OTexts