Wie wordt wereldkampioen?
De voetbalgekte doet stilaan weer de intrede, want het WK Voetbal in Qatar staat nu echt wel voor de deur. Is het "Oranje boven" na de finale op 18 december? Of kan de Belgische gouden generatie dan toch hun bijnaam eens waar maken? Kan titelverdediger Frankrijk weerstaan aan de druk op hun schouders? Of zullen Messi of Ronaldo op hun (waarschijnlijk) laatste WK een laatste kunststukje uitvoeren en hun land naar de wereldtitel leiden? De toekomst zal het allemaal uitwijzen, maar wij wagen ons in dit artikel alvast aan een wiskundige voorspelling.
Aangezien voetbalwedstrijden in de realiteit nogal complexe gebeurtenissen zijn, hebben we behoefte aan een wiskundig model voor onze voorspellingen. Een model is een vereenvoudigde weergave van de werkelijkheid, waarin we enkele veronderstellingen zullen maken om het onszelf makkelijker te maken bepaalde zaken te berekenen en uitspraken te doen. Stap voor stap zullen we ons model opbouwen en complexer maken, hopende dat we telkens een iets betere weergave van de werkelijkheid kunnen maken zonder dat het geheel té ingewikkeld wordt.
Laat ons om te beginnen bij wijze van voorbeeld eens kijken naar de openingswedstrijd van het Nederlands elftal op dit WK: Senegal – Nederland op 21 november. Los van eventuele persoonlijke voorkeur willen we weten wie (wiskundig gezien) de meeste kans heeft om deze partij te winnen. Maar hoe bepaal je dat? In eerste instantie kan je bijvoorbeeld naar de plaats op de officiële FIFA-ranking kijken om te besluiten dat Nederland (plaats 8) meer kans heeft om te winnen dan Senegal (plaats 18). Maar die FIFA-ranking heeft een beetje een negatieve reputatie: tot enkele jaren geleden was er namelijk veel kritiek op de manier waarop de FIFA zijn ranking berekende. Daarom is in 2018 het systeem aangepast door gebruik te maken van een berekening gebaseerd op het elo-systeem in de hoop zo een correctere rangschikking te kunnen publiceren.
Elo-rating
Het elo-systeem werd ontwikkeld door de Amerikaanse natuurkundige Arpad Elo (1903—1992) met als bedoeling de sterkte van een schaker zo goed mogelijk aan te duiden door middel van een getal: diens elo-rating. Op basis van die ratings kan men dan een inschatting maken van de winstkansen tegen andere spelers. Afhankelijk van die kans en de uiteindelijke uitslag van een partij, wordt dan voor beiden een nieuwe rating berekend. Volgens het originele elo-systeem gaat dat volgens deze formule:
$$R_N=R_O+K\left(W-W_E\right).$$
Hierin is
- $R_N$ de nieuwe rating;
- $R_O$ de oude rating;
- $K$ een evenredigheidsfactor;
- $W$ de uitslag: 1 voor winst, ½ voor gelijkspel (of remise in schaaktermen), 0 voor verlies;
- $W_E$ de winstkans, berekend volgens de formule $W_E=\frac{1}{1+10^{-dr/400}}$ met $dr$ het verschil in rating tussen beide spelers.
Hoewel dit systeem oorspronkelijk ontwikkeld werd voor de schaakwereld, wordt het ook gebruikt in andere sporten waar men 1 tegen 1 speelt.
We kunnen hetzelfde systeem dus ook gebruiken voor voetbalploegen, waarbij we de ploeg dan als 1 geheel of 1 speler beschouwen. De evenredigheidsfactor $K$ krijgt dan een waarde die afhangt van het belang van de wedstrijd, gaande van $20$ voor een vriendschappelijke wedstrijd tot $60$ voor wedstrijden op een WK.
We keren terug naar onze voorbeeldwedstrijd om dit systeem te verduidelijken: Senegal heeft momenteel een elo-rating van $1\,670$, Nederland heeft elo $2\,003$. Het verschil in rating ($dr$) is dus $2\,003 - 1\,670 = 333$, waardoor de winstkans (WE) voor Nederland uitkomt op (afgerond) $0{,}8718$ (of $87{,}18\%$). Omgekeerd zal de winstkans voor Senegal $0{,}1282$ zijn. Op basis van de FIFA-ranking wisten we al dat Nederland favoriet was, maar nu kunnen we ook een eerste getal plakken op hoe groot de kans is dat ze winnen.
Stel nu dat Nederland de openingswedstrijd wint, dan wordt de nieuwe rating voor Nederland berekent als $R_N = 2\,003 + 60\cdot(1 - 0{,}87) \approx 2\,011$, waarbij we afronden tot gehele getallen. Voor Senegal wordt dat $R_N = 1\,670 + 60\cdot(0 - 0{,}13) \approx 1\,662$. Maar als het een gelijkspel is, of als Senegal wint, krijgen we natuurlijk helemaal andere ratings:
Land | elo oud | elo nieuw | ||
SEN wint | Gelijkspel | NED wint | ||
Senegal | $1\,670$ | $1\,722$ | $1\,692$ | $1\,662$ |
Nederland | $2\,003$ | $1\,951$ | $1\,981$ | $2\,011$ |
Je ziet duidelijk dat een land minder ratingpunten wint als het grote favoriet is en een wedstrijd wint (Nederland krijgt hier 8 punten bij winst), tegenover een underdog die een partij wint (Senegal krijgt maar liefst 52 punten als ze winnen). Een andere observatie is dat het aantal punten dat het ene land wint precies gelijk is aan het aantal punten dat het andere verliest. Op internet kan je de elo-ratings van nationale voetbalploegen vinden. Hierbij worden nog twee aanpassingen aan bovenstaande methode toegevoegd:
- Een land dat een thuismatch speelt, krijgt bij de berekening van dr 100 punten extra om het thuisvoordeel mee in rekening te brengen.
- De evenredigheidfactor K wordt nog vermenigvuldigd met een factor afhankelijk van de precieze uitslag van de partij:
- maal $1$ bij gelijkspel of bij $1$ doelpunt verschil
- maal $1{,}5$ bij $2$ doelpunten verschil
- maal $1{,}75$ bij $3$ doelpunten verschil
- maal $\left(1{,}75+\frac{N-3}{8}\right)$ bij $N > 3$ doelpunten verschil
We kunnen nu voor een willekeurige wedstrijd berekenen wat de kans is dat een bepaald land wint dan wel verliest, maar als we een heel toernooi willen simuleren, heeft dit model nog twee belangrijke tekortkomingen:
- Een wedstrijd (in de groepsfase) kan ook op een gelijkspel eindigen. Die kansen worden nog nergens berekend.
- Als twee (of meer) landen met een gelijk aantal punten eindigen in de groepsfase, is het van belang om het doelsaldo (gemaakte doelpunten min tegendoelpunten) te weten. De winstkans die we via elo bereken, zegt echter niets over de precieze uitslag van een partij.
We hebben een verbeterd model nodig dat de uitslag van een wedstrijd kan voorspellen om voor deze twee problemen een oplossing te bieden.
Poisson-verdeling
Om ons model te verbeteren, kunnen we gebruikmaken van de Poisson-verdeling uit de kansrekening. Deze discrete kansverdeling is bedacht door de Franse wiskundige
Siméon Poisson (1781—1840). Het wordt gebruikt om de kans te berekenen dat een bepaald fenomeen zich een aantal keer voordoet binnen een gegeven tijdsinterval, gegeven dat je het verwachte aantal voorvallen in dat interval weet. Bijvoorbeeld: als je weet dat je gemiddeld $5$ berichtjes per dag krijgt op WhatsApp, kan je berekenen wat de kans is dat je vandaag precies $3$ berichtjes krijgt. Dat gebeurt volgens deze formule:
$$P(X=k)=\frac{\lambda^k}{k!}e^{-\lambda}.$$
Hierin is:
- $P(X =k)$ de kans dat het fenomeen $X$ zich precies $k$ keer voordoet binnen een gegeven tijdsinterval, met $k = 0, 1, 2, \dots$ een natuurlijk getal;
- $e$ de constante van Euler: $e = 2{,}71828\dots$;
- $k!$ de faculteit van $k$: $k! = 1 \times 2 \times 3 \times \dots \times k$;
- $\lambda$ een positief reëel getal gelijk aan het verwachte aantal voorvallen in het interval.
In ons voorbeeldje:
$$P(aantal\ WhatsApp{-}berichtjes\ vandaag = 3) = \frac{5^3}{3!}e^{-5}=\frac{125}{6}e^{-5}\approx0{,}140374.$$
Er is dus ongeveer $14\%$ kans dat we vandaag precies $3$ berichtjes zullen krijgen. Je kan bovenstaande kansen ook gemakkelijk met de computer uitrekenen, bijvoorbeeld met Excel door middel van de functie =POISSON.VERD(3;5;ONWAAR): het eerste argument is de waarde van $k$ waarvoor je de kans wilt berekenen, het tweede argument is de $\lambda$, en het derde is ONWAAR als je $P(X = k)$ wilt berekenen, of WAAR als je $P(X \le k) = P(X = 0) + P(X = 1) + \dots + P(X = k)$ wilt berekenen. We zoeken dus een goede manier om het verwachte aantal gescoorde doelpunten van een ploeg in een wedstrijd te berekenen op basis van gegevens uit het verleden. Het gemiddeld aantal gescoorde doelpunten per wedstrijd over een bepaalde periode nemen, zou wat kort door de bocht zijn: tegen een sterk land met een sterke verdediging is het aantal verwachte doelpunten waarschijnlijk lager dan tegen een ploeg met een zwakkere verdediging. We berekenen dus beter een aanvallende score voor het ene land, en een defensieve score voor het andere, om zo de combinatie van beide in rekening te kunnen brengen. Daarvoor hebben we de informatie uit de volgende tabel nodig:
Alle WK-landen | Senegal | Nederland | |
Wedstrijden | $2\,336$ | $76$ | $67$ |
Doelpunten DP/wedstrijd |
$4\,223$ $1{,}8078$ |
$115$ $1{,}5132$ |
$148$ $2{,}2090$ |
Tegendoelpunten TDP/wedstrijd |
$2\,058$ $0{,}8810$ |
$49$ $0{,}6447$ |
$65$ $0{,}9701$ |
We baseerden ons hierbij op alle gespeelde internationale wedstrijden sinds september 2016, grofweg de laatste zes jaar dus. Wedstrijden die daarvoor gespeeld werden, hebben weinig tot niets meer te maken met de ploegen die dit toernooi op het veld zullen staan, aangezien spelers, coaches en tactieken natuurlijk vrij snel veranderen. De aanvallende score van een land berekenen we als het gemiddeld aantal gemaakte doelpunten per wedstrijd van dat land, gedeeld door dat van alle landen. Voor Senegal is de aanvallende score dus gelijk aan $\frac{1{,}5132}{1{,}8078}=0{,}8370$. Voor Nederland is dit gelijk aan $\frac{2{,}2090}{1{,}8078}=1{,}2219$.
De defensieve score van een land berekenen we analoog als het gemiddeld aantal tegendoelpunten per wedstrijd van dat land, gedeeld door dat van alle landen. Voor Senegal is dat dus $\frac{0{,}6447}{0{,}8810}=0{,}7318$, voor Nederland $\frac{0{,}9701}{0{,}8810}=1{,}1012$.
Hiermee kunnen we berekenen wat het verwachte aantal doelpunten is dat Senegal tegen Nederland zal scoren: de aanvallende score van Senegal maal de verdedigende score van Nederland maal het gemiddeld aantal doelpunten per wedstrijd van alle teams, i.e. $0{,}8370 \times 1{,}1012 \times 1{,}8078 = 1{,}6663$. Anderzijds kunnen we ook berekenen dat we van Nederland verwachten dat ze $1{,}6166$ doelpunten zullen scoren tegen Senegal (aanvallende score van Nederland maal verdedigende score van Senegal maal gemiddeld aantal doelpunten per wedstrijd van alle teams). Uiteraard is er geen enkele voetbalwedstrijd die eindigt op $1{,}6663-1{,}6166$, maar we kunnen deze getallen wel gebruiken als de $\lambda$ in onze Poisson-formule:
Senegal | Nederland | |
$\lambda$ | $1{,}6663$ | $1{,}6166$ |
$k=0$ | $0{,}1889$ | $0{,}1986$ |
$k=1$ | $0{,}3148$ | $0{,}3210$ |
$k=2$ | $0{,}2623$ | $0{,}2595$ |
$k=3$ | $0{,}1457$ | $0{,}1398$ |
$k=4$ | $0{,}0607$ | $0{,}0565$ |
$k=5$ | $0{,}0202$ | $0{,}0183$ |
$k>5$ | $0{,}0073$ | $0{,}0063$ |
(Aangezien de totale kans per land precies gelijk moet zijn aan $1$, kan je die laatste rij berekenen als $1$ min de som van alle percentages erboven.) Met deze tabel zijn we nu in staat te berekenen wat de kans is op een bepaalde eindscore in de wedstrijd: de kans dat Nederland bijvoorbeeld wint met 3–2 is namelijk niets anders dan de kans dat Nederland $3$ goals scoort vermenigvuldigd met de kans dat Senegal er $2$ scoort, ofwel $0{,}1398 \times 0{,}2623 = 0{,}0367$. De kans op een 1–1-gelijkspel is dan $0{,}3148 \times 0{,}3210 = 0{,}1011$. Al die verschillende mogelijke uitslagen kunnen we ook in een grote tabel gieten.
Goals | Nederland | 0 | 1 | 2 | 3 | 4 | 5 | > 5 |
Senegal | Poisson | $0{,}1986$ | $0{,}3210$ | $0{,}2595$ | $0{,}1398$ | $0{,}0565$ | $0{,}0183$ | $0{,}0063$ |
0 | $0{,}1889$ | $0{,}0375$ | $0{,}0607$ | $0{,}0490$ | $0{,}0264$ | $0{,}0107$ | $0{,}0035$ | $0{,}0012$ |
1 | $0{,}3148$ | $0{,}0625$ | $0{,}1011$ | $0{,}0817$ | $0{,}0440$ | $0{,}0178$ | $0{,}0058$ | $0{,}0020$ |
2 | $0{,}2623$ | $0{,}0521$ | $0{,}0842$ | $0{,}0681$ | $0{,}0367$ | $0{,}0148$ | $0{,}0048$ | $0{,}0017$ |
3 | $0{,}1457$ | $0{,}0289$ | $0{,}0468$ | $0{,}0378$ | $0{,}0204$ | $0{,}0082$ | $0{,}0027$ | $0{,}0009$ |
4 | $0{,}0607$ | $0{,}0121$ | $0{,}0195$ | $0{,}0157$ | $0{,}0085$ | $0{,}0034$ | $0{,}0011$ | $0{,}0004$ |
5 | $0{,}0202$ | $0{,}0040$ | $0{,}0065$ | $0{,}0052$ | $0{,}0028$ | $0{,}0011$ | $0{,}0004$ | $0{,}0001$ |
> 5 | $0{,}0073$ | $0{,}0014$ | $0{,}0023$ | $0{,}0019$ | $0{,}0010$ | $0{,}0004$ | $0{,}0001$ | $0{,}0000$ |
In de oranje cellen zien we de vorige tabel terugkomen, met name de Poissonkansen voor beide landen. Alle andere kansen werden verkregen door de oranje cellen op dezelfde rij en kolom met elkaar te vermenigvuldigen. Als we de getallen in de groene cellen op de diagonaal optellen, krijgen we de kans dat de wedstrijd eindigt in een gelijkspel: $0{,}2309$ in dit geval. Tellen we de kansen boven de diagonaal op, die uitslagen waar Nederland dus meer doelpunten maakt dan Senegal, krijgen we de kans dat Nederland wint: $0{,}3741$. De kansen onder de diagonaal optellen geeft dan weer de kans dat Senegal wint: $0{,}3951$. Een (licht) voordeel voor Senegal dus, en al zeker een heel ander beeld dan op basis van de FIFA-ranking of de elo-rating!
Simulatie
Die laatste tabel noemen we een kansverdeling voor de wedstrijd in kwestie. Aan de hand van deze kansverdeling kunnen we dan een simulatie uitvoeren voor die wedstrijd. Je kan het je voorstellen als een grote zak met $10\,000$ briefjes: $375$ briefjes bevatten de uitslag 0–0, $607$ de uitslag 0–1, $490$ de uitslag 0–2, enzovoort. Als alle briefjes in de juiste aantallen in de zak zitten, trekken we blind $1$ willekeurig briefje uit de zak. Dat is dan de gesimuleerde uitslag voor de wedstrijd. Uiteraard gaan we dat niet handmatig doen, maar met behulp van een computer (dit kan ook in Excel, met behulp van de Gegevensanalyse-toolbox, maar het is waarschijnlijk handiger om dit te programmeren in bijvoorbeeld Python met behulp van het NumPy-pakket). Voor elke wedstrijd kunnen we volgens dezelfde methode van hierboven een gelijkaardige tabel opstellen. Op basis van die tabellen zijn we dan in staat om het volledig toernooi te simuleren volgens dit stappenplan:
- Verzamel alle nodige invoerdata voor alle deelnemende landen.
- Simuleer de eerste wedstrijd op basis van de kansverdeling voor die wedstrijd.
- Update de invoerdata op basis van de gesimuleerde uitslag van de wedstrijd.
- Herhaal stappen 2 en 3 voor alle groepswedstrijden.
- Stel voor elke groep de eindstand op, en bepaal volgens het speelschema de plaatsing voor de eindfase.
- Simuleer match per match de eindfase. Bij een gelijkstand kan je bijvoorbeeld opnieuw simuleren tot er geen gelijkstand meer is.
Nu is 1 simulatie natuurlijk te weinig om conclusies op te bouwen, net zoals 1 keer gooien met een dobbelsteen niets zegt over de effectieve kans op elk cijfer. Maar als we die volledige toernooisimulatie een groot aantal keren uitvoeren, krijgen we wel een beter zicht op de voorspelling van ons model. Na $10\,000$ simulaties van bovenstaand Poisson-model blijkt dat Brazilië de topfavoriet is: in $0{,}942$ van de gevallen kwalificeerden ze zich voor de knock-outfase, en in maar liefst $0{,}352$ (meer dan een derde!) van de simulaties kroonden zij zich tot wereldkampioen. De kans op een wereldkampioen uit de Lage Landen is eerder gering: $0{,}0215$ voor Nederland en $0{,}0214$ voor België.
Op de tweede plek in ons model staat trouwens Iran met zowaar $0{,}1061$ kans op de wereldtitel! Vreemd en onrealistisch zou je (als voetbalkenner) denken? Niet als we (als wiskundige) naar de achterliggende data kijken: Iran scoorde de laatste zes jaar in $62$ wedstrijden maar liefst $120$ keer, terwijl ze slechts $32$ goals tegen kregen, wat zorgt voor de tweede beste defensieve score van alle deelnemende landen. Maar een diepere blik leert ons dat het merendeel van hun wedstrijden tegen kleinere voetballanden gespeeld werden met een gemiddelde elo-rating van $1\,542$, en dat terwijl de laagste deelnemende rating de $1\,539$ van Ghana is en de gemiddelde rating van alle deelnemers $1\,847$ is. In ons model telt elk gemaakt doelpunt even zwaar mee, of dat nu tegen een topland is of tegen een voetbaldwerg, wat misschien niet helemaal aansluit bij de realiteit. (Ter vergelijking: Nederland speelde de laatste zes jaar tegen tegenstanders met een gemiddelde rating van $1\,739$, bij Senegal is dat slechts $1\,479$. Dat werpt ook weer een nieuw perspectief op de voorspellingen hierboven.) Dit mee in rekening brengen zou ons voor dit artikel te ver leiden, maar het geeft alvast een eerste potentieel verbeterpunt voor ons model en de ingevoerde data om tot een realistischere voorspelling te komen.
Disclaimers
In dit artikel hebben we de data gebruikt die op 1 september 2022 beschikbaar waren. Tot aan de start van het effectieve WK zijn er nog enkele competitieve interlands (zoals de laatste groepsmatchen in de UEFA Nations League in september bijvoorbeeld) en vriendschappelijke voorbereidingswedstrijden. Deze wedstrijden zullen de gebruikte data, en dus ook de uiteindelijke conclusies van het model, nog enigszins beïnvloeden.
Daarenboven zijn er veel verschillende en meer geavanceerde manieren om dergelijke modellen te bouwen en bepaalde data of parameters wel of niet mee in te calculeren, maar dat is een wetenschap op zichzelf. Wat we in dit artikel naar voor schuiven zijn enkele opties, maar daarom niet per se de beste. We haalden reeds aan dat we hier nog geen rekening houden met de sterkte van de tegenstanders in de historische data omdat het anders te ingewikkeld zou kunnen worden, net zoals de volgende zaken:
- Ook het belang van wedstrijden telt in die dataset niet mee. Een argument zou kunnen zijn dat een 7–1-overwinning in een vriendschappelijke wedstrijd minder relevant is dan eenzelfde score in de halve finale van een WK (zoals Duitsland— Brazilië in 2014).
- We simuleren in een keer de einduitslag na 90 minuten, maar er wordt niets gezegd over het scoreverloop van de wedstrijd. Als een ploeg 3–0 voor komt te staan, is de kans op 3–2 al veel kleiner geworden, en die op 4–0 misschien eerder groter dan vooraf bepaald. De kans op 0–1 is natuurlijk zelfs uitgesloten op dat moment.
- Ook rode kaarten of blessures kunnen het scoreverloop van een wedstrijd danig beïnvloeden. Bij uitbreiding kunnen ook de kansen in het vervolg van het toernooi beïnvloed worden als belangrijke sleutelspelers zouden uitvallen.
- Met wedstrijduitslagen kom je meestal wel toe om de eindstand van de groepsfase te bepalen, maar soms is zelfs dat niet voldoende: in 2018 werd in groep H op basis van het aantal gele kaarten bepaald dat Japan zich kwalificeerde voor de volgende ronde ten koste van Senegal, omdat alle eerdere tie-breakers geen uitsluitsel gaven. Zo'n situatie wordt in dit model ook niet opgelost.
- Het model is nu louter gebaseerd op de Poisson-verdeling, en houdt geen rekening meer met de eerder vernoemde FIFA-ranking of elo-ratings.
Het toevoegen van extra parameters of het gebruiken van (een combinatie van) andere berekeningsmethodes kan een beter model opleveren, maar zekerheid daarover is moeilijk te bekomen. Het blijft dan ook voorspellende statistiek en geen exacte wetenschap.
Verdiepende links |
||||