Pillar gids

Expected Goals (xG) Uitgelegd

Hoe shot-kwaliteit modellering scorelijn-analyse verving in het moderne voetbal

Expected Goals (xG) is de belangrijkste enkelvoudige statistiek in voetbalanalyse - en ook de meest misbegrepen. In zijn eenvoudigste vorm beantwoordt xG de vraag: gegeven de exacte situatie van dit schot (afstand, hoek, lichaamsdeel, of het uit een voorzet kwam, of een verdediger erbij was), hoe vaak scoort een gemiddelde speler? Tel de xG van elk schot dat een ploeg in een wedstrijd neemt op en je krijgt hun verwachte goaltotal - een veel eerlijker schatting van hoe goed ze speelden dan het daadwerkelijke goaltotaal, dat onderhevig is aan de lat, gelukkige afketsers en keepersheldendaden.

Waar xG vandaan komt

Het xG-concept kwam op in de vroege jaren 2010, populair gemaakt door analisten als Sam Green bij Opta en Michael Caley bij Cartilage Free Captain. De basisinzicht is dat schoten niet even waardevol zijn: een inschieter van twee meter heeft ~90% scorekans; een afstandsschot van 30 meter heeft ~3% scorekans. Elk schot behandelen als één 'schoten op doel' eenheid wast het echte signaal uit.

Een modern xG-model is een logistische regressie (of gradient-boosted tree) getraind op miljoenen historische schoten. Voor elk schot neemt het afstand tot het doel, hoek tot het doel, gebruikt lichaamsdeel, pass-type dat eraan voorafging, aantal verdedigers tussen schutter en doel, en soms de stand (winnend / verliezend, minuut van de wedstrijd). De output is een kans tussen 0 en 1 - dat is de xG-waarde van het schot.

Een ploeg met 1.8 xG in een wedstrijd wordt gezegd gemiddeld 1.8 goals aan kansen te hebben gecreëerd. Als ze de wedstrijd 3-0 wonnen ondanks slechts 1.2 xG, overtroffen ze hun proces; als ze 0-1 verloren met 2.4 xG, bleven ze onder hun proces. Over lange samples convergeren echte goals naar xG omdat de afwijkingen grotendeels willekeurig zijn (keepers reddingen, paal, VAR-beslissingen).

Waarom analisten het haten (en waarom ze ongelijk hebben)

De meest voorkomende klacht tegen xG is dat het 'context negeert' - het behandelt elk schot hetzelfde ongeacht de druk, de keeper, de stand. De moderne generatie modellen houdt eigenlijk rekening met de meeste van die factoren, maar de bredere kritiek mist het punt: xG probeert niet te beschrijven wat er gebeurde, het probeert te beschrijven wat er gemiddeld zou gebeuren als dezelfde kansen herhaaldelijk werden overgespeeld.

De andere kritiek is dat xG klinisch afwerken onderwaardeert. Jamie Vardy is berucht als een 'clinical finisher' - een speler die meer scoort dan zijn kansen suggereren. Maar zelfs Vardy regresseert: over zijn beste vijf seizoenen liggen zijn echte goals 15% boven zijn xG, niet 50%. Op wedstrijdbasis kan het gat dramatisch lijken, maar het krimpt snel over langere samples, wat precies is wat je wilt van een stabiele modelinput.

Het echte gevaar van xG is overtoepassing. xG gebruiken om de eindstand van komend weekend te voorspellen is prima; het gebruiken om te voorspellen wie volgende maand topscorer wordt vereist extra schotvolume-projecties, strafschoppenopdrachten en rotatierisico - dingen die het rauwe xG-getal niet vastlegt. BetsPlug gebruikt xG alleen waar het voor ontworpen is: het schatten van de Poisson-lambda voor elke ploeg in een aanstaande wedstrijd.

Van xG naar wedstrijdvoorspelling

Binnen ons ensemble gebruiken we xG niet als stand-alone signaal. We voeden de rollende xG-cijfers van elke ploeg (aanvallende output, defensieve tegengoals, thuis/uit-verdeling) in een Poisson-goalmodel dat een kansverdeling over elke mogelijke eindstand produceert. Vanuit daar kun je de 1X2-kansen, Over/Under totals, BTTS-kansen en Asian handicap-lijnen afleiden - allemaal uit dezelfde xG-gedreven Poisson-surface.

Het lastige is beslissen hoeveel wedstrijden aan xG-historie je meeweegt. Te weinig en je overreageert op kleine samples (een 6-schoten-burst van Bruno Fernandes tegen tien man betekent niet dat de aanval van United ineens elite is). Te veel en je mist echte vormverschuivingen (Arsenal's aanvallende output veranderde betekenisvol nadat Ødegaard terugkwam van blessure). Onze pijplijn gebruikt een rollend window dat de laatste 8 wedstrijden mengt met een seizoens-level long-run prior, gewogen op basis van het betrouwbaarheidsinterval rond de huidige schatting.

De xG-pijplijn is ook waar we dataproblemen het snelst vangen. Elke week kruisen we de xG-totalen van onze primaire datavendor met een secundaire bron. Wedstrijden met afwijkingen boven 0.4 xG worden gemarkeerd voor handmatige controle voordat een downstream-model ze gebruikt. Dit klinkt saai maar het is precies het soort plumbing dat een hobbymodel onderscheidt van een productiesysteem.

Veelgemaakte xG-fouten

Fout één: xG behandelen als gegarandeerd resultaat. 'Arsenal had 2.5 xG dus ze hadden moeten winnen' is een verkeerde lezing - ze hadden een prestatie die consistent is met 2.5 gemiddelde goals, maar de echte verdeling is breed. Een ploeg met 2.5 xG scoort nog steeds ~8% van de tijd nul.

Fout twee: xG vergelijken tussen zeer verschillende dataproviders. StatsBomb xG, Opta xG en Understat xG gebruiken allemaal verschillende trainingssets, verschillende feature engineering en verschillende shot-metadata, dus een 1.8 xG van de ene provider is niet gelijk aan 1.8 xG van een andere. Vergelijk altijd gelijkwaardige bronnen.

Fout drie: xG verwarren met een vaardigheidsrating. Een speler met 0.5 xG per 90 minuten is niet een betere afmaker dan een speler met 0.4 xG per 90 - hij komt alleen in betere posities. Afrondingsvaardigheid zie je in het gat tussen verwachte en echte goals, dat ruisig is en pas stabiliseert over duizenden schoten.

Alleen voor leden

Ontgrendel elke wedstrijd

Sluit je aan bij BetsPlug en zie alle aankomende voorspellingen uit de topcompetities - met betrouwbaarheidsscores, live updates en ons volledige publieke track record.

  • Onbeperkte dagelijkse AI-voorspellingen
  • Alle 4 modellen + Ensemble-output
  • Live kansberekening
  • Altijd opzegbaar - 14 dagen retour

Slechts €0,01 activeert je 7-daagse volledige-toegang-proef.

Expected Goals (xG) Uitgelegd - Veelgestelde vragen

Veelgestelde vragen over dit onderwerp, beantwoord zonder marketingpraatjes.

Hoe verschilt xG van 'schoten op doel'?
Schoten op doel telt elke poging even zwaar - een inschieter en een hoopvol afstandsschot tellen beide als 1. xG weegt elk schot op basis van zijn scorekans, dus een inschieter kan 0.9 xG toevoegen terwijl het afstandsschot 0.03 xG toevoegt.
Kan xG voorspellen welk team wint?
Niet op zichzelf, maar voed de rollende xG-cijfers van twee ploegen in een Poisson-goalmodel en je krijgt een kansverdeling over elke eindstand - inclusief 1X2-kansen. Dat is precies wat het Poisson-onderdeel van BetsPlug doet.
Welke xG-provider gebruikt BetsPlug?
We halen data van football-data.org, kruiselings gecheckt met OpenLigaDB voor competities waar beide beschikbaar zijn. Wedstrijden met grote afwijkingen worden gemarkeerd voor handmatige controle.
Waarom hebben sommige wedstrijden 'verkeerde' xG-resultaten?
Korte-termijn variance. Een ploeg kan 2.5 xG hebben en 0-1 verliezen omdat afmaken probabilistisch is. Over een volledig seizoen (~38 wedstrijden) volgen echte goals xG nauw, maar individuele wedstrijden kunnen substantieel afwijken.
Neemt xG strafschoppen mee?
De meeste providers wel - een standaard strafschop krijgt 0.76 xG toegewezen (het historische conversiepercentage). BetsPlug splitst strafschop-xG intern van open-spel-xG zodat post-match xG-totalen het echte shot-kwaliteitsbeeld weerspiegelen.