
Percent of Over-Predictions (POP)란 무엇인가: 예측 편향의 '방향적 치우침'을 보는 간단한 지표
요약
예측 모델의 오차 크기뿐만 아니라 예측 방향의 편향을 측정하는 지표인 POP(Percent of Over-Predictions)를 소개합니다. POP는 전체 예측 중 실측값을 상회한 비율을 계산하여 모델의 계통적 편향을 직관적으로 파악하게 해줍니다.
핵심 포인트
- POP는 예측의 방향적 치우침을 나타내는 지표임
- POP가 50%를 벗어나면 모델에 계통적 편향이 존재함
- MPE와 달리 오차의 크기가 아닌 발생 빈도에 집중함
- Python을 통해 매우 간단하게 구현 가능함
「예측 모델의 정밀도는 RMSE나 MAE로 보면 되지 않을까?」
처음에는 저도 그렇게 생각했습니다.
예측 오차(Error)가 작을수록 좋다. 이것은 직관적으로 상당히 자연스럽습니다.
하지만, 금융 시계열(Financial Time Series) 예측 모델을 평가하다 보면, 오차의 크기만으로는 보이지 않는 것이 있습니다.
그것은 바로, 예측이 어느 방향으로 어긋나 있는가입니다.
예를 들어, 어떤 모델의 RMSE가 적당히 작다고 가정해 봅시다. 하지만 예측의 대부분이 실제 값보다 높게 나온다면, 그것은 계통적으로(Systematically) "위로 어긋나 있는" 모델입니다.
이러한 편향(Bias)을 볼 때, MPE (Mean Percentage Error)와 같은 지표가 자주 사용됩니다.
다만, MPE는 편향의 크기와 방향을 평균화하여 보는 지표입니다.
조금 더 직접적으로, "전체 예측 중 몇 퍼센트가 실제 값보다 높았는가?"를 보고 싶을 때가 있습니다.
그 지표가 바로 Percent of Over-Predictions (POP) 입니다.
1. POP의 정의
POP의 정의는 상당히 간단합니다.
여기서,
- $\hat{y}_i$는 예측값 (Predicted value)
- $y_i$는 실제 값 (Actual value)
- $\mathbf{1}(\cdot)$은 조건이 성립하면 1, 그렇지 않으면 0을 반환하는 지시 함수 (Indicator function)
- $N$은 예측의 총수
입니다.
즉, 전체 예측 중 예측값이 실측값을 상회한 비율을 보고 있는 것뿐입니다.
2. POP의 직관
POP의 직관은 매우 단순합니다.
- POP = 50%라면, 과대 예측(Over-prediction)과 과소 예측(Under-prediction)이 거의 같은 비율 $\rightarrow$ 편향(Bias)이 작음
- POP > 50%라면, 모델은 계통적으로 높게 예측하는 경향이 있음
- POP < 50%라면, 모델은 계통적으로 낮게 예측하는 경향이 있음
예를 들어, POP = 73%라면 "예측의 73%는 실제 값보다 높았다"는 뜻입니다.
이는 상당히 강한 상방 편향(Upward bias)이 있음을 의미합니다.
반대로 POP = 50%에 가깝다면, 과대 예측과 과소 예측이 균형 있게 나오고 있다는 뜻입니다.
3. Python으로 작성하면 순식간에
POP는 정의가 간단하기 때문에, Python으로도 순식간에 작성할 수 있습니다.
import numpy as np
def percent_of_over_predictions(y_true, y_pred):
return np.mean(y_pred > y_true) * 100
이것뿐입니다.
예를 들어, 다음과 같은 데이터가 있다고 가정해 봅시다.
y_true = np.array([100, 200, 150, 300, 250])
y_pred = np.array([110, 190, 160, 310, 240])
pop = percent_of_over_predictions(y_true, y_pred)
...
5개의 예측 중 3개가 실측값을 상회하고 있으므로, POP = 60%입니다.
4. MPE와는 어떻게 다른가
예측 편향을 보는 지표로는 MPE (Mean Percentage Error)가 잘 알려져 있습니다.
MPE는 예측 오차의 퍼센테이지를 평균하여, 편향의 방향과 크기를 동시에 봅니다.
MPE가 양수(+)라면 과소 예측 경향, 음수(-)라면 과대 예측 경향이 있습니다.
반면 POP는 오차의 크기를 전혀 고려하지 않습니다.
POP는 "몇 번 위로 어긋났는가"만을 셉니다.
MPE는 "얼마나 위(아래)로 어긋났는가의 평균"을 봅니다.
이 차이는 사실 상당히 중요합니다.
예를 들어, 다음과 같은 케이스를 생각해 봅시다.
예측 1: 실측 100, 예측 101 $\rightarrow$ 과대 예측 (오차: +1)
예측 2: 실측 100, 예측 101 $\rightarrow$ 과대 예측 (오차: +1)
예측 3: 실측 100, 예측 101 $\rightarrow$ 과대 예측 (오차: +1)
...
이 경우 POP = 75%입니다. 예측의 4분의 3이 위로 어긋나 있습니다.
하지만 MPE를 계산하면, 예측 4의 큰 과소 예측이 평균을 끌어당겨서, MPE는 과소 예측 방향을 나타낼 수도 있습니다.
즉, **MPE만 보면 "과소 예측 경향의 모델"로 보이지만, POP를 보면 "대부분의 예측은 과대 예측"**이라는 상황이 발생할 수 있습니다.
POP와 MPE는 상호 보완적인 관계입니다. 둘 다 확인하면 편향의 구조를 더 정확하게 파악할 수 있습니다.
5. 어디에서 사용되는가
POP는 독립적인 유명 지표로서 교과서에 실려 있는 타입은 아닙니다.
하지만 예측 편향의 평가 지표로서 몇몇 분야에서 사용되고 있습니다.
예를 들어, 금융 시계열 예측 (Financial Time Series Forecasting) 문맥에서는 MADL (Mean Absolute Directional Loss)를 제안한 Michańków et al.의 논문에서 모델의 평가 지표 중 하나로 POP가 사용되고 있습니다.
이 논문에서는 LSTM의 예측이 실제 수익률을 상회한 비율을 POP로 보고하여, 모델의 편향 (Bias) 경향을 평가하고 있습니다.
이 외에도 수요 예측 · 공급망 (Demand Forecasting / Supply Chain), 기상 예보, 역학 모델 (Epidemiological Model, COVID-19 예측 평가 등)의 문맥에서 유사한 개념이 사용되고 있습니다.
6. POP를 사용할 때의 주의점
POP는 단순하고 직관적이지만, 주의해야 할 점도 있습니다.
먼저, POP는 오차의 크기를 무시한다는 점입니다.
POP = 50%라 하더라도, 과대 예측 (Over-prediction)이 과소 예측 (Under-prediction)보다 훨씬 더 크게 벗어나 있을 수 있습니다. 이 경우, 건수로는 균형이 맞더라도 금액 기준으로 보면 상방 편향 (Upward Bias)이 클 가능성이 있습니다.
반대로, POP = 70%라 하더라도 과대 예측의 오차가 매번 아주 미미하다면 실질적인 영향은 작을 수도 있습니다.
따라서 POP는 단독으로 보기보다 MPE나 MAE와 조합하여 보는 것이 좋다고 생각합니다.
다음은, 예측값과 실측값이 완전히 일치하는 케이스의 처리입니다.
요약
Percent of Over-Predictions (POP)는 예측값이 실측값을 상회한 비율을 보는 단순한 지표입니다.
정의는 간단하며, Python으로도 한 줄로 작성할 수 있습니다.
MPE와 같은 지표와 달리 오차의 크기를 보지 않습니다. 대신 '몇 번이나 위로 벗어났는가'만을 순수하게 카운트합니다.
POP가 50%에 가까우면 편향이 작고, 50%에서 크게 벗어나 있으면 계통적인 치우침 (Systematic Bias)이 있다는 것을 의미합니다.
일본어로는 해설을 자주 접하기 어려운 지표이지만, 금융 시계열, 수요 예측, 기상 예보 등에서 편향을 평가할 때 MPE나 MAE와 조합하여 사용하면 모델의 예측 경향을 더욱 명확하게 파악할 수 있습니다.
참고 문헌 · 읽은 것
- Jakub Michańków, Paweł Sakowski, Robert Ślepaczuk, "Mean Absolute Directional Loss as a New Loss Function for Machine Learning Problems in Algorithmic Investment Strategies."
- Jakub Michańków, Paweł Sakowski, Robert Ślepaczuk, "Generalized Mean Absolute Directional Loss as a Solution to Overfitting and High Transaction Costs in Machine Learning Models Used in High-Frequency Algorithmic Investment Strategies."
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn ML의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기