Lab
리서치 노트·이론·2026-08-31

[이론] 잘 맞히는 모델이 돈을 잃는 이유에 대하여

**잘 맞히는 모델이 돈을 잃는 이유에 대하여**

확률을 다루는 세 가지 방식

잘 맞히는 모델이 돈을 잃는 이유에 대하여

한 투자자가 주가 예측 모델을 만들었다. 코스피 900여 종목, 5개월치 검증 데이터. 결과는 나쁘지 않아 보였다. 정확도 82%. 열 번 중 여덟 번을 맞히는 모델이었다.

그는 이 모델을 믿고 매매를 시작했고, 잃었다.

무엇이 잘못됐을까. 모델이 과적합됐을까, 데이터가 부족했을까, 시장이 변했을까. 셋 다 아니었다. 모델은 정상이었고 데이터도 충분했다. 잘못된 것은 82%라는 숫자를 읽는 방식이었다.

이 글은 그 읽는 방식에 관한 이야기다. 통계로 투자를 판단하려는 사람이라면 누구나 마주치는 세 개의 문턱이 있다. 세 문턱 모두 수학적으로는 초등적이다. 그런데도 거의 모든 사람이 걸려 넘어진다. 직관이 정확히 반대 방향을 가리키기 때문이다.

첫 번째 문턱: 82%는 얼마나 좋은 숫자인가

질문을 하나 던져보자. 어떤 의사가 희귀병 진단 정확도 99%를 기록했다. 이 의사는 유능한가?

대부분 그렇다고 답한다. 그런데 그 병의 유병률이 1%라면 어떨까. 이 의사는 모든 환자에게 "정상입니다"라고만 말해도 99%를 받는다. 진찰실에 들어가지 않고, 차트를 펴지 않고, 그냥 앉아만 있어도.

99%는 유능함의 증거가 아니라 아무 정보도 없다는 증거일 수 있다.

앞의 투자자에게 돌아가자. 그의 모델이 예측한 것은 "내일 1.2% 이상 오를 것인가"였다. 그리고 검증 기간 동안 실제로 1.2% 이상 오른 날은 전체의 28%였다. 나머지 72%는 그렇지 않았다.

그러니 이 모델은 매일 "안 오릅니다"라고만 답해도 정확도 72%를 받는다. 82%는 그 위에 10%포인트를 얹은 것뿐이다. 그것도 대부분은 하락을 잘 맞혀서 얻은 점수다. 정작 돈을 넣어야 할 순간, 즉 모델이 "오른다"고 말하는 순간의 성적은 완전히 다른 이야기였다.

실제로 937개 종목을 조사했더니, 70%의 종목에서 모델의 정확도가 "무조건 하락"이라고 찍는 것보다 낮았다.

여기서 필요한 것이 기준선이다. "아무것도 하지 않았을 때의 성적"이라고 이해하면 된다.

대상절대값기준선판단
희귀병 진단99%99%정보 없음
주가 모델 정확도82%72%미미
상승 예측 적중률33%28%의미 있음

세 번째 줄을 보라. 33%는 82%보다 훨씬 초라해 보인다. 그러나 기준선 28%와 비교하면 이쪽이 진짜 신호다. 절대값의 크기와 정보량은 아무 관계가 없다.

이것을 비율로 만든 것이 리프트다. 적중률을 기준선으로 나눈 값, 즉 이다. 1.0이면 무정보, 그보다 커야 모델이 무언가를 알고 있다는 뜻이다.

앞의 사례에서 리프트는 문턱을 어떻게 잡느냐에 따라 1.04에서 2.00까지 움직였다. 1.04는 사실상 동전 던지기였고, 2.00은 실제로 쓸 만한 신호였다. 그런데 정확도만 보면 둘의 차이가 보이지 않는다. 오히려 리프트 1.04짜리 모델의 정확도가 더 높게 나온다.

첫 번째 문턱을 요약하면 이렇다. 숫자 하나만으로는 아무것도 알 수 없다. 항상 "아무것도 안 했을 때"와 비교하라.

두 번째 문턱: 0.9는 90%가 아니다

모델이 확률을 뱉는다. 0.9라고 나왔다. 90% 확률로 오른다는 뜻일까.

아니다. 그리고 이 오해가 첫 번째 문턱보다 더 깊다.

머신러닝 모델의 출력은 점수이지 확률이 아니다. 이름이 predict_proba이고 0과 1 사이의 값이라 확률처럼 보이지만, 그 눈금이 실제 빈도와 일치한다는 보장은 어디에도 없다. 특히 부스팅 계열 모델은 출력을 양극단으로 밀어내는 성질이 있어서, 자신감이 실제보다 과장되게 나온다.

눈금을 확인하는 방법은 간단하다. 검증 데이터를 점수 구간별로 나누고, 각 구간에서 실제로 몇 %가 올랐는지 세면 된다. 앞의 사례에서 9만 5천 건을 이렇게 세어본 결과다.

모델 출력건수실제 상승률
0.0 ~ 0.121,07020.8%
0.3 ~ 0.412,15630.8%
0.5 ~ 0.66,19733.9%
0.7 ~ 0.82,33635.1%
0.9 ~ 1.015744.6%

0.9는 90%가 아니라 44.6%였다. 0.05는 5%가 아니라 20.8%였다.

이 표는 두 가지를 동시에 말해준다. 첫째, 모델에는 정보가 있다. 출력이 커질수록 실제 상승률도 올라간다. 순서는 맞다. 둘째, 눈금은 엉망이다. 20.8%에서 44.6%까지, 전체 범위가 24%포인트에 불과하다. 모델은 0.05부터 0.95까지 90%포인트를 오가는데 실제 세계는 그 4분의 1만 움직인다.

그래서 "확률 0.85면 사고 0.5면 판다" 같은 규칙이 무너진다. 0.85와 0.5의 실제 차이는 겨우 몇 %포인트다. 대부분의 사람이 임계값 0.5를 쓰는데, 이 0.5라는 숫자에는 아무 근거가 없다. 관습일 뿐이다.

점수를 실제 확률로 번역하는 작업을 보정이라고 부른다. 위의 표가 바로 번역 사전이다. 통계학에서는 이 관계를 매끄러운 곡선으로 만드는 방법들이 정립돼 있다. Platt scaling, isotonic regression 같은 이름으로 불린다.

핵심은 기법이 아니다. 모델에게 확률을 묻지 말고, 과거 데이터에게 물어야 한다는 태도다. 모델은 순서를 알려주고, 실제 확률은 세어서 얻는다.

두 번째 문턱을 요약하면 이렇다. 모델의 출력은 등수이지 점수가 아니다. 점수는 직접 세어서 매겨야 한다.

세 번째 문턱: 승률 46%가 승률 35%보다 나쁠 때

이제 마지막이자 가장 반직관적인 부분이다. 주사위 게임 두 개를 보자.

  • 게임 A — 1이나 2가 나오면 3만 원을 받고, 3부터 6까지는 1만 원을 낸다.
  • 게임 B — 1부터 5까지 나오면 1만 원을 받고, 6이 나오면 10만 원을 낸다.

이길 확률은 A가 33%, B가 83%다. 어느 쪽을 하겠는가. 여섯 번씩 굴려보자.

게임 A는 이기는 2번에 3만 원씩 6만 원을 받고, 지는 4번에 1만 원씩 4만 원을 낸다. 2만 원이 남는다. 게임 B는 이기는 5번에 1만 원씩 5만 원을 받고, 지는 1번에 10만 원을 낸다. 5만 원을 잃는다.

승률 33%짜리가 돈을 벌고, 83%짜리가 잃는다.

너무 뻔한 예시라고 느껴지는가. 그렇다면 이 뻔한 구조가 실제 투자 판단에서 어떻게 은폐되는지 보자.

앞의 투자자는 매매 규칙을 이렇게 정했다. 2% 오르면 팔고, 2% 떨어지면 판다. 대칭적이고 공평해 보인다.

그런데 이길 때와 질 때 금액이 같으면, 손익분기는 정확히 50%가 아니다. 거래비용이 있기 때문이다. 수수료와 세금, 슬리피지를 0.25%로 잡으면 필요한 승률은 가 된다.

56.2%를 넘어야 본전이다. 실제 성적은 46.3%였다. 10%포인트 부족했다.

그래서 규칙을 바꿨다. 3% 오르면 팔고, 1% 떨어지면 판다. 이번엔 손절이 세 배 빨리 걸린다. 실제로 손절 비율이 56%까지 올라갔다. 승률로 보면 훨씬 나쁜 규칙이다. 그런데 필요 승률은 로 내려간다. 실제 승률은 34.5%였다. 여유 3.3%포인트로 수익이 났다.

규칙승률손익분기결과
익절 2% / 손절 2%46.3%56.2%손실
익절 3% / 손절 1%34.5%31.2%수익

승률이 12%포인트나 낮은 쪽이 이겼다.

일반화하면 이렇다. 이길 때 , 질 때 , 비용이 일 때 필요한 승률은 이다. 이 값과 실제 승률의 차이가 여유 폭이다. 양수면 벌고 음수면 잃는다. 승률 자체는 이 계산의 재료 중 하나일 뿐, 그것만으로는 방향조차 알 수 없다.

50%라는 기준선은 일 때만 성립한다. 그리고 실제 매매에서 이 정확히 같은 경우는 거의 없다. 익절과 손절을 대칭으로 걸어도 마찬가지다. 주가가 아래로 움직이는 속도가 위로 움직이는 속도보다 빠르기 때문에, 대칭 규칙은 실제로는 손절 쪽으로 기울어져 있다.

세 번째 문턱을 요약하면 이렇다. 몇 번 이기는지가 아니라, 받는 돈이 내는 돈보다 많은지를 물어라.

세 문턱이 만나는 자리

세 가지는 따로 노는 개념이 아니다. 하나의 질문을 세 단계로 쪼갠 것에 가깝다. 이 신호를 믿고 돈을 넣어도 되는가?

단계질문필요한 것
1이 신호에 정보가 있는가기준선과의 비교
2정보가 있다면 얼마나 강한가보정된 실제 확률
3그 강도로 수익이 나는가손익비와 손익분기

1단계를 건너뛰면 아무 정보도 없는 모델을 붙들고 있게 된다. 2단계를 건너뛰면 0.9를 90%로 착각한다. 3단계를 건너뛰면 잘 맞히는 모델로 돈을 잃는다.

그리고 세 단계 모두를 통과해도 여유 폭이 0.3%포인트 남짓인 경우가 흔하다. 앞의 사례가 정확히 그랬다. 거래비용을 0.25%가 아니라 0.4%로만 잡아도 그 여유가 절반으로 준다. 이것이 시장이 어려운 이유다. 신호가 없어서가 아니라, 있는 신호가 비용을 겨우 넘기는 크기이기 때문이다.

세 가지 질문

정리하자면, 어떤 예측 지표를 마주하든 세 가지만 물으면 된다.

  • 아무것도 안 했으면 얼마였나? 기준선 없는 절대값은 정보가 아니다.
  • 이 숫자를 실제로 세어본 사람이 있나? 모델의 자신감과 세상의 빈도는 다른 것이다.
  • 맞았을 때와 틀렸을 때, 금액이 같은가? 같지 않다면 50%는 기준이 아니다.

세 질문 모두 중학교 산수로 답할 수 있다. 어려운 것은 계산이 아니라, 직관이 반대 방향을 가리킬 때 계산을 믿는 일이다.

높은 정확도는 유혹적이고 낮은 승률은 불안하다. 그러나 시장은 우리가 편안해하는 숫자에 보상을 주지 않는다. 계산이 가리키는 방향에 준다.

본문의 수치는 코스피 900여 종목, 검증 9만 5천 건 규모의 실제 백테스트 결과다. 특정 전략의 수익성을 주장하기 위한 것이 아니라 지표를 읽는 방식을 설명하기 위해 인용했다. 과거 성적은 미래를 보장하지 않는다.