Maaliodottama ei ole yksi luku — tässä on mitä sen laskeminen oikeasti vaatii

Rakennamme saman menetelmän, jota MM-2026-kisojen viralliset lähetykset käyttävät

avoin data
ennustaminen
koneoppiminen
Author

Kristian Vepsäläinen

Published

1.7.2026

Some-keskustelu, joka kaipaa oikeaa vastausta

Jalkapallon miesten MM-kisojen aikana somessa käytiin taas tuttu kiista: yhden studiolähetyksen perusteella väitettiin, että kommentaattorit eivät ymmärrä kunnolla maaliodottamaa (xG, expected goals). Riippumatta siitä, kuka väitteen esitti tai oliko hän oikeassa yksittäisen illan osalta, väite paljastaa jotain kiinnostavampaa kuin itse kiistan: hyvin harva, joka puhuu xG:stä julkisesti, on koskaan itse rakentanut sitä laskevaa mallia.

Tässä postauksessa emme tyydy approksimaatioon. Rakennamme täsmälleen sen menetelmän, jota FIFA:n virallinen datakumppani Stats Perform (Opta) käyttää juuri nyt käynnissä olevissa MM-2026-kisoissa: gradient boosting -mallin (XGBoost), joka on opetettu laukauksen ominaisuuksilla — mukaan lukien maalivahdin sijainnilla ja puolustajien asemoinnilla. Käytämme oikeaa avointa dataa, näytämme koko putken läpinäkyvästi, ja lopuksi sovellamme mallia yhteen kuuluisaan otteluun.

Data: StatsBomb Open Data

Käytämme StatsBombin avointa dataa — ilmaista, tapahtumatason jalkapallodataa, jota StatsBomb julkaisee tutkimuskäyttöön. Data sisältää jokaisen kentällä tapahtuneen toiminnon sekunnin tarkkuudella, kenttäkoordinaateilla, ja mikä tärkeintä laukausten kohdalla: freeze frame -tiedon, eli tilannekuvan siitä, missä maalivahti ja muut pelaajat olivat laukaisuhetkellä.

Rajasimme aineiston kolmeen miesten arvoturnaukseen, koska alkuperäinen kiista koski nimenomaan miesten MM-kisoja:

  • Jalkapallon MM-kisat 2018 (64 ottelua)
  • Jalkapallon MM-kisat 2022 (64 ottelua)
  • Euroopan mestaruuskilpailut 2020 (51 ottelua)

Yhteensä 179 ottelua, 4 302 avoimen pelin / vapaapotku- / kulmapotkulaukausta rangaistuspotkujen poiston jälkeen (penaltyt jätettiin pois, koska niiden maalitodennäköisyys ei riipu laukaisupaikasta samalla tavalla). Näistä maaliksi päätyi 409 kappaletta — keskimääräinen maalintekoprosentti 9,5 %.

Piirteet: miksi pelkkä etäisyys ja kulma eivät riitä

Julkiset “tee itse xG kotona” -esimerkit tyytyvät usein pelkkään etäisyyteen ja kulmaan. Se on hyvä alku, mutta oikeat ammattimallit menevät pidemmälle. Opta kuvaa oman mallinsa käyttävän yli 20:tä muuttujaa laukaushetkeltä — mukaan lukien maalivahdin sijainti ja onko kyseessä yksi-yhtä-vastaan-tilanne. StatsBombin freeze frame -data mahdollistaa saman laskennan itse: jokaiselle laukaukselle tiedämme, missä maalivahti ja muut kentällä olleet pelaajat olivat sillä hetkellä.

Rakensimme näin kymmenen piirrettä:

Piirre Mitä se mittaa
dist Etäisyys maaliin
angle Maalin näkyvä kulma laukaisupaikasta
header Oliko laukaus päällä
under_pressure Oliko laukoja puolustajan painostama
first_time Ensikosketuslaukaus
gk_dist Maalivahdin etäisyys maalista laukaisuhetkellä
gk_angle_offset Kuinka sivussa maalivahti oli maalin keskilinjasta
defenders_in_cone Kuinka moni puolustaja oli suoraan laukaisulinjalla
one_on_one Oliko laukoja yksin maalivahtia vastaan (ei puolustajia välissä)
attackers_nearby Kuinka moni oma pelaaja oli laukaisijan edessä (jatkohyökkäysmahdollisuus)

Malli: gradient boosting (XGBoost) — sama menetelmä kuin virallisessa datassa

Gradient boosting on koneoppimismenetelmä, joka rakentaa satoja peräkkäisiä yksinkertaisia päätöspuita. Jokainen uusi puu keskittyy korjaamaan niitä tapauksia, joissa edelliset puut olivat väärässä. Lopputulos on malli, joka pystyy oppimaan monimutkaisia yhdysvaikutuksia — esimerkiksi sen, että etäisyyden vaikutus maalitodennäköisyyteen riippuu myös siitä, kuinka avoin kulma on — ilman että näitä yhdysvaikutuksia täytyy käsin määritellä. Tämä on juuri se menetelmä, jota Opta kuvaa käyttävänsä omassa xG-mallissaan.

Validointi: toimiiko mallimme oikeasti?

Testasimme mallia datalla, jota se ei nähnyt harjoitteluvaiheessa (25 % otos), ja lisäksi viisinkertaisella ristiinvalidoinnilla vakauden varmistamiseksi:

Mittari Arvo Tulkinta
AUC (testijoukko) 0,75 Malli erottaa maalit ja ohilaukaukset selvästi paremmin kuin karkeampi malli
AUC (5-fold CV, keskiarvo) 0,77 (keskihajonta 0,02) Tulos on vakaa eri otoksilla, ei sattumaa yhdestä jaosta
Brier-pisteet 0,078 Mitä lähempänä nollaa, sitä paremmin kalibroitu malli
Korrelaatio StatsBombin omaan ammattilaismalliin 0,87 Malli seuraa erittäin läheisesti ammattilaisten vastaavaa mallia
Keskimääräinen itseisvirhe StatsBombin malliin 0,036 Tyypillinen ero on alle 4 prosenttiyksikköä

Kalibraatio kymmenessä desiilissä — jaoimme kaikki laukaukset kymmeneen ryhmään ennustetun xG:n mukaan ja verrattiin ennustettua keskiarvoa toteutuneeseen maalintekoprosenttiin samassa ryhmässä:

Alimmasta desiilistä (ennustettu 2,7 %, toteutunut 3,7 %) ylimpään (ennustettu 34,8 %, toteutunut 35,5 %) ennuste ja toteuma pysyvät koko matkan lähellä toisiaan — merkki siitä, että malli ei ole vain hyvä erottelemaan hyviä ja huonoja tilaisuuksia, vaan myös antaa oikean kokoluokan todennäköisyyksiä.

Mikä laukauksessa oikeasti ratkaisee: SHAP-selitykset

Gradient boosting -mallin sisäistä logiikkaa ei voi lukea suoraan kertoimista, kuten logistisesta regressiosta. Sen sijaan käytämme SHAP-arvoja (SHapley Additive exPlanations), jotka kertovat jokaiselle piirteelle, kuinka paljon se nosti tai laski juuri kyseisen laukauksen maalitodennäköisyyttä. Tämä on sama menetelmä, jota ammattianalyytikot käyttävät selittäessään puumallien päätöksiä.

Koko aineiston tasolla tärkeimmät piirteet keskimääräisen vaikutuksen mukaan olivat: kulma (selvästi tärkein), puolustajien määrä laukaisulinjalla,maalivahdin etäisyys maalista, oliko laukaus päällä , ja vasta näiden jälkeen muut maalivahdin sijaintiin liittyvät piirteet. Tämä on hyödyllinen korjaus yleiseen oletukseen: moni kuvittelee maalivahdin sijainnin olevan xG:n tärkein tekijä, mutta datassa laukaisukulma ja välissä olevien puolustajien määrä selittävät enemmän vaihtelua.

Esimerkki: Messin ratkaiseva maali MM-2022-finaalissa

Havainnollistetaan SHAP-selitys yhdellä tunnetulla laukauksella: Lionel Messin maali 107. minuutilla MM-2022-finaalissa, joka teki tilanteen 3–2 Argentiinalle jatkoajalla ennen Ranskan tasoitusta ja lopullista rangaistuspotkukilpailua.

Piirre Arvo Vaikutus todennäköisyyteen
Kulma 1,40 rad (erittäin avoin) + voimakkain nostava tekijä
Etäisyys 4,5 metriä + toiseksi voimakkain nostava tekijä
Ei puolustusta ollut painostamassa + nostava
Ensikosketuslaukaus kyllä + lievästi nostava
Maalivahdin sijainti 4,1 metrin päässä − lievästi laskeva

Mallin lopputulos tälle laukaukselle: 54,6 % maalitodennäköisyys. Toisin sanoen: vaikka laukaus näytti televisiossa vaikuttavalta, malli arvioi sen olevan hieman parempi kuin kolikonheitto — ei mikään “varma maali”, vaan korkealaatuinen mutta silti epävarma tilaisuus. Juuri tämä ero — visuaalisesti vaikuttavan ja tilastollisesti korkealaatuisen laukauksen välillä — on se, mitä xG tuo keskusteluun, jota pelkkä silmämääräinen arvio ei tarjoa.

Tilastollinen testi: eroavatko lähilaukaisut päällä ja kaukolaukaisut jalalla oikeasti toisistaan?

Vertasimme kahta ryhmää koko aineistossa:

  • Lähilaukaisut päällä (alle 11 metrin päästä): 515 laukausta, maalintekoprosentti 14,2 %
  • Kaukolaukaisut jalalla (vähintään 20 metrin päästä): 1 864 laukausta, maalintekoprosentti 3,2 %

Khiin neliö -testi: χ² = 91,2, p < 0,001 Fisherin eksakti testi: ristitulosuhde (odds ratio) = 5,05, p < 0,001 Bootstrap-luottamusväli erolle (10 000 uudelleenotantaa): 95 % luottamusväli [3,5 %, 7,4 %]

Kaikki kolme kertovat saman: ero ei selity sattumalla. Ristitulosuhde 5,05 tarkoittaa, että lähilaukaus päällä johtaa maaliin noin viisinkertaisella todennäköisyydellä verrattuna kaukolaukaisuun jalalla — konkreettisempi tapa ilmaista efektin koko kuin pelkkä p-arvo.

Tapaus: MM-2022-finaali ja yhden ottelun harha

Sovelletaan mallia yhteen otteluista tunnetuimmista: Argentiinan ja Ranskan MM-2022-finaali, joka päättyi 3–3 (Argentiina voitti jatkoaikojen jälkeen rangaistuspotkukilpailussa). Rangaistuspotkut poistettuna aineistostamme:

Joukkue Laukauksia Maaleja (ei sis. penaltyt) Yhteenlaskettu xG
Argentiina 19 2 2,09
Ranska 8 1 0,64

Pelkän lopputuloksen (3–3) perusteella ottelu näytti tasaiselta. Laukausten laadun perusteella se ei ollut: Argentiina loi runsaat kolme kertaa enemmän maaliodotusarvoa kuin Ranska.

Monte Carlo -simulaatio koko ottelun maalijakaumasta (100 000 kierrosta, jokainen laukaus arvottu omalla maalitodennäköisyydellään):

  • Argentiina: odotettu maalimäärä 2,09, 95 % väli 0–5 maalia
  • Ranska: odotettu maalimäärä 0,64, 95 % väli 0–2 maalia
  • Mallin mukaan Argentiina olisi laukaisujensa laadulla tehnyt vähintään yhtä paljon maaleja kuin Ranska 92,7 % simuloiduista ottelukierroksista

Tämä ei tarkoita, että ottelu olisi ollut “epäreilu” — se tarkoittaa, että yhden ottelun lopputulos on yksi näyte laajasta mahdollisten tulosten jakaumasta, ja äärimmäisen laadukaskin ottelu voi silti päättyä epätodennäköiseen tulemaan.

Rikkaammat piirteet toivat mallin lähemmäs ammattilaistasoa

Konkreettinen todiste siitä, miksi maalivahdin sijainti ja puolustajien asemointi kannattaa mallintaa: Ranskan Randal Kolo Muanin 122. minuutin tilanne, Ranskan viimeinen suuri mahdollisuus jatkoajalla (Argentiinan maalivahti Martínez torjui). Kun mallinsimme laukauksen pelkällä etäisyydellä ja kulmalla, sen todennäköisyydeksi tuli vain 9,6 %, kun StatsBombin oma ammattimalli antoi 27,8 %. Kun lisäsimme freeze frame -pohjaiset piirteet — laukaisijalla ei ollut yhtään puolustajaa välissä (defenders_in_cone = 0) ja maalivahti oli poikkeuksellisen kaukana (gk_dist = 10,9) — malli nosti arvionsa 33,7 prosenttiin, itse asiassa hieman yli ammattimallin. Tämä havainnollistaa suoraan, miksi virallisissa malleissa maalivahdin sijainti on mukana: ilman sitä juuri tällaiset “avoin maali mutta pitkä matka” -tilanteet aliarvioidaan systemaattisesti.

Miten maaliodottama lasketaan oikeasti käynnissä olevissa MM-kisoissa

FIFA on nimennyt Stats Performin (Opta) viralliseksi tilasto- ja datakumppanikseen koko MM-2026-turnaukselle — kaikille 104 ottelulle. Opta toimittaa sekä lähetysyhtiöiden studioihin että FIFA:n omille tilastosivuille reaaliaikaisen xG-luvun jokaiselle laukaukselle, ja se on rakennettu täsmälleen tässä postauksessa käytetyllä menetelmällä: gradient boosting (XGBoost), opetettuna lähes miljoonalla historiallisella laukauksella yli 40 kilpailusta, käyttäen yli 20:tä muuttujaa mukaan lukien maalivahdin sijainti. Muutama lisäys, joita meidän opetusmallissamme ei ole:

  • Rangaistuspotkuille oma vakioarvonsa (historiallisen onnistumisprosentin perusteella, noin 0,79), koska niiden maalitodennäköisyys ei riipu laukaisupaikasta.
  • Erilliset mallit miesten ja naisten kilpailuille, koska esimerkiksi etäisyyden ja maalivahdin sijainnin vaikutus maalintekotodennäköisyyteen eroaa systemaattisesti niiden välillä.
  • xGOT (expected goals on target) — laukausjälkeinen versio, joka lasketaan vasta kun tiedetään mihin kohtaan maalia laukaus oli menossa. Tämä erottaa tilaisuuden laadun (xG) laukaisun toteutuksesta: jos pelaajan xGOT on systemaattisesti xG:tä korkeampi, hän on keskimääräistä parempi viimeistelijä eikä vain onnekas.

Konkreettinen esimerkki tämänhetkisistä MM-kisoista: ryhmävaiheen ottelu Qatar–Sveitsi (13.6.2026) päättyi tasapeliin 1–1. Opta-mallin xG-luvut kertoivat toisen tarinan kuin lopputulos: Sveitsi keräsi 3,24 xG:tä, Qatar vain 0,76 xG:tä — Sveitsi loi laadultaan yli neljä kertaa arvokkaampia tilaisuuksia mutta hyödynsi niistä vain yhden. Tämä on juuri sitä tietoa, jota pelkkä lopputulos ei koskaan kerro.

Takaisin alkuperäiseen väitteeseen

Koko some-kiista xG:n ymmärtämisestä nojasi yhteen havaintoon: yksi studioilta, yksi mielipide siitä, ymmärsikö joku käsitteen “oikein”. Mutta juuri tämä on tilastollisesti sama virhe, jota koko postaus on käsitellyt: yhdestä havainnosta ei voi päätellä luotettavasti mitään — ei kenenkään asiantuntemuksesta, eikä yhden ottelun lopputuloksesta joukkueen todellisesta tasosta.

xG:n ymmärtäminen ei tarkoita yksittäisen luvun ulkoa muistamista. Se tarkoittaa sen ymmärtämistä, että luku on satojen puiden yhdessä tuottama todennäköisyysarvio, opetettu miljoonalla historiallisella havainnolla, validoitu erillisellä testijoukolla — ei mutu-arvio eikä mielipide.

Mitä tästä opit, jos teet päätöksiä datalla

Sama logiikka pätee luottopäätöksiin, sopimusriskien arviointiin ja compliance-prosesseihin: hyvä ennustemalli ei tyydy yksittäiseen pistearvoon ilman validointia. Se testataan datalla, jota se ei ole nähnyt, sen tärkeimmät tekijät selitetään läpinäkyvästi, ja sen tarkkuus raportoidaan rehellisesti — myös silloin kun se ei ole täydellinen.

Autan organisaatioita rakentamaan tällaisia malleja — sellaisia, jotka kestävät kysymyksen “miten tiedät että tämä toimii?”. Jos tämä kiinnostaa, varaa aika keskusteluun.

Käytännön ohje: miten hyödynnät livenä näkyvää xG-lukua, vaikka et osaisi tilastotiedettä

Et tarvitse yhtään kaavaa hyötyäksesi xG:stä television tai FIFA:n sovelluksen ruudulla. Riittää, että katsot sitä oikealla tavalla:

  1. Älä lue xG:tä yksin — lue se aina lopputuloksen rinnalla. Jos luvut ja lopputulos täsmäävät suunnilleen, ottelu meni “odotetusti”. Jos ne eivät täsmää — kuten Qatar–Sveitsi-ottelussa — tiedät, että jompikumpi joukkue joko viimeisteli poikkeuksellisen hyvin tai huonosti, tai maalivahti pelasti illan.

  2. Yksi ottelu ei todista mitään joukkueen tasosta. Yhden ottelun tulos on yksi arvottu näyte laajasta jakaumasta. Vasta useamman ottelun yli (nyrkkisääntönä 3–5 ottelua) xG alkaa kertoa luotettavammin, mikä joukkue on oikeasti hyvä, kuin pelkkä maaliero.

  3. Tarkkaile, syntyykö suuri osa xG:stä yhdestä ainoasta tilaisuudesta. Jos joukkueen 2,0 xG koostuu yhdestä 1,5 xG:n huippumahdollisuudesta ja muutamasta pienestä rippeestä, se on eri tilanne kuin sama 2,0 xG jaettuna tasaisesti kymmenelle kohtalaiselle mahdollisuudelle — ensimmäinen on herkempi yhdelle onnistuneelle tai epäonnistuneelle hetkelle.

  4. Jos näet sekä xG:n että xGOT:n, vertaa niitä. xG kertoo tilaisuuden laadun, xGOT laukaisun laadun. Jos joukkueen xGOT on selvästi xG:tä korkeampi, he laukovat tarkasti; jos matalampi, he tuhlaavat hyviä tilaisuuksia huonoilla laukauksilla.

  5. Muista pelitilanne. Jäljessä oleva joukkue ottaa loppupuolella tyypillisesti enemmän epätoivoisia kaukolaukauksia, mikä nostaa laukausmäärää muttei juuri xG:tä. Korkea laukausmäärä matalalla xG:llä ei tarkoita huonoa peliä — usein se tarkoittaa, että joukkue joutui ottamaan riskejä ajan loppuessa.

Näillä viidellä huomiolla pääset pidemmälle kuin suurin osa studiokeskusteluista — ilman yhtäkään kaavaa.


Kaikki tässä postauksessa käytetty laukausdata on StatsBombin avointa dataa (github.com/statsbomb/open-data), mukaan lukien freeze frame -tiedot maalivahdin ja puolustajien sijainnista. Koodi tähän analyysiin on saatavilla pyynnöstä. Tiedot MM-2026-kisojen virallisesta xG-mallista perustuvat Stats Performin/Optan julkisiin kuvauksiin heidän menetelmästään (theanalyst.com) sekä FIFA:n ja Stats Performin kumppanuustiedotteeseen.