콘텐츠로 이동

평균절대백분율오차와 그 밖의 상대 척도

MAE, MSE, RMSE는 모두 \(Y\)의 원래 단위로 오차를 잰다. 그래서 척도가 다른 자료끼리 비교하기 어렵다. RMSE가 5라는 것은 반응변수의 범위가 0–10일 때와 0–10,000일 때 전혀 다른 의미를 갖는다. 상대 척도는 오차를 관측값에 대한 비율이나 백분율로 표현하여 서로 다른 맥락 사이의 비교를 가능하게 한다.


1. 평균절대백분율오차

평균절대백분율오차(MAPE)는 각 예측오차를 관측값에 대한 백분율로 표현한다.

\[ \text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right| \times 100\% \]

MAPE가 5%라는 것은 모형의 예측이 참값에 비해 평균 5%만큼 빗나간다는 뜻이다.

장점

  • 척도무관: 단위나 크기가 다른 자료들 사이에서 모형 성능을 직접 비교할 수 있다.
  • 직관적: 백분율 오차는 비전문가도 쉽게 이해한다.

한계

  • \(y_i = 0\)이면 정의되지 않는다: \(y_i\)로 나누므로 관측값이 0이면 MAPE가 정의되지 않는다. 실무에서는 모든 관측값이 순양수인 자료로 쓰임이 제한된다.
  • 비대칭 벌점: MAPE는 과대예측과 과소예측에 서로 다른 벌점을 준다. 과소예측은 \(\hat{y} = 0\)인 극단에서도 오차가 100%를 넘을 수 없지만, 과대예측의 오차는 위로 제한이 없다. 이 비대칭 때문에 MAPE는 체계적으로 과소예측하는 모형을 선호하게 된다.
  • 위로 유계가 아니다: 개별 백분율 오차가 100%를 넘을 수 있으며 MAPE에는 유한한 상한이 없다.

2. 대칭 평균절대백분율오차

대칭 평균절대백분율오차(sMAPE)는 분모에 관측값과 예측값의 평균을 써서 MAPE의 비대칭을 완화한다.

\[ \text{sMAPE} = \frac{1}{n} \sum_{i=1}^{n} \frac{|y_i - \hat{y}_i|}{(|y_i| + |\hat{y}_i|) / 2} \times 100\% \]

이는 다음과 같이 정리할 수 있다.

\[ \text{sMAPE} = \frac{2}{n} \sum_{i=1}^{n} \frac{|y_i - \hat{y}_i|}{|y_i| + |\hat{y}_i|} \times 100\% \]

성질

  • 유계: 각 항이 0%와 200% 사이에 있으므로 \(\text{sMAPE} \in [0\%, 200\%]\)이다.
  • 더 대칭적: 같은 크기의 과대예측과 과소예측이 MAPE에서보다 비슷한 벌점을 받는다.
  • \(y_i = \hat{y}_i = 0\)이면 여전히 정의되지 않는다: 관측값과 예측값이 모두 0이면 분모가 사라진다. 다만 보통 그 항의 기여를 0으로 정의하여 처리한다.

sMAPE도 완전히 대칭은 아니다

이름과 달리 sMAPE가 모든 경우에 완벽하게 대칭인 것은 아니다. \(y_i\)와 \(\hat{y}_i\)의 부호가 반대이면 거동이 직관에 어긋날 수 있다. sMAPE는 모든 값이 양수일 때 가장 잘 작동한다.

MAPE의 비대칭과 그것이 예측을 끌어당기는 방향

왼쪽 그림은 참값을 \(y = 100\)으로 고정한 채 예측값 \(\hat{y}\)만 움직이며 두 척도를 그린 것이다. 주황색 MAPE는 \(\hat{y} = 100\)에서 0으로 내려왔다가 양쪽으로 올라가는데, 두 팔의 기울기가 같은데도 왼쪽 팔은 \(\hat{y} = 0\)에서 끝나 버린다. 예측값이 음수가 될 수 없으므로 과소예측이 만들 수 있는 최대 벌점은 \(100\%\)다. 오른쪽 팔에는 그런 천장이 없어서 \(\hat{y} = 300\)이면 \(200\%\), \(\hat{y} = 400\)이면 \(300\%\)까지 얼마든지 올라간다. 같은 "두 배 빗나감"이라도 \(\hat{y} = 50\)은 \(50\%\), \(\hat{y} = 200\)은 \(100\%\)로 벌점이 두 배 차이 난다. 파란색 sMAPE는 분모에 \(\hat{y}\)를 함께 넣어 양쪽을 \(200\%\)로 막아 두었고, 그래서 곡선이 훨씬 대칭에 가깝다.

이 비대칭이 실제로 무엇을 하는지는 오른쪽에서 드러난다. 반응 \(Y\)가 로그정규분포(중앙값 \(1\), 평균 \(1.65\))를 따를 때, 상수 하나로 예측한다면 각 척도는 어떤 값을 고를까. MSE를 최소화하는 값은 평균인 \(1.65\), MAE를 최소화하는 값은 중앙값인 \(1.00\)이다. 여기까지는 잘 알려진 사실이다. 그런데 MAPE를 최소화하는 값은 \(0.37\)이다. 중앙값의 3분의 1을 조금 넘는 수이며, 이론값 \(e^{-1} = 0.368\)과 정확히 맞는다.

이유는 MAPE의 분모에 있다. \(|y_i - \hat{y}_i|/y_i\)는 \(y_i\)가 작은 관측값의 오차에 \(1/y_i\)만큼 큰 가중치를 준다. 그래서 MAPE가 고르는 값은 \(1/y\)를 가중치로 삼은 가중중앙값이 되고, 분포가 오른쪽으로 치우칠수록 그 값은 아래로 끌려 내려간다. 곧 MAPE로 모형을 고르거나 최적화하면 체계적으로 낮게 예측하는 모형을 얻게 된다. 수요 예측이나 매출 예측처럼 반응이 양수이고 치우쳐 있는 자료에서 MAPE를 기준으로 삼았다가 꾸준히 과소예측하게 되는 일이 실무에서 드물지 않은 이유다. 대칭 판본인 sMAPE나 기준 모형 대비 비인 MASE가 그 보완이 된다.


3. 평균절대척도오차

평균절대척도오차(MASE)는 예측오차를 소박한 기준 모형의 표본 내 MAE에 대한 비로 척도화한다. 횡단면 회귀에서 소박한 기준 모형은 보통 표본평균 \(\bar{y}\)이다.

\[ \text{MASE} = \frac{\displaystyle \frac{1}{n}\sum_{i=1}^{n} |y_i - \hat{y}_i|}{\displaystyle \frac{1}{n}\sum_{i=1}^{n} |y_i - \bar{y}|} \]

이는 모형 MAE와 기준 MAE의 비로 정리된다.

\[ \text{MASE} = \frac{\text{MAE}_{\text{model}}}{\text{MAE}_{\text{baseline}}} \]

해석

  • \(\text{MASE} < 1\): 모형이 소박한 기준보다 낫다.
  • \(\text{MASE} = 1\): 모형이 기준보다 나을 것이 없다.
  • \(\text{MASE} > 1\): 모형이 기준보다 나쁘다.

MASE는 (분모가 0이 아닌 한) \(y_i = 0\)일 때도 잘 정의되므로 MAPE의 실용적인 대안이 된다.


4. 상대제곱오차와 상대절대오차

기준 모형(모든 관측값에 \(\bar{y}\)를 예측)에 대해 오차를 정규화하는 상대 척도가 둘 더 있다.

상대제곱오차(RSE):

\[ \text{RSE} = \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{\sum_{i=1}^{n}(y_i - \bar{y})^2} = \frac{\text{SSE}}{\text{SST}} = 1 - R^2 \]

상대절대오차(RAE):

\[ \text{RAE} = \frac{\sum_{i=1}^{n}|y_i - \hat{y}_i|}{\sum_{i=1}^{n}|y_i - \bar{y}|} \]

모형이 평균 기준보다 나으면 RSE와 RAE 모두 1보다 작다. RSE는 단순히 \(R^2\)의 여집합임에 유의하라.


5. 상대 척도의 비교

척도 \(y_i = 0\) 처리 유계 대칭 척도무관
MAPE 아니오 아니오 아니오 예
sMAPE 부분적으로 예 (0–200%) 근사적으로 예
MASE 예 아니오 예 예
RSE 예 아니오(다만 보통 \(\in [0,1]\)) 예 예
RAE 예 아니오(다만 보통 \(\in [0,1]\)) 예 예

상대 척도 고르기

비전문가와 소통하고 모든 관측값이 순양수일 때는 MAPE를 쓴다. 0이 섞여 있거나 기준 모형과의 원칙 있는 비교를 원할 때는 MASE를 쓴다. \(R^2\)의 직접적인 여집합이 필요할 때는 RSE를 쓴다.


6. 수치 보기

모든 값이 양수인 관측값 \(n = 4\)개의 모형을 생각하자.

\(i\) \(y_i\) \(\hat{y}_i\) \(\lvert e_i \rvert\) \(\lvert e_i \rvert/y_i\) \(2\lvert e_i \rvert/(y_i + \hat{y}_i)\)
1 100 110 10 0.100 0.095
2 200 190 10 0.050 0.051
3 50 45 5 0.100 0.105
4 150 160 10 0.067 0.065

표본평균은 \(\bar{y} = 125\)이다.

\[ \text{MAPE} = \frac{0.100 + 0.050 + 0.100 + 0.067}{4} \times 100\% = 7.9\% \]
\[ \text{sMAPE} = \frac{0.095 + 0.051 + 0.105 + 0.065}{4} \times 100\% = 7.9\% \]

MASE를 구하기 위해 기준 MAE를 계산하면

\[ \text{MAE}_{\text{baseline}} = \frac{|100-125| + |200-125| + |50-125| + |150-125|}{4} = \frac{25+75+75+25}{4} = 50 \]
\[ \text{MAE}_{\text{model}} = \frac{10+10+5+10}{4} = 8.75 \]
\[ \text{MASE} = \frac{8.75}{50} = 0.175 \]

MASE가 0.175라는 것은 모형의 평균오차가 소박한 기준 모형 오차의 17.5%에 지나지 않는다는 뜻으로, 평균을 예측하는 것에 비해 예측 성능이 뛰어남을 확인해 준다.

연습문제

연습문제 1. 실제값 \(y = (100, 200, 50, 300)\)과 예측값 \(\hat{y} = (110, 180, 55, 290)\)에 대해 평균절대백분율오차(MAPE)를 계산하라.

풀이
\[ \text{MAPE} = \frac{1}{n}\sum_{i=1}^n \left|\frac{y_i - \hat{y}_i}{y_i}\right| \times 100\% \]
\[ = \frac{1}{4}\left(\left|\frac{-10}{100}\right| + \left|\frac{20}{200}\right| + \left|\frac{-5}{50}\right| + \left|\frac{10}{300}\right|\right) \times 100\% \]
\[ = \frac{1}{4}(0.10 + 0.10 + 0.10 + 0.0333) \times 100\% = \frac{0.3333}{4} \times 100\% = 8.33\% \]

연습문제 2. 실제값이 0이거나 0에 가까울 때 MAPE가 왜 정의되지 않거나 문제가 되는지 설명하라. 어떤 대안 척도를 쓸 수 있는가?

풀이

MAPE는 \(y_i\)로 나누므로 \(y_i = 0\)이면 정의되지 않는다(0으로 나누기). \(y_i\)가 0에 가까우면 작은 절대오차도 엄청난 백분율 오차를 만들어 척도를 지배한다.

대안:

  • 대칭 MAPE(sMAPE): 분모에 \(|y_i| + |\hat{y}_i|\)를 써서 (둘 다 0이 아닌 한) 0으로 나누기를 피하고 과대·과소예측을 대칭적으로 다룬다.
  • 평균절대척도오차(MASE): 소박한 예측의 MAE로 정규화하여 개별 \(y_i\)로 나누는 것을 피한다.
  • 로그 기반 척도: \(y_i > 0\)이면 RMSLE(제곱근평균제곱로그오차) \(= \sqrt{\frac{1}{n}\sum(\log y_i - \log \hat{y}_i)^2}\)를 쓴다. 로그 척도에서 상대오차를 잰다.

연습문제 3. MAPE는 백분율의 관점에서 과대예측과 과소예측을 비대칭적으로 다룬다. 예를 들어 이를 보여라.

풀이

\(y = 100\)을 고정하고 예측값을 바꿔 보자.

\(\hat{y}\) 오차의 방향 백분율 오차
0 최대 과소예측 100%
50 과소예측 50%
150 과대예측 50%
300 과대예측 200%
1000 과대예측 900%

비대칭의 핵심: 분모가 \(y = 100\)으로 고정되어 있으므로 과소예측이 만들 수 있는 오차는 \(\hat{y} = 0\)일 때의 100%가 최대이다(예측값은 음수가 될 수 없다고 가정). 반면 과대예측의 오차는 위로 아무런 제한이 없다. 따라서 MAPE는 과대예측에 훨씬 무거운 벌점을 주며, MAPE로 최적화한 모형은 체계적으로 과소예측하는 쪽으로 치우친다.

두 번째 비대칭도 있다. MAPE는 값이 작은 관측값의 오차에 더 무거운 벌점을 준다. $20짜리 물건의 $10 오차(50%)가 $200짜리 물건의 $10 오차(5%)보다 열 배 무겁게 계산된다.

연습문제 4. 예측 모형을 평가할 때 MAPE가 좋은 선택이 되는 경우는 언제인가? 절대오차보다 상대오차가 더 의미 있는 응용 분야 두 가지를 들어라.

풀이

변수의 척도가 크게 달라지고 절대 정확도보다 상대 정확도가 중요할 때 MAPE가 좋은 선택이다.

  1. 소매 수요 예측: 1000개 팔리는 품목의 10% 오차(100개 차이)는 10개 팔리는 품목의 10% 오차(1개 차이)와 운영상 비슷한 의미를 갖는다. MAPE는 둘을 똑같이 다루지만 MAE는 작은 품목의 오차를 사실상 무시한다.

  2. 재무 예측: 규모가 다른 기업들의 주가나 매출을 예측할 때. $10짜리 주식의 $1 오차(10%)가 $1000짜리 주식의 $1 오차(0.1%)보다 훨씬 중요하다. MAPE가 이 척도 불변성을 포착한다.

값이 0이나 음수가 될 수 있거나(예: 손익), 분포가 심하게 치우쳐 있거나, 모든 관측값에서 동일한 절대 정확도가 필요할 때는 MAPE가 적절하지 않다.


정리하며

상대 척도는 척도가 다른 문제끼리 비교할 수 있게 한다.

\[ \text{MAPE}=\frac1n\sum_i\left|\frac{y_i-\hat y_i}{y_i}\right|\times100\% \]
  • RMSE 5 는 반응 범위가 0–10 일 때와 0–10{,}000 일 때 전혀 다른 뜻이다. 백분율로 바꾸면 그 비교가 가능해진다.
  • MAPE 의 치명적 약점은 \(y_i=0\) 이다. 분모가 0 이면 정의되지 않고, 0 에 가까우면 폭발한다. 수요 예측처럼 0 이 흔한 자료에서는 쓸 수 없다.
  • MAPE 는 비대칭이다. 과대예측보다 과소예측에 관대하며, 그래서 체계적으로 낮게 예측하는 모형을 선호한다. 대칭 판본(sMAPE)이 그 보완이다.
  • MASE 가 대안이다. 단순 기준 모형 대비 상대 오차이며, 0 문제가 없고 척도에 무관하다.
  • 어떤 척도든 하나만 보지 않는다. 절대 척도와 상대 척도를 함께 보아야 오차의 크기와 그 의미를 동시에 알 수 있다.

다음 절 성능 척도 개관으로 정리한다.