Hier ist der Monte-Carlo-Teil. Es ist eine fünfteilige Schleife:
- Bewerte jedes Team anhand der Ergebnisse, xG und allem, was sonst noch einfließt.
- Bewerte jedes verbleibende Spiel mit dem oben genannten Match-Modell.
- Spiele jedes Spiel einmal zufällig, ziehe eine Torspiel aus diesen Wahrscheinlichkeiten und füge die Punkte in die Tabelle ein. Bereits gespielte Partien bleiben exakt so, wie sie ausgegangen sind.
- Wiederhole die ganze Saison tausendfach. 10.000 Durchläufe sind eine gängige Wahl, und jeder Durchlauf ist eine mögliche Version von 2026/27.
- Zähle. Die Titelchance ist der Anteil der Durchläufe, in denen ein Team auf Platz 1 landete. Die Abstiegschance ist der Anteil, in dem sie auf Platz 18, 19 oder 20 endeten.
Diese berühmten Prozentzahlen sind nichts anderes als Zählungen. Gewinne die Liga in 4.300 von 10.000 simulierten Saisons, und du liegst bei 43 %. Mit 50 von 380 gespielten Partien bis zum 20. September spielt ein Premier-League-Modell in jedem Durchlauf rund 330 Spiele.
Unten ist eine funktionierende Version für eine fiktive Vierer-Liga, die zu Hause und auswärts spielt. Es dauert eine Minute, sie zu lesen:
import random, math
random.seed(7)
teams = {"Reds": (1,9, 0,9), "Blues": (1,7, 1,0), "Whites": (1,4, 1,2), "Greens": (1,2, 1,3)} # (Angriff, Abwehr)
AVG, HOME = 1,35, 1,15
def poisson(lam):
L, k, p = math.exp(-lam), 0, 1,0
while True:
p *= random.random()
if p <= L:
return k
k += 1
def play(h, a):
lam_h = AVG * (teams[h][0] / AVG) * (teams[a][1] / AVG) * HOME
lam_a = AVG * (teams[a][0] / AVG) * (teams[h][1] / AVG) / HOME
return poisson(lam_h), poisson(lam_a)
fixtures = [(h, a) for h in teams for a in teams if h != a]
N, titles = 10_000, dict.fromkeys(teams, 0)
for _ in range(N):
pts, gd = dict.fromkeys(teams, 0), dict.fromkeys(teams, 0)
for h, a in fixtures:
x, y = play(h, a)
gd[h] += x - y; gd[a] += y - x
if x > y: pts[h] += 3
elif x < y: pts[a] += 3
else: pts[h] += 1; pts[a] += 1
champion = max(teams, key=lambda t: (pts[t], gd[t], random.random()))
titles[champion] += 1
print({t: titles[t] / N for t in teams})
Führe es aus und die Reds, die auf dem Papier mit Abstand die beste Mannschaft sind, gewinnen den Titel in nur etwa 53 % der Saisons. Die Blues holen sich rund 31 %, die Whites ungefähr 11 % und die Greens etwa 4-5 %. Die Reds schlagen die Greens zu Hause 70 % der Zeit, und über eine kurze Saison verpasst die beste Mannschaft immer noch fast die Hälfte der Zeit. So laut ist der Fußball.