Bachelor EindProject Valt er geld te verdienen aan het voorspellen van Voetbaluitslagen?
Technische Universiteit Delft
J. Zoutendijk
Bachelor EindProject Valt er geld te verdienen aan het voorspellen van Voetbaluitslagen? door
J. Zoutendijk
Student nummer: Beoordelingscommissie:
4230086 Prof. dr. ir. G. Jongbloed Prof.dr.ir. A.W. Heemink, Drs. E.M. van Elderen,
TU Delft, begeleider TU Delft TU Delft
I NLEIDING Gokken is een hobby die de mensheid al eeuwenlang bezighoudt. Je kunt je geld verliezen in het casino, met dobbelen, of bijvoorbeeld aan het voorspellen van sportwedstrijden. Dit laatste is door de komst van internet enorm veel populairder geworden: Je kunt nu vanaf je luie stoel eenvoudig geld inzetten op de uitkomst van je favoriete voetbalteam. Iedere wiskundige weet dat ’het huis altijd wint’. Toen ik op een dag aan het bedenken was hoe ik zo veel mogelijk geld kon verdienen door zo min mogelijk te werken zag ik hier dus mijn kans. Omdat het oprichten van een gokpaleis nogal veel geld kost, besloot ik dus om te gaan onderzoeken of er makkelijk en veilig geld te verdienen valt aan het voorspellen van voetbalwedstrijden. Voor de lezer die niet zo bekend is in de voetbalen/of de gokwereld zal ik een korte beschrijving van de situatie geven. In dit onderzoek heb ik alleen gekeken naar de Eredivisie, dat is de hoogste competitie van Nederland. In de Eredivisie spelen 18 voetbalclubs. Ieder team speelt twee keer tegen ieder ander team, één wedstrijd uit, en één wedstrijd thuis. Dit zijn in totaal dus 306 wedstrijden per competitiejaar. Aan het einde van het jaar kunnen er teams degraderen, waarvoor andere teams uit een competitie lager (de Eerste divisie) in de plaats komen. Er kunnen maximaal 3 clubs per jaar vervangen worden. Een voetbalwedstrijd heeft 90 minuten reguliere speeltijd, waar eventueel nog een korte blessuretijd aan wordt toegevoegd. Aan het einde van de totale speeltijd heeft één van beide teams gewonnen, of hebben de teams gelijk gespeeld. Bij gelijkspel blijft de uitslag gewoon staan, en vindt er geen verlenging of penalty’s plaats zoals in bijvoorbeeld het Wereldkampioenschap. Op internet zijn talloze websites waarop je dus kunt gokken op voetbalwedstrijden. Je kunt inzetten op de uitkomst (winst/verlies/gelijkspel), de precieze uitslag (bijvoorbeeld 2-1) en nog veel meer andere gegevens zoals welk team als eerst een gele kaart krijgt. Om het onderzoek af te kaderen kijk ik alleen naar de uitkomst van een voetbalwedstrijd. Per wedstrijd zijn er dus drie mogelijkheden: De thuisspelende ploeg wint, speelt gelijk, of verliest. Voor ieder van die drie mogelijkheden geeft een goksite een ’quota’ uit, neem bijvoorbeeld die van de wedstrijd Excelsior - SC Heerenveen: Table1: Quota’s Exelsior - SC Heerenveen
Winst
3
Gelijkspel
3,45
Verlies
2,09
Wanneer je dus e1 op Excelsior inzet, krijg je bij winst van dit team e3 terug (een winst van e2). Speelt Excelsior gelijk of verliezen ze, ben je jouw zuurverdiende euro helaas kwijt. Omdat er veel verschillende sites zijn waar je kunt gokken, heb ik de grootste van Nederland uitgekozen: www.toto.nl, en daar een aantal weken de quota’s van genoteerd. Ik heb geprobeerd ze op te slaan zo dicht mogelijk na het moment van uitgave. (Bij de Eredivisiewedstrijden in het weekend kwamen de quota’s dinsdagmiddag online). De reden hiervoor is dat toto.nl zijn quota’s aanpast naarmate er op de wedstrijden wordt ingezet, zodat zij zichzelf tegen risico indekken. In hoofdstuk 2 zal ik een korte beschrijving geven van de mogelijkheden en beperkingen van de Poissonverdeling, die de basis vormt van mijn hele onderzoek. Vervolgens zal ik in hoofdstuk 3 laten zien hoe ik door middel van onderlinge resultaten een (dynamisch) model heb gemaakt voor het schatten van de λ’s in het Poisson-model. Daarna laat ik in hoofdstuk 4 een andere manier zien om tot deze λ’s te komen, namelijk volgens een Generalized Linear Model (GLM). In hoofdstuk 5 verifieer ik het model door te onderzoeken of mijn model zich gedraagt zoals verwacht op fictieve, gesimuleerde data. Hoofdstuk 6 zal gaan over de fouten die mijn model maakt ten opzichte van de echte uitslagen. Ten slotte zal ik in hoofdstuk 7 laten zien of er nu daadwerkelijk geld kan worden verdiend aan het spelen van Toto.
i
C ONTENTS 1 Het Poissonmodel 1.1 Poissonverdeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Analyse bij gegeven schatters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Analyse van de Toto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 4
2 Onderlinge resultaten 2.1 Basismodel . . . . . . . . . . . . . . . 2.2 Team afhankelijkheid . . . . . . . . . . 2.3 Team- en tegenstander afhankelijkheid . 2.4 Thuisvoordeel. . . . . . . . . . . . . . 2.5 Keuze voor de schatter . . . . . . . . . 2.6 Dynamisch model . . . . . . . . . . .
5 5 6 6 6 6 8
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
3 GLM 10 3.1 Statisch model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Dynamisch model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4 Modelkeuze
12
5 Verificatie van het model 13 5.1 Constant niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.2 Dynamisch niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6 Spelen van Toto 15 6.1 Aanpak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.2 Resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Bibliography
17
ii
1 H ET P OISSONMODEL 1.1. Poissonverdeling Wanneer een voetbalwedstrijd wordt gespeeld, eindigt dit altijd in een uitslag. Aan de hand hiervan is dan ook het model opgesteld. Er wordt namelijk van uitgegaan dat de twee teams onderling onafhankelijk hun doelpunten scoren. Er wordt dus geen rekening gehouden met psychologische voor- of nadelen als een team een voosprong of achterstand heeft. We veronderstellen dat het aantal doelpunten dat een team scoort Poisson verdeeld is, namelijk volgens: P λ (x) =
e −λ λx x!
x = 0, 1, 2, . . .
Wanneer we nu een wedstrijd willen simuleren, doen we dus een trekking uit de Poissonverdeling van het thuisspelende team, en een trekking uit de Poissonverdeling van het uitspelende team. Dit levert dan een uitslag op. De enige informatie die we tot nog toe kunnen meegeven, is de λ. Deze parameter stelt daarmee impliciet het verwachtte aantal doelpunten voor. Omdat we werken met de Poisson verdeling nemen we ook aan dat de variantie gelijk is aan λ. Het is echter niet realistisch als volgens dit model iedere club dezelfde verdeling heeft van het aantal gescoorde doelpunten. Dat zou namelijk inhouden dat er geen niveauverschil zou zijn in de competitie, terwijl dit duidelijk wel het geval is. Er spelen natuurlijk veel meer factoren mee. In hoofdstuk 3 zal ik daarom beginnen met het meest eenvoudige model, en deze telkens iets uitbreiden.
1.2. Analyse bij gegeven schatters Een groot deel van dit verslag zal gaan over het schatten van de λ in de Poisson verdeling. Wanneer we deze eenmaal hebben, kunnen we er allerlei resultaten mee produceren. Echter, het enige wat we daar voor nodig hebben is dus die λ. In plaats van te wachten tot al het werk gedaan is, kunnen we dus ook vooraf alvast kijken naar het gedrag van de verdeling bij verschillende λ’s. Stel dat we van een bepaalde wedstrijd de λ van beide teams weten, zeg λ1 , λ2 . We kunnen nu numeriek de kans berekenen wat de kans op winst en gelijkspel is. Zeg dat het gerealiseerde aantal doelpunten van team 1 X is, en van team 2 Y. Nu geldt dat de kans op gelijkspel gelijk is aan: P (X = Y ) = P (X = 0)P (Y = 0) + P (X = 1)P (Y = 1) + . . . ∞ ∑ = P (X = k)P (Y = k) k=0
= =
∞ λk ∑ 1
k!
e −λ1 ·
k=0 ∞ ∑
(λ1 λ2 )k
k=0
k!2
λk2 k!
e −λ2
e −λ1 −λ2 1
(1.1)
1.2. A NALYSE BIJ GEGEVEN SCHATTERS
2
De kans op winst door team 1 kan als volgt worden uitgewerkt: P (X > Y ) = P (X = 1)P (Y = 0) + P (X = 2)P (Y = 0) + . . . + P (X = 2)P (Y = 1) + P (X = 3)P (Y = 1) + . . . ∞ ∑ ∞ ∑ = P (X = j )P (Y = i ) i =0 j =i +1
=
∞ ∑ ∞ λi ∑ 1 i =0 j =i +1
i!
e −λ1 ·
λi2+1 (i + 1)!
(1.2)
e −λ2
De kans op verlies door team 1 gaat equivalent met de kans op winst. We zien nu dus dat, gegeven de λ’s voor beide teams, eenvoudig kan worden bepaald wat de kans is op winst, verlies en gelijkspel. We onderzoeken nu of er misschien een manier is om deze kansen analytisch uit te werken. We vinden de oplossing in een artikel van Abdulhamid A. Alzaid en Maha A. Omair [2]. Zij vonden dat "De verdeling van het verschil tussen twee onafhankelijke Poisson verdelingen is afgeleid door Irwin[4] in het geval van gelijke parameters. Skellam[3] en Prékopa[1] onderzochten het geval van gelijke parameters." ( ) ( ) Stel dat X ∼ Pois λ1 en Y ∼ Pois λ2 Dan geldt dat de kansdichtheidsfunctie van Z = X − Y gegeven wordt door: ( P (Z = z) = e −λ1 −λ2
λ1 λ2
)z
2
( √ ) I z 2 λ1 λ2
Deze verdeling wordt in de literatuur de ’Skellam-verdeling’ genoemd, naar John Gordon Skellam (19141979). I z is hier de eerste orde gemodificeerde Bessel-functie: ( )2m+z 1 x I z (x) = m!(m + z)! 2 m=0 ∞ ∑
We laten nu zien dat deze functie correct is voor de kans op gelijkspel. We bekijken dus: ( √ ) P (Z = 0) = e −λ1 −λ2 I 0 2 λ1 λ2 ( √ )2m ∞ ∑ 1 2 λ1 λ2 −λ1 −λ2 =e 2 m=0 m!m! =
∞ ∑
1 (
λ1 λ2
2 m=0 m! ∞ (λ λ )k ∑ 1 2 = k!2 k=0
)m
e −λ1 −λ2
(1.3)
e −λ1 −λ2
En dit is precies de kans op gelijkspel die we eerder al hadden afgeleid. We kunnen nu dus eenvoudig de kansen op winst, verlies en gelijkspel berekenen bij een gegeven λ. We kijken nu eerst naar de kans op gelijkspel bij verschillende λ’s. Wanneer λ = 0 is het eenvoudig in te zien dat iedere trekking uit die Poissonverdeling ook 0 is, de verwachting en de variantie zijn namelijk beide gelijk aan 0. Geldt er dus λ1 = λ2 = 0, dan is de kans op gelijkspel: P (X = Y ) = 1
λ1 = λ2 = 0
We onderzoeken nu wat er gebeurt wanneer λ1 → ∞, λ2 → ∞. We hebben hier een numerieke analyse op toegepast en een heatmap gemaakt om de kans op gelijkspel te visualiseren. We zien hier dus de kans op gelijkspel bij verschillende waarden van λ1 en λ2 . We kunnen ook een grafiek plotten voor de kans op gelijkspel bij gelijke λ’s. Dit is dus de kansdichtheid van de Skellam-verdeling met P (Z = 0) en λ1 = λ2 .
1.2. A NALYSE BIJ GEGEVEN SCHATTERS Figure1.1: Heatmap verschillende λ′ s
Figure1.2: Kans gelijkspel bij gelijke λ′ s
3
1.3. A NALYSE VAN DE T OTO
4
1.3. Analyse van de Toto Wanneer we eenmaal onze λ’s hebben bepaald, kunnen we onze voorspellingen dus vergelijken met de quotes van toto.nl. We kijken eerst eens naar een fictieve quote van 2 (voor winst van team 1). Wanneer we dus e1 inzetten, krijgen we e2 terug als team 1 heeft gewonnen. Stel dat we nu de echte kans p weten dat team 1 wint van team 2: p = P (X > Y ). Wanneer geldt dat p = 0.5 is de verwachte opbrengst dus precies e1. Wanneer p < 0.5 is het onverstandig om te spelen, terwijl bij p > 0.5 het mij op de lange termijn geld zal opleveren. Het probleem is dat deze p onbekend is, en dat zowel ik als toto.nl dus een schatting hiervan moet doen. De schattingen van toto.nl zijn eenvoudig te berekenen. Noemen we de quote namelijk q, dan geldt dat hun voorspelde kans p ∗ = q1 . Omdat de site natuurlijk wel geld wil verdienen, is de som van de kans op ieder van de drie uitslagen altijd groter dan 1. Deze som definiëren we voor het gemak als ’totale kans’. Met behulp van de opgeslagen quotes komen we uit op een gemiddelde totale kans van 1, 1023. De grootste totale kans is 1, 1128 en de kleinste is 1, 0988. Dit betekent dus dat toto.nl gemiddeld ongeveer 10% winst verdiend per wedstrijd. Laten we kijken naar de wedstrijd op 27 februari 2015 tussen FC-Dordrecht en Go Ahead Eagles. De quote waren op 24 februari als volgt: Table1.1: quotes FC-Dordrecht - Go Ahead Eagles
Winst
2,72
Gelijkspel
3,37
Verlies
2,28
Stel nu dat we de echte kans p op winst door FC-Dordrecht weer weten. Onze verwachte omzet O hangt natuurlijk samen met de hoeveelheid geld I die we inzetten, namelijk als volgt: O = I · p · 2, 72 Geldt er dat O > I , is het dus verstandig om te spelen. Het probleem zit er echter in dat we dus p niet daadwerkelijk weten, maar een schatting hiervan doen. Bij het testen of een strategie op basis van ons model daadwerkelijk winst maakt spelen we alleen wedstrijden waarbij O > 1, 1, waarbij voor het gemak I = 1 is gekozen. Dit is namelijk ongeveer dezelfde winstmarge als toto.nl hanteert. De resultaten hiervan zijn te lezen in hoofdstuk 6.
2 O NDERLINGE RESULTATEN 2.1. Basismodel We hebben nu gezien wat we allemaal kunnen als we de parameters van ons model kunnen invullen. Zoals beloofd beginnen we met het meest eenvoudige model dat voor een competitie kan worden opgesteld. We gaan er namelijk vanuit dat ieder team even goed is en dezelfde kans heeft om te scoren. Het aantal doelpunten X dat ieder team scoort is verdeeld volgens: ( ) X ∼ Pois λ De λ die we voor dit model gebruiken is de Maximum Likelihood Estimator (MLE). Hiervoor kijken we naar de Likelihood function. We noemen de vector van alle doelpunten N , waarbij Ni j het aantal doelpunten is dat team i thuis tegen team j (dat dus uit speelt) heeft gescoord. In de berekeningen worden alle waarnemingen Ni i genegeerd, een team kan immers niet tegen zichzelf spelen. ( ) N = N1 2 , N1 3 , . . . , N1 18 , N2 1 , N2 3 , N2 18 , . . . , N18 17 De likelihood function wordt dan als volgt: e −λ λN18 17 e −λ λN1 2 ·...· N1 2 ! N18 17 ! 18 ∏ 18 λNi j ∏ = e −λn i =1 j =1 Ni j !
f (N |λ) =
∑18 ∑18
= e −λn λ
i =1
j =1
Ni j
i ̸= j (2.1)
18 ∏ 18 ∏
1 i =1 j =1 Ni j !
We nemen de (natuurlijke) logaritme om tot de Log-Likelihood function te komen. [ ] 18 ∑ 18 18 ∑ 18 ∑ [ ] [ ]∑ log f (N |λ) = −λn + log λ Ni j − log Ni j ! i =1 j =1
i =1 j =1
i ̸= j
Deze differentiëren we naar λ en stellen we gelijk aan 0 om het maximum te vinden. (((Vertellen waarom maximum en niet minimum?))) [ ] 18 ∑ 18 d log f (N |λ) 1∑ = −n + Ni j = 0 dλ λ i =1 j =1 En nu zien we dat de Maximum Likelihood Estimator voor λ wordt gegeven door 1∑∑ Ni j λˆ = n i =1 j =1 We zien dus dat het verwachtte aantal doelpunten dat team i tegen team j scoort gelijk is aan het gemiddelde van alle doelpunten in de hele competitie. 5
2.2. T EAM AFHANKELIJKHEID
6
2.2. Team afhankelijkheid Het is natuurlijk raar te verwachten dat een club als bijvoorbeeld NAC Breda even vaak zou scoren als een club als PSV. Daarom is de eerste uitbreiding die zal worden ingevoerd daar onderscheid in maken. We gaan er dus van uit dat ieder team zijn eigen verdeling heeft. We zien dus dat het aantal doelpunten X dat team i scoort verdeeld is volgens: ( ) X i ∼ Pois λi In plaats van 1 λ die voor alle teams hetzelfde was, hebben we nu dus te maken met 18 verschillende λ’s. Voor de λi hebben we gebruik gemaakt van de MLE: 1 ∑ Ni j λˆ i = n j =1
2.3. Team- en tegenstander afhankelijkheid In het vorige model hebben we onderscheid gemaakt tussen het aantal doelpunten dat iedere club scoort. Wat daar echter nog niet in wordt meegenomen, is de invloed die de tegenstander heeft. Teams met een sterke verdediging krijgen nu eenmaal minder doelpunten tegen dan teams met een zwakke achterhoede. Ons nieuwe model wordt dan ook: ( ) X i j ∼ Pois λi j Waarbij X i j het aantal doelpunten is dat team i tegen team j scoort. In plaats van 18 λ ’s, één per team, hebbben we er nu dus 18 · 18 - 18 = 306. Namelijk een λ voor iedere mogelijke wedstrijd in een competitie van 18 teams. De MLE die hierbij hoort is: 1 λˆ i j = Ni j n
2.4. Thuisvoordeel De supporters van Feyenoord worden wel eens de ’twaalfde man’ genoemd omdat zij een grote bijdrage zouden leveren aan de prestaties van de Rotterdamse club. Nu is deze anekdote misschien niet zo wetenschappelijk, maar ook de data wijst uit dat clubs een groot voordeel hebben wanneer zij in hun eigen stadion (en dus meer eigen supporters) mogen spelen. Gemiddeld werd er in het seizoen 2013/2014 0.5163399 doelpunt meer gescoord thuis, in 2014/2015 was dit maar 0.3071895 Dit is dan ook een belangrijke aanwijzing om dit mee te nemen in het model: ( ) X iPj ∼ Pois λPij Waarbij P staat voor ’plaats’ en de waarden ’T’ (Thuis) of ’U’ (Uit) kan aannemen. Wanneer we de MLE van λ bij dit model bekijken, komen we uit op: 1 λˆ Pij = NiPj n
2.5. Keuze voor de schatter We hebben nu een aantal stappen gemaakt om het model te verbeteren. Op dit moment is de schatter die we gebruiken voor het model gebaseerd op het thuisspelende team, de tegenstander, en of het een uit- of thuiswedstrijd betreft. Wanneer we er voor kiezen gebruik te maken van de MLE, zien we echter een probleem ontstaan. Voor iedere wedstrijd in het seizoen 2014/2015 die we willen voorspellen hebben we immers data nodig. Alleen doordat onze λˆ Pij nu afhangt van zoveel factoren, hebben we weinig data die hier aan voldoet. We kunnen nu per seizoen maar één wedstrijd hiervoor gebruiken. Kiezen we er voor om alleen de gegevens uit 2013/2014
2.5. K EUZE VOOR DE SCHATTER
7
te gebruiken, dan verwachten we dus dat een club precies evenveel doelpunten scoort als het jaar ervoor tegen diezelfde club. Nemen we data mee van meer seizoenen terug, dan wordt onze voorspelling minder betrouwbaar. In een korte periode kan een club namelijk veel verandering brengen in de samenstelling van het team door middel van het kopen en verkopen van spelers. De oplossing hiervan vinden we terug in een artikel van R.H. Koning [5]. In dit stuk is namelijk ook onderzoek gedaan naar het voorspellen van voetbaluitslagen, maar dan in de context van internationale kampioenschappen als het WK. De onderzoekers hebben hier naar 8 verschillende schatters gekeken en onderzocht welke het beste voldeed aan de data. We nemen deze schatters eens onder de loep: • λˆ (1) = ij
1 K T +K U
• λˆ (2) = ij
1 KH
∑ ∑ i
∑ ∑ i
T j (Ni j
+ NiUj )
T j (Ni j )
Waarbij K P het aantal wedstrijden is dat uit of thuis is gespeeld. We zien dat λˆ (1) precies de MLE schatter ij is voor ons basismodel. Overigens dient er te worden opgemerkt dat in het artikel niet wordt gesproken achter de modellen die achter de schatters liggen. We zien verder ook dat λˆ (2) alleen op de thuiswedstrijden ij is gebaseerd. Dit is bij de even λ’s steeds het geval. De volgende λ’s zijn • λˆ (3) = ij
1 K iT +K iU
• λˆ (4) = ij
1 K iT
∑
∑
T k (Ni k
+ NiUk )
T k (Ni k )
Ook hier is het model eerst uitgebreid naar teamafhankelijkheid. We zien dan ook weer dat λˆ (3) precies de ij MLE schatter is voor het model dat gebruik maakt van teamafhankelijkheid. We gaan weer een stap verder met • λˆ (5) = ij • λˆ (6) = ij
1 K iT +K iU 1 K iT
∑ k
(
∑ k
NiTk
NiTk
λU .j λU .k
+
∑ k
NiUk
λU .j λU .k
)
λU .j λU .k
Waarbij λU het gemiddelde aantal goals is dat team j tegen zich krijgt in uitwedstrijden. Hier wijkt de .j aanpak in dit onderzoek af van de aanpak die gebruikt wordt in het artikel van Koning. Zij breiden hun model namelijk niet uit naar tegenstanderafhankelijkheid, maar gaan goals wegen met de relatieve verdediging. Stel namelijk dat we willen schatten hoeveel goals i = AZ tegen j = NAC Breda scoort. We gaan dan de doelpunten wegen in iedere wedstrijd die AZ heeft gespeeld, dus ook die tegen k = PSV. Voetballiefhebbers zullen weten dat PSV een sterkere verdediging heeft dan NAC Breda, dit leidt ertoe dat λU < λU , waardoor .j .k NiUk met een factor > 1 wordt vermenigvuldigd. De doelpunten tegen clubs met sterke defensieve kwaliteiten worden dus zwaarder meegerekend dan clubs die veel tegendoelpunten krijgen. We kijken nu naar de laatste twee schatters
• λˆ (7) = ij
1 K iT +K iU
• λˆ (8) = ij
1 K jT
∑ k
(
∑
T k Nk j
NkTj
λTi. λTk.
λUj. λU k.
+
∑
U k Nk j
λUj. λU k.
)
2.6. DYNAMISCH MODEL
8
Deze schatters zijn wel gebaseerd op tegenstanderafhankelijkheid, maar de teamafhankelijkheid wordt hierin weggelaten. Met λ j. wordt het gemiddeld aantal doelpunten dat team j scoort bedoelt. In deze schatters wordt het aantal doelpunten dat iedere club tegen j scoort nu gewogen door de verhouding tussen het gemiddeld aantal doelpunten dat j zelf scoort en het gemiddeld aantal doelpunten dat iedere club gemiddeld scoort. het verwachte aantal doelpunten is dat i tegen j scoort. De aanvallende Dit is opmerkelijk, omdat λˆ (7) ij kwaliteit van j heeft hier in principe weinig mee te maken. (Al zou je kunnen beargumenteren dat teams met een sterke aanval vaak ook een sterke verdediging hebben, maar dan is het nog steeds vreemd dat naar de aanval wordt gekeken). Alle 8 de schatters zijn berekend met de data van seizoen 2013/2014. Ook is er gekeken naar de gemid∑ delde fout n1 i j (λi(k) − Ni j ) die iedere schatter maakt. De gemiddelde fout die gemaakt wordt in seizoen j 2013/2014 ziet u in de volgende plot: Figure2.1: Gemiddelde fout in seizoen 2013/2014
Omdat het incorrect is de schatters te testen ten opzichte van de data waarop ze zijn gebaseerd, bekijken we ook de fout die gemaakt wordt in seizoen 2013/2014: Figure2.2: Gemiddelde fout in seizoen 2014/2015
2.6. Dynamisch model Soms hebben wat minder sterke clubs, tegen de verwachtingen in, opeens een periode waarin zij erg goed presteren. Ook kan het voorkomen dat teams juist een dip hebben en zij minder goed zijn dan men zou verwachten. Om dit te modelleren wordt de parameter van de Poissonverdeling iets verhoogd of verlaagd, afhankelijk van hoe goed een team in vorm is. Het bijbehorende model komt er dan zo uit te zien:
2.6. DYNAMISCH MODEL
9
X iPj
∼
e
−λPij
(λPij )x
x!
+ f (i , j , P ) x = 0, 1, 2, . . . ,
y = 1, 2, . . . , 34
De functie f is de vormfunctie, die aangeeft hoe goed een team in zijn vel zit. Een mogelijke keuze voor f is de volgende: f (i , j , P ) =
4 1∑ (N P − λPij m−k ) 4 k=1 i j m−k
Waarbij j m het team voorstelt waar door team i in de m’de week tegen wordt gespeeld. Deze functie berekent dus de gemiddelde afwijking van het verwachte aantal doelpunten ten opzichte van het gerealiseerde aantal doelpunten in de vier weken voorafgaand aan de te voorspellen wedstrijd. We passen nu deze vorm-factor toe op het model van R.H. Koning met de schatter λ(5) . De oorspronkelijke ij gemiddelde fout was 3.299823 en de nieuwe wordt dan 4.122535 . Dit is helaas geen verbetering. De reden hiervoor is dat vreemde resultaten te veel invloed krijgen. Wanneer een club 4 doelpunten meer scoort dan verwacht, scoort diezelfde club volgens het model de komende vier wedstrijden een heel doelpunt meer. Er moet dus worden gezorgd dat het model wat robuuster wordt. We zoeken dus een functie g (x) die voldoet aan de volgende eisen: • limx→−∞ g (x) = −c • limx→∞ g (x) = c • limh→0
g (x+h)−g (h) x+h
=x
We zijn dus op zoek naar een schalingsfunctie die begrensd is door een waarde c en rond het punt 0 zich gedraagt als y = x. Een functie die aan deze voorwaarden voldoet is g (x) = arctan(x). Deze is dan ook gebruikt om de invloed van de vormfunctie af te knotten. Er dient te worden opgemerkt dat er twee momenten zijn waarop we kunnen begrenzen, namelijk na ieder verschil of pas achteraf. Het zou kunnen voorkomen dat in één wedstrijd een afwijking is van 3 goals, en in de andere wedstrijden geen afwijking is. Dan kunnen we dus ervoor kiezen om alleen de arctangens van 3 te nemen en daarna het gemiddelde te berekenen. Een andere optie is de arctangens van 0.75 (het gemiddelde) te berekenen. De laatste mogelijkheid is om eerst de arctangens van 3 te berekenen, dan het gemiddelde te nemen, om vervolgens nogmaals de arctangens van dat gemiddelde te berekenen. Na wat experimenteren bleek dat de fout klein werd door eerst ieder goal met π1 arctan te schalen en ver1 volgens het gemiddelde nogmaals af te knotten met 2π arctan. Wanneer we deze gegevens meenemen komen
we op een gemiddelde fout van 3.292843. We zien dat deze nét iets lager ligt dan λ(5) zonder vormfactor, ij namelijk 3.299823. De reden dat deze fouten zo dicht bij elkaar liggen is dat we de fout erg afknotten. Wanneer we minder schalen, neemt de gemiddelde fout van de vormfactor toe. Dit zou een aanwijzing kunnen zijn dat de vormfactor niet effectief is. We zullen dit in hoofdstuk 5 verder onderzoeken, en in hoofdstuk 6 de invloed hiervan op het spelen van de Toto bekijken.
3 GLM 3.1. Statisch model Er zijn ook andere manieren om tot λ’s te komen voor wedstrijden dan deze te baseren op onderlinge resultaten. Eén van deze manieren is het gebruik maken van een Generalized Linear Model. Deze berekent de beste fit tussen een respons variabele en één of meerdere verklarende variabelen. De reden dat sommige teams nu eenmaal beter presteren dan anderen zou verklaard kunnen worden door bepaalde achtergrondvariabelen. De kwaliteit van individuele spelers heeft natuurlijk een grote invloed op de kwaliteit van het team. Als club kun je sterke spelers aantrekken en ze een goede opleiding geven wanneer je een groot budget tot je beschikking hebt. In de berekeningen is als respons variabele het aantal gescoorde thuisdoelpunten gekozen. Als verklarende variabelen is er gekozen voor de volgende gegevens: • x1 = Begroting team • x2 = Begroting tegenstander • x3 = Fifa-rating team • x4 = Fifa-rating tegenstander In de volgende tabellen ziet u de resultaten. Table3.1: Alleen begrotingen
(Intercept) x1 x2
Estimate 0.481013 0.009245 -0.008521
Std. Error 0.087535 0.002146 0.002600
z value 5.495 4.307 -3.278
Pr(> |z|) 3.91e-08 1.65e-05 0.00105
(Intercept) x3 x4
Estimate -0.11000 0.06786 -0.05861
Std. Error 1.58270 0.01571 0.01750
z value -0.070 4.319 -3.350
Pr(> |z|) 0.944588 1.57e-05 0.000809
Table3.2: Alleen fifa-ratings
Wanneer we alleen naar begrotingen of fifa-ratings kijken valt het automatisch op dat de resultaten zeer significant zijn (Met uitzondering van de intercept bij de fifa-ratings). Echter, wanneer we poissonregressie toepassen op alle vier de verklarende variabelen zijn onze P-waarden zeer groot. Dit zou verklaard kunnen worden door de correlatie tussen begrotingen en fifa ratings, te zien in de volgende figuur: We onderzoeken nu of de schatters die volgen uit deze GLM’s goed zijn. We noemen de begroting van team i : βi , en de fifarating van team i : ϕi . Verder hebben we voor het gemak de intercept x 0 gekozen. We vinden dus drie nieuwe schatters, namelijk de volgende: 10
3.2. DYNAMISCH MODEL
11
Table3.3: Alle verklarende variabelen
(Intercept) x1 x2 x3 x4
Estimate -0.114966 0.003403 -0.003656 0.044519 -0.035108
Std. Error 4.642526 0.006901 0.007660 0.049855 0.052242
z value -0.025 0.493 -0.477 0.893 -0.672
Pr(> |z|) 0.980 0.622 0.633 0.372 0.502
Figure3.1: Correlatie begrotingen en fifa-rating
(glm1) • λˆ i j = e x0 +x1 βi +x2 β j (glm2) • λˆ i j = e x0 +x3 ϕi +x4 ϕ j (glm3) • λˆ i j = e x0 +x1 βi +x2 β j +x3 ϕi +x4 ϕ j
De fouten worden in de volgende tabel weergegeven. Table3.4: My caption
Schatter (glm1) λˆ ij
(glm2) λˆ i j (glm3) λˆ ij
Gemiddelde fout 3.035238 3.053832 3.038831
We zien dus dat de schatter gebaseerd op alle verklarende variabelen wel de kleinste fout geeft, terwijl geen van deze significant zijn.
3.2. Dynamisch model Ook bij dit model dat alleen gebaseerd is op achtergrondinformatie kunnen we een vormfactor toevoegen. We gebruiken gelijk de functie die we eerder in hoofdstuk 3 ook al gebruikten: ( ) ( ) 4 1 1 1∑ P P f (i , j , P ) = arctan arctan Ni j m−k − λi j m−k π 4 k=1 2π (glm1) Wanneer we deze toevoegen aan λˆ i j zien we dat ook hier de fout weer iets afneemt, de nieuwe gemiddelde fout wordt namelijk 3.030373.
4 M ODELKEUZE In dit hoofdstuk zal worden gekeken naar de fouten die de modellen maken in het seizoen 2014/2015. De modellen worden dus niet getest op de data waarop ze zijn gebaseerd. Er zijn in 2014/2015 drie nieuwe clubs gestart in de Eredivisie: Excelsior, Willem II en FC Dordrecht. Deze drie vervangen de volgende drie clubs, die dus zijn gedegradeerd: NEC, RKC Waalwijk en Roda JC. Dit is belangrijk op te merken, omdat de modellen gebaseerd op onderlinge resultaten geen data hebben van deze nieuwe clubs. In hoofdstuk 3 hebben we gekeken naar de schatter λU λU ∑ ∑ 1 . j . j NT + NiUk U λˆ i(5) = T j K i + K iU k i k λU λ.k k .k Deze hebben we vervolgens uitgebreid met de vormfactor om op een gemiddelde fout van 3.292843 uit te komen. (glm1) In hoofdstuk 4 hebben we gezien dat λˆ i j de beste van de drie schatters in het GLM was. Deze hebben we vervolgens verbeterd met de dynamische vormfactor zodat we op een fout van 3.157019 uitkwamen.
Deze resultaten kwamen enigszins onverwachts, omdat we niet veel vertrouwen uitspraken in de schatter gebaseerd op het GLM. De reden hiervoor is voornamelijk dat er in de onderlinge resultaten veel meer data wordt meegenomen, maar misschien draagt de ruis in de data bij aan de grotere fout. Omdat het doel van dit onderzoek niet het zoeken is naar de kleinste fout, maar naar de grootste winst zullen we met beide modellen de Toto spelen.
12
5 V ERIFICATIE VAN HET MODEL Het is gevaarlijk om er zomaar van uit te gaan dat het model wat we hebben ontwikkeld werkt. Het kan zijn dat er sprake is van een gelukstreffer, en dat het voor de gebruikte data toevallig goed uitkomt. Om te controleren of het model zich gedraagt zoals wij zouden verwachten, wordt er in dit hoofdstuk nagegaan of het model zich logisch gedraagt onder zelf-opgestelde data. We zullen eerst kijken naar een competitie waarin iedere club een constant niveau heeft, om vervolgens te onderzoeken wat er gebeurt als het niveau van de clubs varieert met de tijd. We testen alleen het model gebaseerd op onderlinge resultaten, met en zonder vormfactor. Het GLM wordt niet getest, omdat we de begrotingen en fifa-ratings van clubs dan ook zelf moeten kiezen. Hierdoor test je dus niet langer het oorspronkelijke model, omdat de verhoudingen tussen begrotingen en fifa-ratings totaal anders zijn dan in de realiteit.
5.1. Constant niveau De competitie is opgedeeld in drie niveaus, we hebben er voor het gemak voor gekozen dat het aantal doelpunten dat de bovenste 6 (wanneer we sorteren op alfabetische volgorde) clubs scoren Poisson verdeeld zijn met een gemiddelde van 3. De middelste zes clubs zijn een parameter van 2 gegeven, en de onderste 6 scoren gemiddeld 1 doelpunt in een wedstrijd. We baseren onze resultaten dus eigenlijk op een competitie (2013/2014) waarin de uitslagen als volgt zijn: Vervolgens simuleren we een volledige competitie (2014/2015), dit wordt gedaan door voor iedere wedstrijd twee trekkingen te doen uit onafhankelijke Poisson-verdelingen met bijpassende λ. Wanneer een club met niveau ’Hoog’ tegen een club met niveau ’Laag’ speelt, doen we dus één trekking uit een Poisson-verdeling met λ = 3, en één trekking uit een Poisson-verdeling met λ = 1. Nu is het tijd om te testen hoe de modellen het er vanaf brengen. We berekenen weer de gemiddelde fout die wordt gemaakt, maar doen dit voor 10 simulaties. De reden hiervoor is dat er veel variantie zit in de gemiddelde fout, dus door het gemiddelde te nemen over 10 simulaties beperken wij dit. We zien dat het model met de vormfactor het íets beter doet dan het model zonder deze vormfactor (een verschil van 0.000622). We vermoeden dat dit te wijten is aan de aanpassingen die tijdens het voorspellen plaatsvinden. Als het normale model bijvoorbeeld de doelpunten net te laag inschat, blijft deze dit de hele simulatie doen. Wanneer we de vormfactor meenemen wordt dit dus tijdens de simulatie aangepast. Overigens zien we dat de fouten die in deze simulatie worden gemaakt veel groter zijn dan de fouten die we maken ten opzichte van historische data. Dit komt doordat de variantie in de gesimuleerde data een stuk Table5.1: Uitslagen verificatie constant niveau
Niveau clubs Hoog Gemiddeld Laag
Hoog 3-3 2-3 1-3 13
Gemiddeld 3-2 2-2 1-2
Laag 3-1 2-1 1-1
5.2. DYNAMISCH NIVEAU
14
Table5.2: Vergelijking gemiddelde fouten bij een statisch model
Soort model Onderlinge resultaten Onderlinge resulaten met vormfactor
Gemiddelde fout 4.019392 4.01877
Table5.3: Vergelijking gemiddelde fouten bij een dynamisch model
Soort model Onderlinge resultaten Onderlinge resulaten met vormfactor
Gemiddelde fout 5.518067 5.453875
groter is; wedstrijden waarin beide teams meer dan 5 doelpunten scoren zijn geen uitzondering. We vermoeden dat dit komt door een verkeerde aanname, we hebben namelijk in dit onderzoek aangenomen dat het aantal doelpunten dat een team in een wedstrijd scoort Poisson verdeeld is. Dit betekent dat de verwachting gelijk is aan de variantie, terwijl we nu dus eigenlijk zien dat dit onrealistische resultaten oplevert.
5.2. Dynamisch niveau In deze paragraaf onderzoeken we hoe het model zich gedraagt als de clubs geen constant niveau vertonen, maar deze varieert met de tijd. We laten seizoen 2013/2014 hetzelfde als bij het statische model, dus clubs in ’Hoog’ scoren drie doelpunten, in ’Gemiddeld’ 2 en in ’Laag’ wordt er 1 doelpunt gescoord. Wat er nu echter verandert, is dat de simulatie van seizoen 2014/2015 gebaseerd wordt op data die varieert met de tijd. We verdelen de clubs opnieuw in de drie categoriën, ’Hoog’ (scoort 3 doelpunten), ’Gemiddeld’ (2 doelpunten) en ’Laag’ (1 doelpunt). We laten het aantal doelpunten dat een club scoort echter varinaarmate het seizoen vordert. Clubs in ’Hoog’ beginnen met een verwachting van 3 doelpunten in een wedstrijd, maar per wedstrijd gaat hier 0.05 van af. Clubs in ’Gemiddeld’ verliezen de eerste helft van het seizoen 0.1 doelpunt, maar krijgen de tweede helft van het seizoen er 0.1 bij (waardoor ze dus de laatste wedstrijd weer een verwachting van 2 doelpunten hebben). Voetbalteams in de categorie ’Laag’ starten met een verwachting van 1 doelpunt per wedstrijd, en krijgen er per wedstrijd 0.05 doelpunt bij. Het is belangrijk om te realiseren dat er nu dus twee seizoenen zijn, in 2013/2014 hebben de clubs gewoon met constant niveau gespeeld, en daar baseren wij ons model dus op. In 2014/2015 varieert het niveau van de teams echter zoals hierboven is beschreven. We onderzoeken nu of de vormfactor hier van grote invloed is. We berekenen wederom de gemiddelde fout over 10 simulaties, en krijgen de volgende resultaten We zagen dat het verschil bij het statische niveau tussen het model met en zonder vorm gelijk was aan 0.000622. Het verschil is nu 0.064192. We kunnen hieruit concluderen dat ons model zich gedraagt zoals verwacht, de vormfactor is bij een dynamisch model namelijk van veel grotere invloed dan bij een statisch model.
6 S PELEN VAN T OTO 6.1. Aanpak We zijn nu aanbeland bij de conclusie van het onderzoek: Kan er nu daadwerkelijk geld worden verdiend door een strategie te ontwikkelen gebaseerd op de ontwikkelde modellen? We hebben nu vier verschillende modellen onderzocht: Twee gebaseerd op onderlinge resultaten (met en zonder vormfactor), en twee aan de hand van een GLM (ook met en zonder vormfactor). We zullen voor ieder model een gokstrategie ontwikkelen en onderzoeken welk model de meeste winst, of het minste verlies oplevert. Als voorbeeld bekijken we de wedstrijd Vitesse - Pec Zwolle, de quotes zijn hiervoor als volgt: Table6.1: quotes Vitesse - Pec Zwolle
Winst Vitesse
1,43
Gelijkspel
4,24
Verlies Vitesse
6,03
We bepalen nu aan de hand van het model dat we testen wat de kans is dat Vitesse wint, de clubs gelijkspelen, en Vitesse verliest. Voor het gemak hebben we een vaste inzet van e1. We vermenigvuldigen nu onze voorspelde kans met de bijbehorende quote om zo de verwachte omzet te berekenen. In dit voorbeeld gebruiken we het model gebaseerd op onderlinge resultaten zonder vormfactor. We berekenen de verwachte omzet van alle drie de uitkomsten en vinden: Table6.2: Verwachte omzet Vitesse - Pec Zwolle
Winst Vitesse
0.6946858
Gelijkspel
0.9845606
Verlies Vitesse
1.7004484
Zoals vermeld in hoofdstuk 1 verwachten we winst wanneer de verwachte omzet groter is dan 1. In dit geval verwachten we dus e0.70 winst door in te zetten op het verlies van Vitesse. Voor ieder model dat we testen zetten we e1 in wanneer de verwachte omzet groter is dan 1.10, dit is de waarde die toto.nl ook ongeveer aanhoudt.
6.2. Resultaten In de volgende tabel worden de resultaten weergegeven We hebben ook de dynamische modellen getest zonder de vormfactor af te knotten, omdat we er tussendoor waren achtergekomen dat deze winstgevend kon zijn. We zien dan dus ook dat bij de onderlinge resultaten de vormfactor het model verbetert, als we deze niet afknotten behalen we zelfs een winst van e3,49! Bij het GLM heeft het minder zin om de vormfactor mee te nemen, daar behalen we zelfs een groot verlies van maar liefst e13,42. Omdat we maar beschikking hadden tot de quotes van 54 wedstrijden, is er natuurlijk sprake van een grote variantie. We kunnen dus nog niet concluderen dat we een winstgevend model hebben gevonden, maar er zijn zeker aanwijzingen dat we misschien nooit meer hoeven te werken.
15
6.2. R ESULTATEN
16
Table6.3: Winst bij verschillende modellen
Model Onderlinge resultaten Onderlinge resultaten (vorm, afgeknot) Onderlinge resultaten (vorm, niet afgeknot) GLM GLM (vorm, afgeknot) GLM (vorm, niet afgeknot)
Winst -4,25 -2,87 3,49 -3,91 -3,91 -13,42
B IBLIOGRAPHY [1] Prékopa A. On composed poisson distributions. iv. remarks on the theory of differential processes. Acta Math. Acad. Sci. Hungar., 3:317–325, 1953. [2] A. Alzaid en Maha A. Omair Abdulhamid. On the poisson difference distribution inference and applications. BULLETIN of the Malaysian Mathematical Sciences Society, 33:1745, 2010. [3] Skellam J.G. The frequency distribution of the difference between two poisson variates belonging to different populations. J. Roy. Statist. Soc. (N.S.), 109:296, 1946. [4] Irwin J.O. The frequency distribution of the difference between two independent variates following the same poisson distribution. Journal of the Royal Statistical Society Series, A 100:415, 1937. [5] M. en Renes G. en Ridder G. Koning, R.H. en Koolhaas. A simulation model for football championships. European journal of operational research, 5353, 2002.
17