Defensiv- & Tor-Raten

Feature #6

Ratenbasierte binaere Metriken, die das Tor-Verhalten eines Teams charakterisieren: Clean Sheet Rate, Failed-to-Score Rate und BTTS Rate. Besonders kritisch fuer BTTS-Vorhersagen und sehr wichtig fuer Over/Under-Maerkte, da sie direkt messen, wie oft bestimmte Tor-Ereignisse eintreten.

Ueberblick

Rate-Features sind binaere Metriken (0 oder 1 pro Spiel), die messen, wie haeufig ein Team bestimmte Torereignisse erlebt. Im Gegensatz zu kontinuierlichen Tor-Durchschnitten (Average Goals) liefern sie ein distributionales Signal: Ein Team mit avg_ga = 1.2 koennte in jedem Spiel genau 1 Tor kassieren (CS% = 0%) oder abwechselnd 0 und 2+ Tore kassieren (CS% = 50%) — voellig unterschiedliche Defensiv-Profile.

FeatureFormelWertebereichPrimaer fuer
Clean Sheet Rate (CS%)Spiele ohne Gegentor / Gesamtspiele0.0 – 1.0BTTS, O/U
Failed-to-Score Rate (FTS%)Spiele ohne eigenes Tor / Gesamtspiele0.0 – 1.0BTTS
BTTS RateSpiele mit Toren beider Teams / Gesamtspiele0.0 – 1.0BTTS

Hinweis: Scoring Rate (SR%) wird nicht separat gespeichert, da SR% = 1 - FTS% (perfekte Kollinearitaet). Das ML-Modell kann SR% trivial ableiten.

Mehrwert gegenueber Average Goals

Trotz hoher Korrelation mit den bereits implementierten Tor-Durchschnitten liefern Rate-Features distinkte Signale:

Average GoalsRate FeaturesUnterschied
avg_ga = 1.2CS% = 0%Jedes Spiel genau 1 Tor kassiert — konstant durchlaessig
avg_ga = 1.2CS% = 50%Abwechselnd 0 und 2+ Tore — unberechenbar
avg_gf = 1.5FTS% = 10%Trifft fast immer — zuverlaessig
avg_gf = 1.5FTS% = 40%Trifft oft nicht — schwankend, Under-Indikator

Fuer BTTS ist die binaere Frage "Hat das Team getroffen/kassiert?" direkt relevant — avg_ga beantwortet "Wie viele Tore?", eine verwandte, aber andere Frage. Tree-basierte Modelle (XGBoost/LightGBM) finden in Rate-Features andere Split-Punkte als in kontinuierlichen Averages.

Berechnung

Rolling Windows

Alle Raten werden ueber drei Zeitfenster berechnet, analog zu den anderen Feature-Modulen:

rate = count(Ereignis) / Gesamtspiele_im_Window

Windows: 5, 10, Season
Gewichteter Avg: 0.5 * rate_5 + 0.3 * rate_10 + 0.2 * rate_season
Wertebereich: [0.0, 1.0]

Rate-Features sind in kurzen Windows weniger volatil als Tor-Durchschnitte: Ein 5:0 verschiebt CS% bei 5 Spielen nur um -0.2 (wie ein 1:0), aber avg_ga um +0.6. Dafuer geht Information verloren — ein 5:0 und ein 1:0 haben denselben Effekt auf CS%.

Team-Level Features (pro Team)

cs_rate_5, cs_rate_10, cs_rate_season, cs_rate_avg    (Clean Sheet)
fts_rate_5, fts_rate_10, fts_rate_season, fts_rate_avg  (Failed-to-Score)
btts_rate_5, btts_rate_10, btts_rate_season, btts_rate_avg  (BTTS)
matches_total                                           (Confidence)

→ 13 Features pro Team

Match-Level Features

home_cs_rate_avg      Heim-Team gewichtete CS Rate
away_cs_rate_avg      Auswaerts-Team gewichtete CS Rate
home_fts_rate_avg     Heim-Team gewichtete FTS Rate
away_fts_rate_avg     Auswaerts-Team gewichtete FTS Rate
home_btts_rate_avg    Heim-Team gewichtete BTTS Rate
away_btts_rate_avg    Auswaerts-Team gewichtete BTTS Rate
cs_rate_diff          home_cs - away_cs  (Defensiv-Differenz)
fts_rate_diff         home_fts - away_fts  (Offensiv-Schwaeche)
btts_rate_sum         home_btts + away_btts  (Kombinierte Tendenz)
btts_proxy            Interaktions-Proxy (siehe unten)

→ 13 Match-Level Features (inkl. Metadaten)

BTTS-Proxy-Berechnung

Der BTTS-Proxy kombiniert die individuellen Team-Raten zu einer approximierten BTTS-Wahrscheinlichkeit unter Unabhaengigkeitsannahme:

btts_proxy = P(Heim kassiert) * P(Auswaerts trifft)
           * P(Auswaerts kassiert) * P(Heim trifft)

         = (1 - home_cs_rate) * (1 - away_fts_rate)
           * (1 - away_cs_rate) * (1 - home_fts_rate)

Rechenbeispiel

Heim: CS% = 30%, FTS% = 10%
Auswaerts: CS% = 15%, FTS% = 20%

btts_proxy = (1 - 0.30) * (1 - 0.20) * (1 - 0.15) * (1 - 0.10)
           = 0.70 * 0.80 * 0.85 * 0.90
           = 0.4284

Empirisch: Wenn beide Teams CS% < 25% und FTS% < 20% haben, liegt die BTTS-Wahrscheinlichkeit typischerweise ueber 70%.

Typische Wertebereiche

Clean Sheet Rate nach Team-Tier

Team-TierCS% GesamtCS% HeimCS% Auswaerts
Elite (Man City, Bayern)40–55%50–65%30–45%
Starkes Mittelfeld25–35%30–45%15–25%
Durchschnitt20–30%25–35%10–20%
Schwach / Abstieg10–20%15–25%5–15%
Liga-Durchschnitt~27%~33%~22%

BTTS Rate nach Liga

LigaBTTS% (2024/25)Bemerkung
Superligaen (Daenemark)~65%Sehr offen
Ligue 160–65%Hoechster Wert unter Big 5
Premier League57–60%Hoch
Bundesliga55–60%Hoch
La Liga50–54%Moderat
Serie A48–52%Eher defensiv
Globaler Durchschnitt50–55%

Individuelle Teams: Defensiv-Teams erreichen BTTS-Raten von 30–35%, offene Angriffsteams 70–80%.

Praediktive Kraft nach Wettmarkt

BTTS (Both Teams to Score)

Rate-Features sind die wichtigsten Praediktoren fuer den BTTS-Markt. SHAP-Analysen identifizieren CS% und FTS% konsistent als Top-Features. Die Kombination aus CS% und FTS% beider Teams ermoeglicht eine direkte BTTS-Proxy-Berechnung, die den Buchmacher-Margin approximiert.

Over/Under 2.5

CS% liefert ein distributionales Signal, das Tor-Durchschnitte nicht erfassen: Wenn ein Team ein Clean Sheet haelt, betraegt die maximale Torzahl nur die Tore des Gegners allein. Fuer Over 2.5 muesste das torschiesende Team 3+ Tore alleine erzielen — nur in ~15–20% der Spiele.

1X2 (Match Result)

Fuer 1X2-Vorhersagen ergaenzend: CS Rate Diff misst relative Defensivstaerke. Elo-Rating, Implied Probability und PPG sind insgesamt deutlich staerker fuer diesen Markt.

FeatureBTTSO/U 2.51X2
CS RateKritischSehr wichtigErgaenzend
FTS RateKritischWichtigGering
BTTS RateKritischWichtig
BTTS ProxyKritischWichtig

Statistische Signifikanz

Rate-Features folgen einer Binomialverteilung. Das Konfidenzintervall fuer eine Rate p nach n Spielen:

CI = p ± z * sqrt(p * (1 - p) / n)
Gespielte Spiele95% CI-BreiteZuverlaessigkeit
5± 40%Sehr unzuverlaessig
10± 28%Marginal nuetzlich
15± 23%Wird zuverlaessig
20± 20%Zuverlaessig
38 (volle Saison)± 15%Beste Within-Season-Genauigkeit

Rate-Features stabilisieren sich etwas schneller als Tor-Durchschnitte, da sie weniger von Extremergebnissen beeinflusst werden. Ein 5:0 verschiebt avg_gf bei 5 Spielen um +0.6, aber CS% und FTS% nur wie ein 1:0. Dennoch werden ca. 15–20 Spiele benoetigt.

Korrelation mit vorhandenen Features

Vorhandenes FeatureRate-FeatureKorrelationRedundanz
avg_ga (Goals Against)CS Rate-0.70 bis -0.85
Hoch
avg_gf (Goals For)FTS Rate-0.65 bis -0.80
Hoch
avg_total (Total Goals)BTTS Rate0.50 bis 0.65
Moderat
elo_diff (Elo Rating)CS Rate0.40 bis 0.55
Niedrig

Trotz hoher Korrelation liefern Rate-Features distinkte Information: CS% misst die Haeufigkeit der Null, avg_ga die Intensitaet des Kassierens. Tree-basierte Modelle (XGBoost/LightGBM) koennen andere Split-Punkte in Rate-Features finden. Multikollinearitaet ist bei Tree-Modellen weniger problematisch als bei linearen Modellen.

Design-Entscheidungen

AspektEntscheidungBegruendung
Scoring RateNicht gespeichertSR% = 1 - FTS% (perfekte Kollinearitaet)
Heim/Auswaerts-SplitsNur kombinierte RatenSample-Size-Halbierung; H/A-Signal durch PPG abgedeckt
Liga-NormalisierungImplizit (Phase 1)Match-Differenzen normalisieren innerhalb einer Liga
BTTS ProxyHinzugefuegtDirekt relevanter Praediktor aus Interaktion der Raten
GruppierungEin Modul rates.pyGleiche Datenquelle, Berechnungslogik und Windows

Quellen

  • Dixon & Coles (1997): "Modelling Association Football Scores and Inefficiencies in the Football Betting Market"
  • Data-driven prediction of soccer outcomes (Journal of Big Data, 2025)
  • Evaluating Soccer Match Prediction Models (arXiv 2309.14807)
  • A Predictive Analytics Framework (ScienceDirect, 2024)
  • Beat the Bookie: "Inflated ML Poisson Model to Predict Football Matches"
  • FootyStats: "Both Teams to Score Stats"
  • OddAlerts: "Clean Sheet Stats"
  • Twenty3 Sport: "Sample Size in Football Analytics"
  • Significance Magazine: "How to Identify Goal Scoring Ability in Football"