Dit is het Monte Carlo-deel. Het is een lus in vijf stappen:
- Beoordeel elk team op basis van resultaten, xG en andere factoren.
- Bepaal de koers voor alle resterende wedstrijden met het wedstrijdmodel hierboven.
- Speel elke wedstrijd één keer willekeurig, trek een score uit die kansen en voeg de punten toe aan de ranglijst. Wedstrijden die al gespeeld zijn, blijven exact zoals ze waren.
- Herhaal het hele seizoen duizendvoudig. 10.000 simulaties is een veelgebruikte keuze, en elke simulatie is een mogelijke versie van 2026/27.
- Tellen. De kans op de titel is het aandeel van simulaties waarin een team als eerste eindigde. De kans op degradatie is het aandeel waarin ze op plek 18, 19 of 20 eindigden.
Die bekende percentages zijn gewoon tellingen. Winnen de league in 4.300 van de 10.000 gesimuleerde seizoenen en je staat op 43%. Met 50 van de 380 wedstrijden gespeeld op 20 september, speelt een Premier League-model in elke simulatie ongeveer 330 wedstrijden.
Hieronder is een werkende versie voor een fictief vierpottenkampioenschap dat thuis en uit speelt. Het is in een minuut te lezen:
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)} # (aanval, verdediging)
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})
Draai het en de Reds, comfortabel het beste team op papier, winnen de titel in alleen ongeveer 53% van de seizoenen. De Blues pakken ruwweg 31%, de Whites rond de 11% en de Greens zo'n 4-5%. De Reds verslaan de Greens thuis 70% van de tijd, en over een kort seizoen mis het beste team nog steeds bijna de helft van de tijd. Zo lawaaiig is voetbal.