startet am 11. Juni mit 48 Mannschaften, 104 Spielen und der üblichen Lawine heißer Takes. Ich wollte eine Prognose, die ich tatsächlich verteidigen konnte. Nicht nur ein cooles Modell für maschinelles Lernen mit guten Ergebnissen, sondern ein Modell, bei dem jede Zahl auf eine explizite Annahme zurückgeht, über die ich streiten könnte.
In diesem Artikel wird diese Prognose von Grund auf erstellt. Es ist bewusst einfach: Bewerten Sie jedes Staff, wandeln Sie jedes Spiel in eine Torverteilung um und simulieren Sie das gesamte Turnier zehntausende Male.
Das hört sich vielleicht sehr fußballspezifisch an, aber so ziemlich alles in diesem Artikel, von der Methodik bis zur Artwork und Weise, wie wir Ergebnisse interpretieren, ist universell für die Datenwissenschaft. Tauschen Sie „Groups“ gegen Vertriebsmitarbeiter, Liefertermine, Serverauslastungen oder Abwanderungskohorten aus, und mit denselben drei Schritten erhalten Sie eine vertretbare Prognose anstelle einer Punktschätzung.
Die wirklich übertragbare Fähigkeit besteht hier darin, eine Pipeline aufzubauen, in der jede Zahl auf eine Annahme zurückgeht, über die Sie streiten können, und nicht auf eine, die Ihnen ein Black-Field-Modell für maschinelles Lernen verbirgt.
In unserem Fußball-Fall bedeutet das: Keine Monitoring-Daten, kein Deep Studying, nichts, was man nicht an einem Nachmittag neu aufbauen könnte. Aber hören Sie hier nicht auf zu lesen! Es geht nicht um Raffinesse. Es geht um eine transparente Pipeline, die Sie dazu zwingt, sich genau den Modellierungsentscheidungen zu stellen, die Black Bins verbergen. Wir erstellen unser Modell in drei Schritten und hinterfragen bei jedem Schritt die Annahmen.
Schritt 1: Bewerten Sie jedes Staff mit Elo
Man kann ein Spiel nicht vorhersagen, wenn man nicht angibt, wie intestine jede Mannschaft ist. Die sauberste Standardoption für Nationalmannschaften ist die Weltfußball-Elo-Bewertungeine Adaption des Schachsystems von Arpad Elo.
Elo ist eine einzelne selbstkorrigierende Gleichung. Jedes Staff trägt eine Wertung R. Vor einem Spiel ist das erwartete Ergebnis von Staff A gegen Staff B (auf einer Skala von 0–1, wobei 1 ein Sieg ist) eine logistische Funktion des Bewertungsunterschieds:
E_A = 1 / (1 + 10^(-(R_A - R_B) / 400))
Nach dem Spiel verschieben Sie die Wertung dahingehend, was tatsächlich passiert ist:
R_A' = R_A + Okay * (S_A - E_A),
Wo S_A ist das realisierte Ergebnis (1 Sieg, 0,5 Unentschieden, 0 Niederlage) und Okay steuert, wie schnell sich die Bewertungen ändern. Die Fußballvariante fügt zwei wichtige Falten hinzu: Okay skaliert mit der Vorsprung des Sieges (eine Wertung von 4–0 Zügen ist höher als eine 1–0) und es gewichtet Pflichtspiele über Freundschaftsspielen. Die Konstante 400 ist eine Skalenwahl – sie sorgt dafür, dass ein Abstand von 400 Punkten ungefähr einem Favoriten von 10:1 entspricht (E ≈ 0.91).
Für das Modell benötigen wir lediglich die aktuellen Bewertungen, gespeichert als Wörterbuch. Ich verwende den Schnappschuss vor dem Turnier von Anfang Juni 2026, aufgenommen von a frei wiederverwendbarer Kaggle-Datensatz das diese Bewertungen zusammenstellt:
# World Soccer Elo Scores, pre-tournament snapshot (early June 2026).
# Supply: "2026 FIFA World Cup — Historic Elo Scores" (Kaggle, CC BY-SA 4.0),
# compiling information from World Soccer Elo Scores (eloratings.web).
ELO = {
"Spain": 2155, "Argentina": 2113, "France": 2062,
"England": 2020, "Brazil": 1988, "Portugal": 1984,
"Colombia": 1977, "Netherlands": 1944, "Germany": 1925,
# ... all 48 certified groups
}
Annahmeprüfung: Elo fasst alles – Kind, Kaderqualität, Ermüdung – in einer Zahl zusammen und geht davon aus, dass die Stärke eines Groups auf kurze Sicht ungefähr gleich bleibt. Das ist eine starke Vereinfachung, aber sie ist ehrlich und überprüfbar, und Elo ist als einzelnes Function kaum zu übertreffen.
Schritt 2: Wandeln Sie eine Bewertungslücke in eine Zielverteilung um
Ein Bewertungsunterschied gibt uns einen Sieg Wahrscheinlichkeitaber wir wollen ein Turnier simulieren Spielstände – Sie bestimmen die Tordifferenz, den Gruppen-Tiebreaker und die Struktur der Sache. Der Standardschritt in der Fußballanalyse besteht darin, die Ziele jeder Mannschaft als zu modellieren Poisson-Prozess.
Die Poisson-Verteilung gibt die Wahrscheinlichkeit der Beobachtung an ok Ereignisse, bei denen Ereignisse unabhängig voneinander mit einer konstanten Durchschnittsrate auftreten λ:
P(ok targets) = λ^ok * e^(-λ) / ok!
Tore passen empirisch intestine dazu: Sie sind diskret, relativ selten und innerhalb eines Spiels nahezu erinnerungslos. Wenn wir die Anzahl der Tore beider Groups als unabhängige Poisson-Variablen mit Mittelwerten behandeln λ_home Und λ_awaydie vollständige Scoreline-Verteilung ist nur das äußere Produkt ihrer beiden PMFs, und wir können die Gewinn-/Unentschieden-/Verlustwahrscheinlichkeiten durch Summieren der entsprechenden Zellen ablesen:
from scipy.stats import poisson
import numpy as np
def match_probs(lam_home, lam_away, max_goals=10):
h = poisson.pmf(np.arange(max_goals + 1), lam_home)
a = poisson.pmf(np.arange(max_goals + 1), lam_away)
grid = np.outer(h, a) # grid(i, j) = P(dwelling i, away j)
p_home = np.tril(grid, -1).sum() # dwelling targets > away targets
p_draw = np.hint(grid)
p_away = np.triu(grid, 1).sum()
return p_home, p_draw, p_away
Annahmeprüfung: Die Unabhängigkeitsannahme ist praktisch, aber unvollkommen – echte Ergebnislinien zeigen Korrelation und einen Überschuss an Unentschieden mit niedriger Punktzahl (0–0, 1–1). Der Customary-Repair ist der Dixon–Coles Anpassung, die einen Low-Rating-Korrekturterm und eine Time-Decay-Gewichtung für historische Übereinstimmungen hinzufügt. Der Klarheit halber überspringen wir es hier. Es ist ein natürliches Improve und genau die Artwork von Verfeinerung, die mir gefällt kommendes BuchDas Poisson-Kapitel geht durch.
Schritt 3: Bewertungen mit Zielen verknüpfen
Wir brauchen λ_home Und λ_away als Funktion der Elo-Lücke. Ein belastbarer Teil der Fußballmodell-Folklore besagt, dass ein Elo-Vorsprung von ~400 Punkten ungefähr ein Tor Überlegenheit wert ist. Daher haben wir einen Ausgangswert von ca. 2,7 Gesamttoren (ein typischer internationaler Durchschnitt) zwischen den Groups entsprechend ihrer Bewertungsdifferenz aufgeteilt:
GOALS_BASE = 2.7
GOALS_PER_400_ELO = 1.0
def lambdas(elo_a, elo_b):
diff = (elo_a - elo_b) / 400.0 * GOALS_PER_400_ELO
la = max(0.15, GOALS_BASE / 2 + diff / 2)
lb = max(0.15, GOALS_BASE / 2 - diff / 2)
return la, lb
Die Untergrenze von 0,15 verhindert, dass selbst einem großen Außenseiter eine nicht-physische unfavorable Bewertungsquote zugewiesen wird. Eine prinzipiellere Model passt log(λ) = β₀ + β₁·Δrating als Poisson-GLM auf realen Spieldaten; Die obige lineare Supremacy-Heuristik ist die Again-of-Envelope-Model und landet bei den Favoriten an derselben Stelle.
Schritt 4: Simulieren Sie das Turnier 10.000 Mal
Eine einzelne Simulation ist keine Prognose, sondern nur ein mögliches Jahr 2026. Die Prognose ist die Verteilung über Tausende von ihnen. Wir durchlaufen additionally die gesamte Runde und zählen, wie oft jedes Staff gewinnt.
Das Format 2026 ist neu und präzisiert: 48 Groups in 12 Vierergruppen, wobei die beiden Erstplatzierten jeder Gruppe plus die acht besten Drittplatzierten Erreichen Sie eine Okay.-o.-Runde mit 32 Mannschaften.
Diese Regel des dritten Platzes ist ein ziemlicher kombinatorischer Kniff, weil man nicht entscheiden kann, wer weiterkommt, bis jede Gruppe fertig ist. Daher verfolgt die Simulation Punkte und Tordifferenz für alle vier Groups in jeder Gruppe, ordnet die drittplatzierten Groups in allen Gruppen ein und ermittelt die besten acht. In den Okay.-o.-Runden geht ein Unentschieden ins Elfmeterschießen, was wir als einen Beinahe-Münzenwurf modellieren, der leicht in Richtung der stärkeren Seite verschoben wird.
N = 10_000
title = {t: 0 for t in ELO}
for _ in vary(N):
champion = simulate_one_tournament() # teams -> R32 -> ... -> last
title(champion) += 1
probs = {t: title
Warum 10.000? Denn eine simulierte Wahrscheinlichkeit ist selbst eine Schätzung mit Stichprobenfehler. Eine Titelwahrscheinlichkeit p geschätzt von N Unabhängige Turniere haben einen Standardfehler von sqrt(p(1-p)/N). Für einen 15 %-Favoriten bei N = 10,000das sind etwa 0,36 Prozentpunkte – knapp genug, dass das Rating stabil ist und die Prime-Zahlen zwischen den Läufen nicht schwanken. Gehen Sie zu N = 500 und der Standardfehler vervierfacht sich und noch mehr auf ~1,6 Punkte, genug, um das Mittelfeld neu zu mischen. Vektorisieren der Simulation (alles zeichnen). N Turniere als Array-Operationen statt einer Python-Schleife) macht mehr als 20.000 Läufe im Wesentlichen kostenlos.
Was das Modell sagt
Staff
Gewinnwahrscheinlichkeit
Spanien
16,0 %
Argentinien
11,9 %
Frankreich
7,9 %
England
7,0 %
Brasilien
5,4 %
Niederlande
4,7 %
Portugal
4,3 %
Deutschland
3,7 %
Tabelle 1: Mögliche Ergebnisse der Weltmeisterschaft nach Modell. Quelle: Autor.
Zwei Dinge fallen auf. Zuerst sitzt der Favorit herum 15 %, nicht 50 %. Selbst das beste Staff der Welt ist weitaus wahrscheinlicher nicht einen Knockout mit 48 Mannschaften zu gewinnen, als ihn zu gewinnen – eine direkte Folge der Poisson-Varianz in einer Sportart mit geringer Punktzahl, die sich über sieben Win-or-Go-Residence-Spiele verschlimmert.
Zweitens liegen diese Zahlen bemerkenswert nahe an den Prognosen, die von weitaus ausgefeilteren statistischen Modellen veröffentlicht werden, die auf jahrelangen Spieldaten und Dutzenden von Merkmalen basieren. Das ist beruhigend: Eine transparente Elo-plus-Poisson-Pipeline gewinnt das meiste von dem zurück, was ein Schwergewicht-Prognosesystem produziert, weil beide letztendlich das Gleiche tun: Teamstärke auf Ergebniswahrscheinlichkeiten abbilden.
Was es richtig macht und was es auslässt
Das Modell ist ehrlich in seiner Einfachheit und jede Vereinfachung ist ein beschriftetes Zifferblatt, das Sie drehen können:
- Neutraler Veranstaltungsort. Jedes Spiel wird als impartial behandelt; Die Gastgeber (USA, Mexiko, Kanada) bekommen keinen Auftrieb. Das Hinzufügen eines Heimvorteilsbegriffs (~+50–100 Elo, historisch gesehen ein Drittel eines Tores wert) ist eine einzeilige Änderung.
- Statische Bewertungen. Elo ist beim Anpfiff erstarrt; Das Modell wird im Verlauf des Turniers nicht aktualisiert. Eine Neubewertung nach jeder Runde würde die Prognosen für die spätere Runde verbessern.
- Unabhängige Poisson-Tore. Keine Dixon-Coles-Low-Rating-Korrektur, keine explizite Draw-Inflation.
- Gesäte Klammer. Ich verwende ein gesetztes Knockout anstelle der genauen Runde-of-32-Karte der FIFA. Für die Titelquoten der Prime-Groups bewegt sich das kaum, ist aber für bestimmte Wege von Bedeutung.
Jedes davon ist das Thema eines Kapitels in dem von mir mitverfassten Buch. Fußballanalyse mit maschinellem Lernen (O'Reilly, 2026): das Poisson-Tormodell und seine Erweiterungen in Kapitel 6, Teambewertungen in Kapitel 8 und die Umwandlung von Wahrscheinlichkeiten in Wettentscheidungen in Kapitel 9. Dieser Artikel ist die Spielzeugversion dieser Pipeline – und ein Spielzeug, das Sie tatsächlich an einem Nachmittag ausführen können.
Probieren Sie es selbst aus
Viele weitere Beispiele finden Sie im Buch GitHub-Repository – Klonen Sie es, lassen Sie die heutigen Elo-Werte fallen, und Sie haben schneller Ihre eigene WM-Prognose, als Sie Claude auffordern können.
In einem anderen Artikel erfahren Sie, wie ich diese Struktur neu aufbaue elf verschiedene Modelle, passen Sie es an reale Spieldaten an und sehen Sie zu, wie die FIFA vier verschiedene Champions krönt.
Mein Modell sagt vorerst Spanien. Das Turnier beginnt am 11. Juni. Wir werden es gemeinsam herausfinden.
Ari Joury ist Co-Autor von Fußballanalyse mit maschinellem Lernen (O'Reilly, 2026).
