어떻게 예측하나요?
수학을 몰라도 괜찮습니다. 먼저 쉬운 말로 설명하고, 더 궁금한 분을 위해 아래에 실제 수식도 정리해 뒀어요.
쉽게 말하면
1
팀 실력에 점수를 매깁니다 (Elo). 체스·게임 랭킹처럼, 이기면 점수가 오르고 지면 내려갑니다. 강팀이 약팀을 이기면 조금, 약팀이 강팀을 이기면(이변) 많이 움직여요. 중요한 대회(월드컵) 결과일수록 더 크게 반영합니다.
2
두 팀의 점수 차이로 승·무·패 확률을 뽑습니다. 과거 수만 경기에서 “이만큼 점수 차가 나면 실제로 어떤 결과가 얼마나 나왔나”를 학습해 홈승/무/원정승 확률로 바꿉니다.
3
‘몇 대 몇’까지 예측합니다. 각 팀이 평균 몇 골 넣을지를 계산해 스코어 분포를 만들고, 거기서 언더/오버(총 득점)와 핸디캡(득점 차)까지 뽑아냅니다.
4
대회를 2만 번 가상으로 돌립니다 (몬테카를로). 주사위를 수만 번 굴리듯 대회 전체를 반복 시뮬레이션해서, 각 팀이 우승·4강·16강에 오를 확률을 셈합니다.
그리고 가장 중요한 질문 하나 — “우리 예측이 베팅 시장(배당)보다 정확할까?” 대회가 끝나면 같은 경기에 대해 우리 확률과 시장 확률의 정확도를 채점해서 확인합니다. 이게 이 프로젝트의 진짜 목적이에요.
참고: 실제 베팅을 위한 사이트가 아니라, 모델의 정확도를 검증·기록하는 학습용 프로젝트입니다.
더 궁금하다면: 실제 수식
아래는 위 4단계를 그대로 수식으로 적은 것입니다.
1. 팀 실력 점수 (Elo)
두 팀 점수 차로 기대 성적 E를 구하고(승=1·무=0.5·패=0 혼합):
실제 결과 S와 기대값의 차이만큼 점수를 올리고 내립니다:
쉽게: 가 ‘놀라움’. 예상대로면 거의 안 변하고, 이변일수록 크게 변합니다. =대회 중요도, =골 차, =홈 이점(+100).
2. 승·무·패 확률 (로지스틱 회귀)
경기 전 점수 차 하나로 세 결과의 확률을 만듭니다:
쉽게: “점수 차가 이 정도면 홈승 ○○%, 무 ○○%, 원정승 ○○%”를 과거 데이터로 학습한 표라고 보면 됩니다.
3. 스코어 → 언더/오버 · 핸디캡 (포아송)
각 팀의 기대 득점 λ를 점수 차로 추정하고,
스코어가 x:y로 날 확률을 구해(저점수 보정 Dixon-Coles 포함),
여기서 오버 2.5는 , 핸디캡은 득점 차 분포로 바로 계산됩니다.
4. 정확도 점수 (Brier)
예측 확률과 실제 결과가 얼마나 가까운지 잰 값(낮을수록 정확):
| 예측 방식 | Brier |
|---|---|
| 그냥 ⅓씩 찍기 | 0.6667 |
| 과거 평균 비율로 찍기 | 0.6385 |
| 우리 모델 | 0.5056 |
5. 시장(배당) 확률과 비교
소수 배당을 확률로 바꿀 때는 역수를 합으로 나눠 수수료(마진)를 제거합니다:
쉽게: 같은 경기에서 우리 확률 vs 시장 확률의 Brier를 비교해, 누가 더 정확했는지 대회 후 채점합니다.
전체 수식·코드는 docs/MATH.md 에 더 자세히 있습니다.