1만 번의 가상 경기로 확률을 추정하는 원리
"이 팀이 이긴다/진다"는 단정은 데이터 분석이 아닙니다. 데이터는 "이길 확률이 몇 %인가"로 말합니다. 이 글은 Pro-Analyzer가 확률을 만들어내는 방법, 그리고 그걸 이해하는 데 필요한 통계 기초를 다룹니다.
기대값은 "수많은 경기를 치렀을 때 평균적으로 나오는 결과"입니다. 어떤 팀의 기대 득점이 1.7골이라는 건, 그 경기를 무한히 반복하면 평균 1.7골을 넣는다는 뜻이지 "이번에 정확히 1.7골"을 의미하지 않습니다. 실제로는 0골일 수도, 3골일 수도 있죠. 분석의 출발점은 이 평균(기대값)을 정확히 추정하는 것입니다.
같은 기대 득점 2.0이라도, 안정적으로 2골 안팎을 내는 팀과 0골~5골을 오가는 팀은 다릅니다. 이 흔들림의 크기가 표준편차(변동성)입니다. 표준편차가 크면 약팀이 강팀을 이기는 이변도 더 자주 나옵니다. 그래서 평균만이 아니라 분포의 폭까지 봐야 정확한 확률이 나옵니다.
| 분포 | 적합한 데이터 | 적용 종목 |
|---|---|---|
| 포아송 분포 | 드물게 발생하는 '횟수'(골·득점) | 축구, 야구 |
| 정규분포 | 크고 연속적인 값(100점대 점수) | 농구 |
축구 골처럼 "한 경기에 몇 번 일어나는가"를 다룰 땐 포아송 분포가 현실을 잘 묘사합니다. 반면 농구처럼 점수가 크고 촘촘할 땐 종 모양의 정규분포가 더 적합합니다. 배구는 점수가 아닌 세트로 끝나므로 분포 시뮬레이션 대신 세트 확률 모델을 씁니다.
두 팀의 기대 득점과 표준편차(또는 분포)를 정했다면, 이제 가상 경기를 컴퓨터로 수없이 돌립니다. 매번 분포에서 무작위로 점수를 뽑아 한 경기를 "치르고", 누가 이겼는지·총득점이 기준선을 넘었는지를 기록합니다. 이것을 1만 번 반복하죠.
이렇게 "많이 시뮬레이션해서 빈도를 세는" 방법이 몬테카를로 시뮬레이션입니다. 복잡한 수식을 풀지 않고도, 충분히 많이 반복하면 실제 확률에 가까운 값을 얻을 수 있습니다. 반복 횟수가 많을수록 추정이 안정됩니다(그래서 1만 회를 씁니다).
확률 70%의 예측이 빗나가도 그 분석이 틀린 것은 아닙니다. 70%는 곧 10번 중 3번은 반대 결과가 나온다는 뜻이니까요. 데이터 분석의 가치는 단일 경기를 맞히는 데 있지 않고, 장기적으로 더 합리적인 판단을 돕는 데 있습니다. 어떤 모델도 미래를 보장하지 못하며, 모든 수치는 참고 자료로만 활용해야 합니다.