Warum Rohe Quoten Nicht 100% Ergeben
Das war einer dieser "Aha"-Momente, als ich anfing mit Quotendaten zu arbeiten. Ich konvertierte alle Ergebnisse in implizite Wahrscheinlichkeiten, addierte sie und bekam... 104%. Dann 106%. Manchmal 110%.
Dieser zusätzliche Prozentsatz wird Marge (oder Overround, Vig, Juice) genannt. Ihn zu verstehen ist entscheidend für jeden, der ernsthafte Sportdatenanalyse betreibt.
Die Mathematik Hinter Den Margen
In einem theoretisch "fairen" Markt würden implizite Wahrscheinlichkeiten genau 100% ergeben:
| Ergebnis | Faire Quoten | Implizite Prob |
| Heimsieg | 2.50 | 40% |
| Unentschieden | 3.33 | 30% |
| Auswärtssieg | 3.33 | 30% |
| Gesamt | 100% |
| Ergebnis | Echte Quoten | Implizite Prob |
| Heimsieg | 2.38 | 42.0% |
| Unentschieden | 3.17 | 31.5% |
| Auswärtssieg | 3.17 | 31.5% |
| Gesamt | 105% |
Warum Das Für ML-Modelle Wichtig Ist
Beim Erstellen von Vorhersagemodellen haben Sie zwei Optionen, Quoten als Features zu verwenden:
1. Rohe implizite Wahrscheinlichkeiten verwenden
Einfach, aber enthält Rauschen von Margen, die nach Markt und Quelle variieren.
2. Normalisieren, um die Marge zu entfernen
```
Wahre Wahrscheinlichkeit = Rohe Implizite Prob / Summe Aller Probs
Bei OddsFlow normalisieren wir typischerweise, wenn wir Quoten als Kalibrierungsziele verwenden, behalten aber Rohwerte beim Verfolgen von Marktbewegungen (da Margenänderungen selbst informativ sein können).
Margenvariation Nach Quelle
Verschiedene Datenquellen haben verschiedene typische Margen:
| Quellentyp | Typische Marge |
| Sharp-Märkte (Pinnacle) | 2-3% |
| Hauptoperatoren | 4-6% |
| Kleinere Operatoren | 7-10%+ |
Margen Als Feature Verwenden
Hier ist etwas, das wir entdeckt haben: Margenänderungen über die Zeit können prädiktiv sein. Wenn Margen enger werden (sich 100% nähern), deutet das oft auf erhöhte Marktsicherheit hin. Wenn sie weiter werden, kann Informationsasymmetrie vorliegen.
Wir verfolgen die Marge zusammen mit Rohquoten in unserer Preprocessing-Pipeline.
Praktische Berechnung
`python
def calculate_margin(decimal_odds: list) -> float:
implied_probs = [1/odds for odds in decimal_odds]
return sum(implied_probs) - 1
Beispiel: 1X2-Markt
odds = [2.38, 3.17, 3.17] margin = calculate_margin(odds) # Gibt 0.05 (5%) zurück ``📖 Verwandte Lektüre: Implizite Wahrscheinlichkeit Erklärt • Quotenbewegungsanalyse
*OddsFlow bietet KI-gestützte Sportanalyse für Bildungs- und Informationszwecke.*

