Mengapa Odds Mentah Tidak Berjumlah 100%
Ini adalah salah satu momen "aha" ketika saya pertama kali mulai bekerja dengan data odds. Saya mengonversi semua hasil ke probabilitas tersirat, menjumlahkannya, dan mendapat... 104%. Lalu 106%. Kadang 110%.
Persentase ekstra itu disebut margin (atau overround, vig, juice). Memahaminya sangat penting untuk siapa pun yang melakukan analisis data olahraga serius.
Matematika Di Balik Margin
Dalam pasar teori "adil", probabilitas tersirat akan berjumlah tepat 100%:
| Hasil | Odds Adil | Prob Tersirat |
| Menang Kandang | 2.50 | 40% |
| Seri | 3.33 | 30% |
| Menang Tandang | 3.33 | 30% |
| Total | 100% |
| Hasil | Odds Aktual | Prob Tersirat |
| Menang Kandang | 2.38 | 42.0% |
| Seri | 3.17 | 31.5% |
| Menang Tandang | 3.17 | 31.5% |
| Total | 105% |
Mengapa Ini Penting Untuk Model ML
Saat membangun model prediksi, Anda punya dua pilihan untuk menggunakan odds sebagai fitur:
1. Gunakan probabilitas tersirat mentah
Sederhana, tapi termasuk noise dari margin yang bervariasi per pasar dan sumber.
2. Normalkan untuk menghapus margin
```
Probabilitas Benar = Prob Tersirat Mentah / Jumlah Semua Prob
Di OddsFlow, kami biasanya menormalkan saat menggunakan odds sebagai target kalibrasi, tapi mempertahankan nilai mentah saat melacak pergerakan pasar (karena perubahan margin sendiri bisa informatif).
Variasi Margin Berdasarkan Sumber
Sumber data berbeda memiliki margin khas berbeda:
| Tipe Sumber | Margin Khas |
| Pasar sharp (Pinnacle) | 2-3% |
| Operator utama | 4-6% |
| Operator kecil | 7-10%+ |
Menggunakan Margin Sebagai Fitur
Inilah sesuatu yang kami temukan: perubahan margin dari waktu ke waktu bisa prediktif. Ketika margin mengencang (bergerak menuju 100%), sering menunjukkan kepastian pasar meningkat. Ketika melebar, mungkin ada asimetri informasi.
Kami melacak margin bersama odds mentah dalam pipeline pra-pemrosesan kami.
Perhitungan Praktis
`python
def calculate_margin(decimal_odds: list) -> float:
implied_probs = [1/odds for odds in decimal_odds]
return sum(implied_probs) - 1
Contoh: pasar 1X2
odds = [2.38, 3.17, 3.17] margin = calculate_margin(odds) # Mengembalikan 0.05 (5%) ``📖 Bacaan terkait: Probabilitas Tersirat Dijelaskan • Analisis Pergerakan Odds
*OddsFlow menyediakan analisis olahraga bertenaga AI untuk tujuan pendidikan dan informasi.*

