Monte Carlo-simulering af fodboldkampe — en praktisk introduktion

Indlæser...
- Ti tusind sæsoner på en formiddag — og hvad jeg lærte af den første
- Monte Carlo fortalt uden fancy sprog
- Fra Poisson til simulering — bygge broen mellem én kamp og en hel sæson
- Sæsonsimulering af Superligaen — hvad den afslører om titel og nedrykning
- Hvad resultatet kan bruges til i praksis
- Når matematikken bliver beslutningsramme
Ti tusind sæsoner på en formiddag — og hvad jeg lærte af den første
Jeg sad en søndag formiddag med en kop kaffe og lod min computer spille Superliga-sæsonen 2024/25 igennem 10 000 gange. Ikke den faktiske sæson, men simulerede versioner bygget på sandsynligheder for hver kamp. Da det var færdigt, havde jeg en oversigt: hvor ofte vandt FCK titlen, hvor ofte røg Fredericia ud, hvor ofte sluttede FCM i top-3. Forskellen mellem virkelige odds og mine simulerede sandsynligheder fortalte mig noget, ingen enkelt kampmodel havde gjort: hvor hele ligaen bevæger sig, og hvor bookmakernes langsigtede markeder er tætte eller slappe.
Monte Carlo-simulering er ikke hekseri. Navnet lyder dramatisk — det stammer fra fysikere i 1940’erne, der opkaldte metoden efter spilcasinoet i Monaco — men konceptet er simpelt. Du bygger en sandsynlighedsmodel for en kamp, og så lader du computeren spille den mange tusind gange ved at trække tilfældige resultater i overensstemmelse med sandsynlighederne. Summen af alle de gennemløb giver dig en fordeling. Ikke et enkelt tal, men et landskab af, hvad der kan ske.
For en fodboldspiller åbner det to nye markeder: outrights (hvem vinder titlen, hvem rykker ned, hvem slutter i top-4) og sæsonlange positionsodds, som ingen enkelt kampmodel kan ramme. Kampe afhænger af mange scenarier, der udfolder sig over tid, og Monte Carlo er den mest ærlige måde at estimere dem.
Monte Carlo fortalt uden fancy sprog
Det er en terningekast-metode. Forestil dig, at du vil vide sandsynligheden for, at to terninger viser sum 7. Du kan regne det ud analytisk (6/36 = 16,67 procent). Eller du kan kaste terningerne 10 000 gange og tælle, hvor ofte resultatet bliver 7. Begge veje giver omtrent samme svar — den analytiske er elegant, men kun mulig for simple problemer. Monte Carlo virker på alt, også ting, du ikke kan regne analytisk.
Fodbold er et typisk eksempel, hvor analytisk løsning bliver umulig. En Superliga-sæson har 22 runder i grundspil plus 10 runder i mesterskabsspil eller kvalifikationsspil. Det er 192 kampe, der hver afhænger af formstatus, som ændrer sig efter hver kamp. Der er konsekvenser som udsolgte tilskuer-kvoter — Superliga-kampene passerede for første gang i historien 10 000 tilskuere i gennemsnit i sæsonerne 2022/23 og 2023/24 — der kan påvirke atmosfære og hjemmebanefordel. Der er taktiske tilpasninger, skader, afbrændte spillere. Ingen enkelt formel kan håndtere dynamikken. Men en simulering kan.
Sådan foregår det i praksis. Du tager en kamp mellem to hold, du kender deres λ-værdier fra en Poisson- eller xG-baseret model, og du lader computeren trække tilfældige resultater 10 000 gange. Hjemmeholdet scorer 0 mål i 2 842 af gennemløbene, 1 mål i 3 491, 2 mål i 2 144 og så videre. Udeholdet scorer efter sin egen fordeling. Ved hver simulering kombinerer computeren de to trækninger og noterer resultatet. Efter 10 000 gennemløb har du en tabel over, hvor ofte hvert resultat indtraf.
Dette er konceptet. Det interessante bliver det, når vi skalerer op fra en kamp til en hel sæson, for det er der, Monte Carlo virkelig beviser sin værdi.
Fra Poisson til simulering — bygge broen mellem én kamp og en hel sæson
Poisson alene giver dig sandsynligheder for en enkelt kamp. Monte Carlo bygger ovenpå ved at tage de sandsynligheder og kombinere dem over hele programmet. Her er, hvordan det fungerer i praksis. Du starter med styrkeparameter for hvert hold i ligaen — angrebs- og forsvarsstyrke, hjemme og ude. Liga-gennemsnittet for mål pr. hold pr. kamp i Superligaen 2024/25 har ligget omkring 1,54, og hjemmesejre udgør historisk 45-50 procent af alle kampe.
Så tager du kampprogrammet kamp for kamp. For hver kamp beregner du λ for begge hold baseret på styrkerne, og simulerer resultatet. Det giver dig 3 point for hjemmesejr, 1 til hvert for uafgjort, og 3 til udeholdet ved udesejr. Efter alle 192 kampe er simuleret har du en fuld stilling — en liga-tabel for den specifikke simulering.
Men én simulering fortæller dig ikke noget. En mestermodel for tilfældighed kan lave Fredericia til mester i én ud af 10 000 gennemløb. Derfor gentager du processen. 10 000 hele sæsoner. Ved hver simulering noterer du slutresultatet — mester, top-3, top-6, bund-2 — og efter alle gennemløb sammenlægger du tallene. Hvis FCK vandt titlen i 4 382 af 10 000 sæsoner, er den modelbaserede sandsynlighed for titel til FCK 43,82 procent. Fair odds bliver 1 / 0,4382 = 2,28.
Her er noget interessant om det danske marked: bookmakernes margin på outrights (hvem vinder ligaen) er typisk højere end på enkelt-kampe. 8-15 procent er ikke usædvanligt. Det betyder, at dine simulerede sandsynligheder oftere finder reel value på outright-markederne end på 1X2-markederne — hvis din model vel at mærke er kalibreret rigtigt. Simuleringen afslører de områder, hvor markedet har ansat større usikkerhed ind i prisen.
Sæsonsimulering af Superligaen — hvad den afslører om titel og nedrykning
Lad mig beskrive en konkret øvelse, jeg har kørt. Baseret på estimater af holdenes styrke efter 10 runder af en sæson simulerer jeg de resterende 22 kampe i grundspillet + 10 kampe i slutspillet — det danske format er ikke en simpel enkeltrunde, men inkluderer splittelse mellem mesterskabsspil og kvalifikationsspil efter grundspil. Det er mere komplekst end engelske ligaer, og det er præcis derfor, en simulering er nyttig.
I en typisk simulering efter 10 runder ser fordelingen nogenlunde sådan ud (tallene er illustrative): FCK vinder titlen i cirka 42 procent af sæsonerne, FCM i 28 procent, Brøndby i 11 procent, AGF i 8 procent, og resten fordelt med enkeltcifrede procentsatser. Det er ikke, fordi de svage hold er umulige — det er, fordi kombinationen af budgetforskelle og oparbejdet form har skabt et skråplan. Som Deloitte-partneren Jesper Jørgensen har udtrykt det, økonomien i Superliga-klubberne har aldrig været mere robust, end den er nu, og det handler om store penge for dansk fodbold. Spillerbudgetter på 300 mio. kroner i FCK mod markant lavere beløb længere nede i ligaen oversættes direkte til sandsynligheder i en model.
I nedrykningsenden er variansen højere. Et hold, der ligger sidst efter 10 runder, rykker ud i 60-75 procent af simulerede sæsoner, ikke 100. Der er plads til opsving, især hvis holdet får heldige opgørsøjeblikke eller spillertrup-opgraderinger. Den slags usikkerhed er præcis det, som bookmakere skjuler bag bredere margin, og der er ofte værdi på “overlevelse” for bundhold, hvor offentligheden overvurderer, hvor sikker nedrykningen er.
En simulering giver dig også kondensmarkeder: top-3, top-4, top-6, kvalifikation til Europa. På top-3 får FCK+FCM+Brøndby typisk en samlet sandsynlighed omkring 65-75 procent — men resten deler sig mellem AGF, Viborg, Randers og andre med enkeltcifrede sandsynligheder, der alligevel summer til 25-35 procent. Det er der, overraskelserne bor.
En vigtig praktisk detalje: alle simuleringer er kun så gode som input-data. Hvis dine styrkeparametre er forkerte, er simuleringen lige så forkert bare gentaget 10 000 gange. Jeg kalibrerer mine parametre hver 3.-4. runde ved at sammenligne modellens forudsagte resultater med faktiske, og jeg vægter de seneste kampe tungere. Det er ikke perfekt, men det fanger dynamiske trends som ny træner, transfers og skader.
Hvad resultatet kan bruges til i praksis
Den første og mest direkte anvendelse er outright-markedet. Hvis din simulering siger, at FCM vinder i 28 procent af sæsoner, er din fair odds på FCM-titel 1 / 0,28 = 3,57. Tilbyder bookmakeren 5,00, har du potentielt value. Tilbyder de 3,00, er du under fair, og du skal ikke spille. Det er den reneste form for simuleringsdrevet værdispil.
Den anden anvendelse er positionsmarkeder. “Vil FC København slutte i top-3?” “Vil AGF kvalificere sig til Europa?” Det er spørgsmål, der afhænger af mange kampes udfald samtidig, og Monte Carlo er praktisk den eneste metode, der håndterer det elegant. Her ligger værdien ofte spredt, fordi offentligheden og casinoerne overvurderer store navne og undervurderer hold med god pointudvikling.
Tredje og mindre direkte: Monte Carlo kan bruges til risikostyring på kombinationer. Hvis du overvejer en accumulator på fem kampe, kan du simulere dem samtidigt for at se, hvor korreleret din samlede udbetaling er. Mange spillere glemmer, at kampene i en liga ikke er statistisk uafhængige — hvis vejret spiller ind én weekend, påvirker det sandsynligvis flere kampe. En simulering fanger sådanne sammenhænge, som en simpel multiplikation af individuelle sandsynligheder misser.
Der er dog en grænse. Simulering kan ikke finde information, modellen ikke har. Hvis der kommer en træner-fyring ti dage før en kritisk kamp, og det ikke er i dine parametre, er simuleringen blind for det. Derfor sidestiller jeg altid simulering med almindelig markeds- og kontekstovervågning. Værdi-beregninger til enkeltkampe supplerer resultaterne, og vores gennemgang af værdibud-metoden giver rammen for, hvordan de to informationsstrømme kombineres. Hele den analytiske ramme for fodbold-væddemål er samlet i den samlede bet tips-guide for Superligaen.
Når matematikken bliver beslutningsramme
Det er nemt at blive forelsket i Monte Carlo-simuleringer, fordi de giver en illusion af præcision. 10 000 gennemløb lyder videnskabeligt. Men præcision er ikke rigtighed. Hvis dine input er forkerte, er dine output også forkerte — bare med beroligende decimaler. Jeg har taget sæsoner, hvor simuleringen var skarp på titlen og totalt ved siden af på nedrykning, fordi bundens styrke-parametre var svære at kalibrere. Det er en læringskurve, der aldrig stopper.
Den vigtigste lektie, jeg har taget ud af at arbejde med simulering, er, at beslutninger skal træffes på tværs af flere modeller. En Poisson-kampmodel, en simuleret sæsonmodel, markedsovervågning, og menneskelig kontekst. Hver af de fire fanger noget, de andre misser. Simuleringen er et værktøj blandt flere — et kraftfuldt værktøj, men ikke det eneste.
Hvor mange simulationer er nok for et pålideligt resultat?
10 000 gennemløb er et robust udgangspunkt for sæsonsimuleringer. Ved det antal bliver den såkaldte Monte Carlo-fejlmargin typisk mindre end 1 procentpoint på outright-sandsynligheder, hvilket er under bookmakernes margin. Færre gennemløb (1 000-5 000) giver mere støj, især på sjældne udfald som titel til underdogs. Flere end 10 000 giver marginal forbedring — det er sjældent ulejligheden værd.
Behøver man programmeringsfærdigheder for at simulere?
Det gør det markant nemmere, men er ikke nødvendigt. En basal simulering af en enkelt kamp kan køres i Excel eller Google Sheets med RAND()-funktionen og Poisson-formler. Sæsonsimulering kræver hundredvis af kampe pr. gennemløb og bliver upraktisk uden Python eller R. Et par dages selvstudie i grundlæggende Python rækker langt for en dedikeret spiller.
Skabt af redaktionen på ”bet Tips Fodbold”.
