Sivu 1/1

Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja p_zombie
Tervehdys vaan kaikille!

Muutama sana aluksi taustasta: Joskus vuosia sitten pyörittelin erilaisia (sangen yksinkertaisia) tilastollisiamalleja jalkapallopelien ennustamiseen, mutta ei niistä lopulta koskaan mitään hyödyllistä irti saanut. Nyt homma on taas alkanut enenevässä määrin kiinnostamaan ja taidotkin ovat toivottavasti kehittyneet. Pohjalla on siis jonkin verran tietoa vedonlyönnistä/todennäköisyyksien laskemisesta, mutta pyrin aloittamaan melko pitkälle "tyhjältä pöydältä" perusasioista lähtien. Katsotaan josko nyt hiukan systemaattisemmalla lähestysmitavalla saisi jotain järkevääkin aikaan.

Blogiin olisi tarkoitus kirjoteilla lähinnä tiivistelmiä muistiinpanoista/havainnoista, joita matkanvarrella syntyy. Kirjoitukset tulevat yleensä keskittymään johonkin tiettyyn mallintamisen osaongelmaan. Mitään veikkausvihjeitä tms. ei siis ole luvassa ainankaan alkuvaiheessa, jos koskaan. Alussa keskityn ainoastaan jalkapalloon, myöhemmin lajivalikoima voi ehkä kasvaa. Ainankin jääkiekko vaikuttaisi kiinnostavalta vaihtoehdolta, koska siihen on nykyisin saatavilla sangen monipuolisesti erilaisia tilastoja. Kirjoitustahti tullee olemaan epäsäännöllinen ja harva (max muutamia päivityksiä/kk).

Edit: Kirjoittelin myös joskus vuosia sitten tänne foorumille, mutta en nyt muistanut tunnuksia/salasanoja. Mitään merkittävää viestihistoriaa ei tosin taustalla ollutkaan.

Re: Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja p_zombie
Ensimmäisenä aiheena on jalkapallon tärkein osa, eli maalit. Tämä nyt toimii enemmän "lämmittelynä", eikä luultavastikaan tule sisältämään mitään erityisen uutta/mullistavaa tietoa kenellekään. Eli loistava tapa aloittaa blogi.

Data
Betexplorerilta kerätyt otteluraportit, jotka sisältävät myös maalintekoajat seuraavien maiden pääsarjoista: Englanti, Italia, Ranska, Hollanti, Espanja ja Saksa. Noin 10 kautta/liiga 2000-luvun alusta viime kauteen, riippuen siitä miten dataa oli saatavilla (esim. kausi 2011 piti poistaa kaikista, kun Betexplorerilla oli paljon puuttuvia tietoja yms). Yhteensä 18805 peliä, joissa tehtiin 50128 maalia (ka. ~2.67/peli).

Marginaalijakaumat
Ensimmäiseksi tarkastellaan maalien marginaalijakaumia (siis koti- ja vierasmaaleja erikseen). Linkit histogrammeihin:kotimaalit
vierasmaalit. Näissä nyt ei oikeastaan mitään kummempia nouse esiin.

Sitten maalien syntyhetkien jakaumat: koti, vieras. Tämä näyttää jo paljon mielenkiintoisemmalta. Esiin nousee ainankin 3 asiaa:
1. Puoliaikojen ensimmäisenä minuutteina syntyy selkeästi vähemmän maaleja mitä muilloin
2. Puolestaan viimeisinä minuutteina valtavasti enemmän
3. Nouseva trendi

Näistä kahteen ensimmäiseen kohtaan on löydettävissä melko selkeät syyt. Ensimmäinen kohta selittyy sillä, että peli aina käynnistyy keskialueelta. Ts. joukkueilla menee minimissäänkin joitakin kymmeniä sekuntteja, ennen kun ne edes teoriassa voisivat luoda maalintekopaikan. Tämä on selkeä ero muihin ajanhetkiin. Toinen kohta selittyy datalla. Yliajalla syntyneet maalit on merkitty aina sille viimeiselle minuutille, eikä niiden pituus siis ole 1 min kuten muissa. 3. kohta sen sijaan on mielenkiintoisempi. Yksi mahdollinen selitys voisi olla joukkueiden väsyminen ottelun aikana. Väsymys johtaa virheisiin ja puolustamisessa yksikin virhe voi johtaa maaliin.

Näistä voidaan vetää myös yksi toinen johtopäätös. Tämä liittyy siihen, että marginaalijakaumia usein mallinnetaan Poisson jakauman avulla. Esitetty data kuitenkin on ristiriidassa Poisson jakauman taustalla olevien oletusten kanssa. Poisson jakauma on johdettu kahden olettamuksen varaan, eli tapahtumat ovat riippumattomia ja intensiteetti pysyy samana. Selkeästikään näistä ainankaan tuo toinen olettamus ei jalkapallossa päde (ja epäilen ensimmäistäkin). Tosin jos ajatellaan ottelun "keskiarvointensiteettiä" ja mallinnetaan vain ottelun lopputulosta, niin tästä ei välttämättä synny kovin suuria ongelmia. Sen sijaan paljon suurempi ongelma on maalien yhteisjakauma, johon keskitytään seuraavaksi.

Yhteisjakauma
Aluksi taas muutamat graafit: yhteisjakauman frekvenssit, koti- ja vierasmaalien ehdolliset keskiarvot.

Yksi mielenkiinnon kohde on maalien riippuvuus tai riippumattomuus, joka helpottaisi huomattavasti mallintamista. Eli yhteisjakauma (X=kotimaalit, Y=vierasmaalit) P(X,Y)=P(X)*P(X|Y) kirjoitettaisiin yksinkertaisesti muodossa P(X)*P(Y), ts. kerrotaan vain marginaalitodennäköisyydet keskenään.

Kuitenkin jo nuo ehdolliset maalien keskiarvot antavat selkeää viitettä siihen, että maalit eivät ole riippumattomia. Jos olisivat, kaikki ehdolliset ka:t olisivat suurin piirtein samalla tasolla. Lisäksi käytetylle datalle kotimaalien ja vierasmaalien välillä on pieni negatiivinen korrelaatio (~ -0.028).

Jos nyt kuitenkin käytetään aiemmin laskettuja marginaalijakaumia ja kerrotaan ne keskenään, niin saadaan seuraavanlainen yhteisjakauma , riippumaton/havaittu jakauma. Tämä antaa jotain viitteitä siitä, mitä virheitä riippumattomuus oletus tuo. Suurimpina ovat ainankin tasapelin aliarvostaminen ja vierasjoukkueen yhden maalin voiton yliarvostaminen.

Syitä maalien riippuvuudelle on varmasti monia. Esimerkiksi:
1. Joukkueen täytyy pitää palloa tehdäkseen maalin -> toinen joukkue ei voi tehdä -> negatiivinen korrelaatio
2. Tasapeliin tyytyminen. Esim. jos peliä on jäljellä 10min, niin molemmille joukkueille 1p varmistaminen voi olla järkevämpää kun riskillä voiton hakeminen
3. Jos toinen joukkue johtaa esim. 4-0, niin tuskinpa kumpikaan joukkue enää ihan täysillä vetää

Eli joukkueet muokkaavat taktiikoitaan pelitilanteen mukaan sekä myös psykologiset tekijät vaikuttavat. Ei siis ole mikään yllätys, että joukkueiden tekemät maalit ovat riippuvaisia. Mallintamisen kannalta tämä tarkoittaa sitä, että on käytännössä pakko pyrkiä mallintamaan suoraan yhteisjakaumaa, ei ainoastaan marginaalijakaumia. Seuraavassa päivityksessä olisi tarkoitus käydä lyhyesti läpi mitä erilaisia ratkaisuja tähän ongelmaan on esitelty kirjallisuudessa ja keskittyä yhteen niistä vähän tarkemmin.

Re: Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja p_zombie
Pieni muutos alkuperäisiin suunnitelmiin, koska tietokoneeni hajosi viikonloppuna mukanaan kaikki tehdyt simulaatiot ja datat. Tämän seurauksena en ainakaan vielä pysty kirjottelemaan noista maalien yhteisjakaumista, kuten viime viestissä lupailin. Toivottavasti tiedot ovat sentään palautettavissa, muuten hommaan tulisi aika reilusti takapakkia. Nyt oli kuitenkin sopivasti sen verran vapaa-aikaa, että päätin kuitenkin kirjoitella yhdestä toisesta erittäin keskeisestä kysymyksestä, joka liittyy vedonlyöntiin ja vähän muuhunkin.

Aiheena on todennäköisyys. Mitä sillä oikeastaan käsitteenä tarkoitetaan? Mitä tarkoitetaan jos sanotaan, että Manchester United voittaa 70% todennäköisyydellä oman pelinsä? Tämä on kaikkea muuta kuin triviaali kysymys, miltä se ehkä aluksi voi kuulostaa. Itseasiassa vastauksesta ei edes ole mitään yksimielisyyttä. Ja mikä tärkeintä, asia ei edes jää pelkän filosofisen pohdiskelun tasolle, vaan sillä on tärkeä merkitys käytettävien menetelmien valinnassa, tulosten tulkitsemisessa yms. Erilaiset tulkinnat voidaan jakaa kahteen pääkategoriaan, objektivismiin ja subjektivismiin.

Objektivismi
Objektivismi kategorian tunnetuin ja useimmiten käytetty tulkinta on frekvenssi-tulkinta. Siinä tapahtuman todennäköisyys ajatellaan äärettömän toistokokeen suhteellisen osuuden raja-arvona. Esimerkiksi äärettömän monella kolikonheitolla kruunujen osuus lähestyy 50% kaikista heitoista. Iso kysymys on se miten tätä voitaisiin soveltaa käytännössä. Voidaan tietysti ajatella jonkinlaisia approksimaatioita, eli otetaan jokin tarpeeksi pitkä, mutta äärellinen, sarja josta lasketaan frekvenssit ja ajatellaan näitä todennäköisyyksinä. Mutta sillonkin esim. jalkapallo-ottelut vaikuttavat haasteellisilta, kun toistoja on aina vaan yksi. Tähän rinnalle on kehitetty propensiteetti-tulkinta. Siinä puolestaan ajatellaan, että todennäköisyys on ilmiön ominaisuus. Siis ei tarvita äärettömiä sarjoja, vaan esim. kolikon fyysisistä ominaisuuksista seuraa, että pitkissä sarjoissa klaavan suhteellinen osuus lähestyy 50%. Mutta mistä seuraa se, että Manchester United voittaa 70% todennäköisyydellä? Lisäongelma on tietysti vielä miten tälläisiä todennäköisyyksiä voidaan mitata tai määrittää (yhtenä ratkaisuna esim. uskottavuuslaki)

Subjektivismi
Subjektiivinen todennäköisyystulkinta tarjoaa puolestaan huomattavan erilaisen näkökulman asiaan. Siinä, kuten nimikin viittaa, todennäköisyydellä kuvataan omia henkilökohtaisia uskomuksia. Todennäköisyys 1 tarkoittaa uskomusta, että ilmiö tapahtuu aina ja 0 puolestaan, että ei koskaan ja muut sitten ovat jotain siltä väliltä. Periaattessa siis mikä tahansa käy, kunhan vaan todennäköisyyksien summa on 1. Tärkein/käytetyin subjektiivisista tulkinnoista on ns. bayesialainen tulkinta. Siinä yhdistetään omat (a priori) uskomukset havaittuun dataa ja saadaan lopputuloksena a posteriori uskomus. Toisin sanoen, keskeistä on omien uskomusten päivittäminen havaitun datan perusteella. Tämä tapahtuu soveltamalla Bayesin-kaavaa. Lopputulos kuitenkin siis riippuu vahvasti myös a priori uskomuksista ja niiden perusteltu valitseminen esim. jonkin parametrin osalta voi olla hyvin haastavaa. Ja huonosti valitut alku-uskomukset voivat johtavat huonoihin johtopäätöksiin, vaikka käytössä olisi miten paljon dataa tahansa.

Näistä vaihtoehdoista valintani tässä tapauksessa kohdistui Bayes-tulkintaan. Päällimmäisenä syynä on se, että joukkueiden voimasuhteet vaihtelevat kausien välillä valtavasti. Ja jos/kun halutaan lyödä vetoa heti alkukaudesta lähtien on pakko tuoda myös tilastojen ulkopuolista eksperttitietoa mukaan. Bayesialaisessa lähestysmistavassa tämä tapahtuu hyvin luontevasti priori-jakaumien kautta. Toisena ongelmana on myös pelien pieni määrä. Lopulliseen malliin olisi tarkoitus tuoda (tai ainankin mahdollista) suuri määrä erilaisia tilastoja. Ei ainoastaan maalit, vaan laukaukset, kulmat, kortit, kokoonpanot, taktiikat jne. Mistä nyt dataa sattuu löytymään. Tämä väistämättä johtaa malliin, jossa on valtava määrä parametrejä (tuhansia tms). Seurauksena on helposti mallin ylisovittaminen, eli sen antamat tulokset ei yleisty tulevaisuuteen. Bayesilaisissa menetelmissä priori-jakaumat taas tarjoavat tehokkaan keinon ehkäistä tätä ongelmaa. Tietyt Bayes-mallit myös tarjoavat luonnollisen tuntuisen tavan sisällyttää erilaista dataa malliin, niin että kaikki osat tuovat tietoa toisistaan. Näistä menetelmistä olisi jossain vaiheessa tarkoitus kirjoteilla tarkemmin, mutta ennen sitä ainakin noista maaleista tullee kirjoiteltua muutama päivitys.

Re: Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja ETS
Mielenkiintoista analyysiä. Toivottavasti saat vielä datan pelastettua, koska siitä voi kaivaa muutakin mielenkintoista, mm. tasapelien yliedustukselle Poissonin jakaumaan verrattuna. Tuo yhteisjakauma numeerisina arvoina olisi yksi pohja sen arviomiseksi.

Useimmasta johtopäätöksestäsi olen samaa mieltä.
Seuraavalle johtopäätökselle:
Kuitenkin jo nuo ehdolliset maalien keskiarvot antavat selkeää viitettä siihen, että maalit eivät ole riippumattomia. Jos olisivat, kaikki ehdolliset ka:t olisivat suurin piirtein samalla tasolla. Lisäksi käytetylle datalle kotimaalien ja vierasmaalien välillä on pieni negatiivinen korrelaatio (~ -0.028).
löytyy muukin selitys. Edellytyshän tuolle tulkinnalle olisi että maalien odotusarvot olisivat samat riippumatta vastustajan maaleista. Oletettavasti suuria maalieroja tulee enemmän sarjan häntäpään ja sarjan kärkipään joukkuieiden välillä ja näissä jo lähtökohtaisesti häntäpään joukkue tekee keskimääräisesti vähemmän maaleja. Saisitko datajoukostasi rajattua etukäteen kohtuullisen tasavahvat joukkueet, jolloin tuo vääristymä olisi pienempi?

Odottelen mielenkiinnolla muita analyysitapoja, Markovin prosessin käyttöön keräämäsi datasta voidaan laskea ehdollisia parametreja.

Re: Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja p_zombie
Hajonneen tietokoneen tiedot on vihdoin saatu suurin piirtein palautettua, joten nyt pitää taas palata niihin maaleihin ja jakaumiin. Tässä viestissä on tarkoitus käydä läpi lyhyesti muutamia menetelmiä ja vertailla niiden antamia tuloksia simulaatioiden pohjalta.

Menetelmät
Käytännössä kaikki tässä esiteltävät menetelmät pohjautuvat tavalla tai toisella Poisson jakaumaan. Poisson jakauman ainoa parametri on intensiteetti (myös jakauman oa), merkitään vaikkapa I. Jalkapallossa usein tätä intensiteettiä mallinetaan tietyssä log-lineaarisessa muodossa. Tarkemmin sanottuna intensiteetti on kotijoukkueen maaleille muotoa log(I) = vakio + kotietu + koti_hyökkäys + vieras_puolustus ja vierasmaaleille puolestaan log(I) = vakio + vieras_hyökkäys + koti_puolustus, jossa siis nämä vakio, kotietu, koti_hyökkäys yms. ovat tuntemattomia parametrejä, jotka täytyy estimoida datan avulla. Eli siis jokaisella joukkueella on kaksi parametria, "hyökkäysvoima" ja "puolustusvoima". Näiden lisäksi on yleinen vakiotermi, kotivoima sekä mahdolliset mallikohtaiset extraparametrit.

Tupla-Poisson
Marginaalijakaumat Poisson-jakautuneita ja tehdään riippumattomuusoletus, eli yhteisjakauma muotoa P(X=x,Y=y) = P(X=x)*P(Y=y). Vertailukohtana muille.

Dixon-Coles korjauskertoimet
Artikkeli: Modelling Association Football Scores and Inefficiencies in the Football Betting Market
Linkki: http://www.math.ku.dk/~rolf/teaching/th ... nColes.pdf

Kirjoitetaan yhteisjakauma muotoon P(X=x,Y=y) = k_xy*P(X=x)*P(Y=y), missä P(X=x) ja P(Y=y) on Poisson jakaumat koti- ja vierasmaaleille ja k_xy on korjauskerroin tuloksille 0-0, 0-1, 1-0 ja 1-1 (jokaiselle tulokselle siis eri kerroin). Käytännössä kerroin on (useimmissa liigoissa) ykköstä suurempi 1-1 ja 0-0 tuloksille ja pienempi muille. Lisäksi kertoimen muoto on valittu siten, että todennäköisyyksien summa pysyy edelleen 1. Siis yksinkertaisesti vain nostetaan noiden kahden tasapelin todennäköisyyttä 1-0&0-1 tulosten kustannuksella. Muiden tulosten todennäköisyydet pysyvät täsmälleen samana mitä tupla-Poissonissa (tosin opitut parametrien arvot tietysti muuttuvat).

Diagonaalisesti muokattu kaksiulotteinen Poisson-jakauma
Artikkeli: Analysis of sports data by using bivariate Poisson models
Linkki: http://isc.temple.edu/economics/wkpaper ... tician.pdf

Tässä artikkelissa esitetään oikeastaan kaksi korjausta, eli kaksiulotteinen Poisson jakauman yleistys ja "diagonaalitodennäköisyyksen" (=tasapelin) muokkaus. Näitä voidaan käyttää yhtäaikaa, mutta käsittelen niitä tässä kuitenkin erikseen.

Kaksiulotteinen Poisson-jakauma
Kolme satunnaismuuttujaa X1, X2, X3 on Poisson jakautuneita. Kirjoitetaan kotimaalit muodossa X=X1+X3 ja vierasmaalit Y=X2+X3 ja nyt X&Y:n yhteisjakaumana on artikkelissa esitetty kaksiuloittenen Poisson-jakauma parametreille I1, I2 ja I3. Kotimaalien odotusarvo on I1+I3, vierasmaalien I2+I3 ja näiden välinen kovarianssi on I3 (ja I3>0, kuten muutkin intensiteetit). Eli toisin sanoen tämän jakauman avulla voidaan luoda positiivinen korrelaatio maalimäärien välille. Sivuhuomautuksena tähän voidaan lisätä, että sittemmin tämä kreikkalaiskaksikko Karlis&Ntzourfras on siirtynyt käyttämään Skellam jakaumaa, joka on jakauma maalien erotukselle. Etuna on se, että tämä ylimääräinen X3 supistuu pois, eikä sitä tarvitse suoraan huomioida mallissa.

Diagonaalinen muokkaus
Lähtökohtana on taas tupla-Poisson, mutta tarkoitus on kasvattaa tasapelien todennäköisyyksiä muiden kustannuksella. Tämä tapahtuu seuraavasti: aluksi kerrotaan kaikki tulokset (1-p): llä, missä 0<p<1 ja jaetaan tämä ylijäävä p valittujen tasapelien kesken halutussa suhteessa.

Copula
Artikkeli: Modelling soccer matches using bivariate discrete distributions with general dependence structure
Linkki: http://www.salford.ac.uk/business-schoo ... /?a=226929

Copula funktion avulla luodaan riippuvuusrakenne marginaalijakaumien välille. Tarkemmin sanottuna on valittu (tässä tapauksessa) kaksi marginaalijakaumaa, joiden kertymäfunktiot ovat F_x(X) ja F_y(Y) (periaatteessa mitä tahansa, tässä taas Poisson). Muodostetaan uusi satunnaisvektori (U1, U2) = (F_x(X), F_y(Y)). Valitaan copula-funktio C, joka on tämän uuden satunnaisvektorin kertymäfunktio. Yksinkertaisimmillaan tämä olisi muotoa C(U1=u1,U2=u2)=u1*u2, joka siis vastaa suoraan riippumattomuusoletusta. Se minkänlainen riippuvuus muuttujien välille voidaan luoda riippuu valitusta copulasta. Yksi usein käytetty copuloiden luokka on ns. Arkhimedeen copulat, joiden etuna on yksinkertaisuus (=vain yksi lisäparametri). Tässä esitetyt tulokset ovat Gumbelin copulalle, joka antoi parhaan tuloksen simuloinneissa.

Simulaatiot
Simuloinnit on suoritettu siten, että ensin on opittu mallien parametrit datasta ja sitten on laskettu samojen pelien todennäköisyydet uudestaan jokaiselle kaudelle ja liigalle erikseen. Ideana olisi pyrkiä havaitsemaan mallin rajoituksia (esim. aliarvioiko se tasapelejä), ei voitollisuuden tms. testaus. Simuloinneista esiteltävät tulokset ovat: kaikkien pelien tulosten log-todennäköisyyksien summa (mitä suurempi sitä parempi, tosin huomioiden mallin monimutkaisuus), 1X2-jakauma ja eri lopputulosten jakaumien erot suhteessa havaittuihin.

Datana oli sama Betexporerilta kerätty data, mitä tuossa aiemmassa maalejä käsitelleessä viestissäkin.

Tulokset (jonkinlaisessa paremmuusjärjestyksessä):
1. Copula
2. Diagonaalinen
3. Kaksiulotteinen
4. Dixon-Coles
5. Tupla-Poisson

Hajahuomioita
- Yllättävän suuria eroja liigojen välillä (esim. Ranska vs. Hollanti). Joukkueiden tasoerot varmaan yksi syy, mitäköhän muita? Pitää jossain vaiheessa yrittää miettiä/tutkia tarkemmin.
- Tupla-Poissonin virheet aika pitkälti niitä, mitä tuolla aiemmassa 2. viestissä mainitsin.
- Dixon-Coles hyvin lähellä tupla-Poissonia. Korjauskertoimien muoto liian rajattu?
- Diagonaali muokkaus auttaa, mutta siinä aletaan jo yliarvioimaan tasapelejä. Jälleen muoto aika rajattu, korjauksen suuruus pysyy jokaisessa ottelussa samana riippumatta joukkueista.
- Gumbel copula antoi parhaan tuloksen noista Arkhimedeen copuloista, mutta parempiakin varmasti voisi löytyä.
- Poisson-jakauma ei pakollinen, muutkin jakaumat sopisi useimmissa menetelmissä. Tein nopeita testauksia negatiivisella binomijakaumalla, joka olisi ehkä se luonnollisen vaihtoehto, mutta en havainnut merkittäviä eroja suuntaan tai toiseen.

Yksi näiden edellä esiteltyjen mallien yhteinen ongelma on se, että maali-intensiteetit ajatellaan vakioksi koko ottelun ajan. Muuttuneiden pelitilanteiden huomioiminen on käytännössä mahdotonta. Tämä ehkä olisi hyväksyttävää, jos tarkoitus olisi mallintaa vain ottelun lopputulosta, ei puoliajan tai puhumattakaan live-tilanteiden ennustamisesta. Tarkoitus olisi kuitenkin pitää malli mahdollisimman joustavana, joten jotain parempaa pitäisi keksiä. Tätä olisi tarkoitus käsitellä tarkemmin seuraavassa päivityksessä.

Re: Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja p_zombie
Tämä päivitys tulee olemaan jatkoa edelliseen kirjoitukseen. Olisi siis tarkoitus löytää malli, jonka avulla voidaan huomioida muuttuvat tapahtumat peleissä. Tähän ongelmaan on esitetty kaksi erilaista ratkaisua kirjallisuudessa (varmaan muitakin, mutta näihin olen vaan törmännyt), joiden pohjalta asiaa voi lähteä jatkokehittämään. Nämä ovat Ilmari Juvan Jalkapallo-ottelun lopputuloksen stokastinen mallintaminen ja Dixonin&Robinsonin A Birth Process Model for Association Football Matches

Päällisin puolin nämä näyttävät sangen erilaisilta: Juvalla diskreettiaikainen Markovin ketju ja D&R: llä puolestaan jatkuva-aikainen syntymämalli. Molemmissa kuitenkin pohjilla on sama idea, eli maali-intesiteetti muuttuvat pelitilanteen mukaan. Käytännössä olen varma, että molempien antamat vastaukset olisivat hyvin lähellä toisiaan, mutta keskityn tässä nyt tuohon D&R:n artikkeliin. Se on marginaalisesti joustavampi malli (mm. Markovin ketjuilla voidaan huomioida vain 1 maali/min).

Malli
Yksi tapa ajatella tuota D&R:n mallia on, että se yleistää Poisson jakaumaa, tai tarkemmin sanottuna sen taustalla olevaa prosessia. Eli Poisson jakauma on homogeenisen Poisson-prosessin (maali-intesiteetti pysyy vakiona koko ajan) tapahtumien lukumäärien jakauma. Sen sijaan epähomogeenisessä Poisson-prosessissa maali-intensiteetti voi muuttua pelitapahtumien ja esim. pelikellon mukaan. Foorumille on hiukan ikävää kirjoitella matemaattisia merkintöjä, joten yksityiskohdat taas tuolla artikkelissa, mutta seuraava esimerkki ehkä avaa perusideaa miten tämä tapahtuu:

Peli: A vs B, lopputulos 1-1, A teki ensimmäisen maalin 5min kohdilla ja B puolestaan 65min.
Maali-intensiteetit (=odotusarvot) peliin lähtiessä: u_A ja u_B

Nyt pitäisi siis laskea todennäköisyys, että peli päättyi 1-1 ja maalit syntyivät noina ajanhetkinä. Tähän vastaus voidaan hakea ekspotentiaalijakaumasta (merkitään tiheysfuktiota e_pdf ja kertymäfuktiota e_cdf), joka antaa todennäköisyyden tapahtumien väliselle ajalle Poisson-prosessissa. Ideana on jakaa ottelu ajanjaksoihin syntyneiden maalien mukaan, eli tässä tapauksessa 0-5min, 5-65min, 65-loppu. Sitten ottelun tn voidaan laskea seuraavasti:

1. Lasketaan tn, että joukkue A tekee maalin 5min kohdilla, eli e_pdf(5;u_A). Kerrotaan tämä todennäköisyydellä, että joukkue B ei tee maalia tällä jaksolla, joka saadaan puolestaan ekspotentiaalijakauman kertymäfunktiosta seuraavasti: 1-e_cdf(5;u_B).
(huom! artikkelissa laskut menevät tässä kohtaa hiukan eri tavalla. Siinä intensiteetistä otetaan integraali ajan suhteen, koska
ne eivät pysy vakiona aikavälillä, kuten tässä esimerkissä. Pohjalla oleva idea on kuitenkin sama)

Muutetaan intensiteettejä pelitilanteen mukaan, esim. kerrotaan u_A ja u_B joillakin kertoimilla.

2. Toistetaan samanlaiset laskut aikavälille 5-65min mitä 1. kohdassa, mutta uusilla intensiteeteillä. Lopuksi taas päivitetään intensiteetit tilannetta vastaavaksi.

3. Tn-laskut aikavälille 65-loppu. Muuten sama, mutta nyt kumpikaan ei tehnyt maalia, joten molemmat saadaan kertymäfunktiosta.

Lopuksi sitten vaan kerrotaan nämä eri vaiheissa saadut todennäköisyydet keskenään. Riippuvuusrakenne maalimäärien välille muodostuu näiden tilanteen mukaan muuttuvien kertoimien avulla. Jos intensiteettejä ei muutettaisi, niin saataisiin samat vastaukset mitä Poisson jakauman avulla. Lasketut tn:t ovat siis todennäköisyyksiä maalien syntyhetkille (ja määrille). Jos sen sijaan haluttaisiin esim. 1X2-jakauma, niin se voitaisiin teoriassa saada integroimalla yli kaikkien mahdollisten maalimäärien ja ajanhetkien. Onneksi tätä ei tarvitse kuitenkaan tehdä. Halutut todennäköisyydet voidaan saada MCMC-simulaatioilla melko tehokkaasti ja yksinkertaisesti.

Tulokset
Esimerkin omaisesti näytän tässä muutamia tuloksia eräälle yksinkertaiselle mallille (muistaakseni malli VI tuolla artikkelissa + pari omaa lisäystä). Siinä on määritelty alla olevat kertoimet ja ohessa myös Englannin valioliigalle (sama data mitä aiemmin) opitut arvot. Tulkinta on se, että jos kerroin>1, niin joukkueiden maali-intesiteetti kasvaa verrattuna tasatilanteeseen ja jos <1 niin toisin päin.

Kotijoukkueen intensiteettiin vaikuttavat tekijät:
kerroin(kotijoukkueen 1-0 johto), 0.91
kerroin(kotijoukkueen johto ja tilanne muu kuin 1-0), 1.02
kerroin(kotijoukkueen 0-1 tappioasema), 1.08
kerroin(kotijoukkue tappiolla ja tilanne muu kuin 0-1), 1.00
(kotijoukkueen ajasta riippuva lineaarinen termi, muotoa intensiteetti_uusi = intensiteetti + peliaika*kerroin, missä aika skaalattu välille 0-1), 0.50

Vierasjoukkueen intensiteettin vaikuttavat tekijät:
kerroin(vierasjoukkueen 0-1 maalin johto), 0.82
kerroin(vierasjoukkueen johto ja tilanne muu kuin 0-1), 1.08
kerroin(vierasjoukkueen 1-0 tappioasema), 0.96
kerroin(vierasjoukkueen tappiolla ja tilanne muu kuin 1-0), 1.08
(vierasjoukkueen ajasta riippuva lineaarinen termi), 0.09

Molempien joukkueiden intensiteettiin vaikuttavat kertoimet:
kerroin(pelin eka minuutti), 0.36
kerroin(45. min + lisäaika), 3.32
kerroin(2. puoliajan eka minuutti), 0.40
kerroin(90.min + lisäaika), 6.25
kerroin(maalin jälkeinen minuutti) 0.43

Alla visualisointi intensiteettien muutoksista tuossa aiemmin käytetyssä A vs B pelissä(samat kertoimet mitä yllä, intensiteetit alussa molemmilla 1):
Kuva

Tätä menetelmään voitaisiin laajentaa moneenkin suuntaan. Esim. intuitiivisesti tuntuisi selkeältä, että jos tasaisessa pelissä vierasjoukkue menee 0-1 johtoon heti ottelun alussa, niin kotijoukkue ei muuta pelitapaansa välittömästi, vaan esim. jossakin 60min kohdilla. Joten siis tuntuisi loogiselta, että näiden eri tilanteisiin liittyvien kertoimien pitäisi olla ajasta riippuvaisia. Muita testailtavia asioita voisi olla esim. kokoonpanomuutokset, punaiset kortit, muut parametrisoinnit jne. Ehkä palaan näihin kysymyksiin joskus tulevaisuudessa. Seuraavaksi käännän katsetta kuitenkin enemmän muihin (perus)tilastoihin. Näiden osalta suurin kysymys on tietysti miten sisällyttää niitä malliin, niin että ne tuovat oikeasti lisäinformaatiota joukkueiden tasosta.

Re: Pseudotieteellistä hölynpölyä

Lähetetty:
Kirjoittaja p_zombie
Yksi jalkapallo-otteluiden mallintamisen suurimmista ongelmista on se, että pitäisi löytää jokin malli, johon olisi helppo liittää erilaista dataa ja tilastoja. Ja vielä toivottavasti niin, että niistä olisi jotain oikeaa hyötyäkin esim. maalien ennustamiseen. Siitäkin olisi etua, että datamäärien&parametrien määrien kasvaessa homma pysyisi jokseenkin selkeänä. Tarvitaan siis jokin yleinen, tarpeeksi joustava, mallipohja jonka ympärille asiaa voi kehittellä ja miettiä. Tähän varmaan olisi montakin eri vaihtoehtoa, mutta kuten aiemmin mainitsin tarkoitus on käyttää Bayes-pohjaisia menetelmiä. Tällöin yksi ratkaisu on hierarkiset Bayes-mallit ja myös yleisemmin graafiset todennäköisyysmallit. Näihin liittyy melko runsaasti erilaista teoriapohjaa, joiden läpikäyntiin tämä blogi ei ehkä ole täysin oikea paikka (netistä tietysti löytyy paljon tietoa asiasta kiinnostuneille). Jatkon kannalta kuitenkin on ehkä parempi kirjoitella edes jokin lyhyt johdanto, joten pyrin tässä päivityksessä antamaan jonkinlaisen (hiukan yksinkertaistetun) pintaraapaisun näistä eri aihepiireistä. Kirjoitus rakentuu löyhästi artikkelin Bayesian hierarchical model for the prediction of football results ympärille.

Perusmalli
Alku on oikeastaan vanhan kertausta, sama malli on hiukan eri muodoissa esiintynyt jo useasti aiemmínkin tässä blogissa ja eri artikkeleissa. Pelin koti- ja vierasjoukkueiden maalimäärien odotusarvot kirjoitetaan log-lineaarisessa muodossa:
log(oa1) = kotietu + hyökkäys + puolustus
log(oa2) = hyökkäys + puolustus

Mallissa siis jokaisella joukkueella on kaksi parametriä (hyökkäys, ja puolustus) sekä kaikille yhteinen kotietu. Sitten pelissä syntyneet kotimaalit ja vierasmaalit oletetaan Poisson jakautuneiksi odotusarvoilla oa1 ja oa2, merkitään:
kotimaalit ~ Poisson(oa1)
vierasmaalit ~ Poisson(oa2)

Todennäköisyydet ovat kuitenkin siis ehdollisia parametrien arvoille. Miten ne sitten puolestaan löydetään?

Yksi tärkeä tekijä tässä on uskottavuusfunktio, joka kuvaa aikaisempien jo pelattujen pelien todennäköisyyksiä ehdolla, että parametrit tiedetään. Jos data sisältäisi yhden pelin, niin uskottavuusfunktio voidaan kirjoittaa muodossa:
p(data|parametrit) = poisson_pdf(kotimaalit|oa1)*poisson_pdf(vierasmaalit|oa2)

Jos pelejä olisi kaksi, idea pysyisi samana, mutta näitä kerrottavia Poisson jakauman pistetodennäköisyyksiä olisi vain 4 jne.

Frekventistit ja uskottavuuslaki
Aluksi, vertailun vuoksi, pieni syrjähyppy frekventistien pariin. Heidän lähestysmistavassa parametrien estimointi tapahtuu ns. suurimman uskottavuuden estimoinnilla. Eli etsitään sellaiset parametrit, jotka maksimoivat uskottavuusfunktion p(data|muuttujat) arvon. Käytännössä kyseessä on siis optimointiongelma. Se voidaan ratkaista lukiostakin tutulla menetelmällä "derivoi - etsi nollakohdat" tai monimutkaisimmissa tapauksissa numeerisesti. Tähän taustalle liittyy myös ajatus, että olisi olemassa vain yhdet oikeat parametrit ja tarkoituksena on löytää ne.

Bayes-menetelmät
Kuten aiemmassa viestissä totesin, Bayes-menetelmissä keskeistä on puolestaan omien uskomusten päivittäminen. Tässä tapauksessa uskomukset koskevat parametrejä. Se muoto missä uskomukset esitetään on todennäköisyysjakauma eri vaihtoehtojen yli. Esimerkiksi tässä voitaisiin muodostaan priori-uskomukset, että kaikki muuttujat ovat normaalijakautuneita keskiarvolla 0 ja hajonnalla 1, eli siis esim. hyökkäys-parametrit ovat:
hyökkäys_i ~ Normal(0,1), kaikille joukkueille i

Seuraava kysymys on sitten tietysti, että miten näitä uskomuksia päivitetään datan avulla. Vastaus saadan Bayesin-kaavasta, eli
p(parametrit|data) = p(parametrit)*p(data|parametrit)/p(data).

Huomioitavaa kaavassa on tuo p(data|muuttujat), joka on siis täsmälleen sama mikä nähtiin jo aiemmin. Nyt se vaan yhdistetään meidän alku-uskomuksiin ja lopputuloksena saadaan päivitetyt uskomukset, eli posteriorijakaumat. Nämä ovat siis tosiaan todennäköisyysjakaumia, joka on suuri ero frekventistien lähestysmistapaan, jossa saatiin vain yhdet piste-estimaatit parametreille. Toinen tärkeä asia on, että mitä enemmän dataa sitä suuremmaksi uskottavuusfunktion merkitys kasvaa. Ja käänteän tietysti, priorien merkitys laskee.

Hierarkinen Bayes
Hierarkisissa Bayes-malleissa oikeastaan sovelletaan samoja ajatuksia mitä tuossa "tavallisessa" Bayes-mallissa, mutta vaan askeleen pidemmälle. Tavallaan luodaan priorijakaumat yli alemman tason priorijakauman parametrien. Artikkelin mallissa hyökkäys- ja puolustusparametreillä on kaksi tasoa:
1. hyökkäys_i ~ Normal(mu_h,sigma_h), kaikilla joukkueilla i
2. mu_h ~ Normal(0,10000) ja sigma_h ~ Gamma(0.1,0.1)
Ja vastaavasti puolustus-parametreille. Tärkeä asia on se, että tämä 2. tason priori on sama kaikille joukkueille (tai vähintäänkin osalle). Siis tavallaan Normal(mu_h,sigma_h) on kaikkien joukkueiden hyökkäysparametrien jakauma, jonka ominaisuudet mu_h ja sigma_h määrittävät. Hyöty mikä tälläisestä rakenteesta tulee piilee siinä, että nyt joukkueiden parametrit eivät ole enää riippumattomia. Oppimalla jotain joukkueesta i saadaan tietoa myös tuosta kaikkia koskevasta parametrien jakaumasta, joka taas vaikuttaa muihin.

Eikä hommaa tarvitse lopettaa vielä tällekään tasolle, vaan hierarkian tasoja voidaan tarvittaessa lisätä. Myöskin priorijakaumien muoto voi olla monimutkaisempi. Tuolla artikkelissa esitetään laajennus, että näitä 2. tason priorijakaumia olisikin kolme; yksi kärkijoukkueille, toinen keskikastin ja viimeinen huonoille. Lisäksi määritellään todennäköisyydet, joilla on taas omat priorinsa, millä joukkueet kuuluu mihinkin kategoriaan. Yhtenä hyötynä tästä voisi esim. olla se, että kun mietitään kauden alussa joukkueiden välisiä voimasuhteita, niin ei tarvitsi varsinaisesti miettiä asiaa näiden parametrien arvojen kautta. Vaan esimerkiksi onko Mancester United hyökkäämisen osalta kärkeä, keskikastia vai huono?

Graafiset todennäköisyysmallit
Keskeinen ajatus graafisten mallien taustalla on yhteisjakauman muuttujien riippuvuussuhteiden esittäminen graafien, eli verkkojen avulla. Tämä on sangen hyödyllistä moneltakin kannalta. Visualisoinnit ovat yleensä tekstiä tehokkaampi tapa esittää tietoa ymmärrettävästi. Esimerkiksi riippuvuusrakenteiden hahmottaminen monimutkaisissa malleissa voi käydä hankalaksi. Graafista nämä nähdään "suoraan", kunhan vain tietää säännöt millä homma toimii. Esimerkiksi tuo edellä kuvattu hierarkinen Bayes-malli voidaan esittää alla olevalla verkolla (kuva napattu artikkelista):

Kuva

Graafisia malleja on käytetty hyvin moniin eri sovelluksiin, koska ne ovat erittäin joustava tapa esittää mallin ominaisuuksia. Esimerkiksi kaikki tässä blogissa aiemmin esitellyt menetelmät voitaisiin kuvata graafisena malleina. Graafisten mallien perusteoria kehitettiin 80-90 lukujen taitteessa. Ensimmäisten suurien reaalimaailman sovellusten joukossa oli lääketieteellinen diagnosointi. Ensiksi muodostettiin tietty yksinkertainen verkko tutkijoiden toimesta (joka siis kuvaa tautien ja oireiden riippuvuussuhteita), sitten malliin tuotiin lääkäreiden tuomaa eksperttitietoa priorijakaumien muodossa ja lopulta posterioriparametrit opittiin datan avulla. Viime aikoina tutkimus on keskittynyt enemmän itse verkon rakenteen oppimiseen datasta. Tunnetuin esimerkki tästä puolestaan on (toki siellä on vähän muutakin taustalla) IBM:n kehittämä tietokone-ohjelmisto Watson, joka voitti ensimmäistä kertaa ihmiset Jeopardy-tietovisailussa muutamia vuosia sitten, vähän samaan tapaan kuin Deep Blue aikoinaan Kasparovin shakissa. Periaatteessa rakenteen oppimiseen käytettyjä algoritmejä voisi olla mahdollista hyödyntää urheiluunkin, mutta ongelmaksi voi ehkä muodostuu datan vähyys.

Seuraavassa päivityksessä olisi sitten tarkoitus hiukan laajentaa tuota aiemmin esiteltyä hierarkista bayes-mallia esim. tuomalla mukaan muita tilastoja.

Edit: Foorumi ehdottomasti kaipaisi LaTeX-tukea, matemaattiset merkinnät menee aika sekavaksi/epätäsmälliseksi.