Tuottaako galluppien aggregointi paremman gallupin?

3.8.2020 Kirjoittanut Roope Uusitalo

Minua on jo jonkin aikaa kiusannut, miten galluppien mittaaman puolueitten kannatuksen muutokseen pitäisi suhtautua. Tarkoitus on kirjoittaa tästä yleistajuisempi kolumni Suomen Kuvalehteen, mutta kun olen menetelmien suhteen epämukavuusalueellani, niin postaan teknisemmän version tänne. Kommentit ja korjausehdotukset kovin tervetulleita.

Galluppien yhteydessä julkaistaan aina virhemarginaali. Kyseessä on 95% luottamusväli suurimpien puolueiden kannatukselle. Galluppien kommentaattoritkin alkavat oppia, että virhemarginaalin sisään mahtuvat muutokset voivat olla otannasta johtuvaa sattumaa eivätkä välttämättä tarkoita puolueen kannatuksen todellista muutosta. Mutta pitäisikö muutokseksi tulkita, jos puolueen kannatus kasvaa seuraavassakin gallupissa - vaikka sitten virhemarginaalia vähemmän.

Gallupin virhemarginaali riippuu otoskoosta ja pienemmässä määrin otantamenetelmästä. Ihan yksinkertaisia satunnaisotoksia eivät gallupintekijät kustannussyistä käytä. Unohdetaan kuitenkin hetkeksi otantatekniikka ja keskitytään otoskokoon.

Perustulos on tietysti, että gallupin keskivirhe on kääntäen verrannollinen otoskoon neliöjuureen. Mitä suurempi otos, sitä tarkempi estimaatti.

Mutta entä jos käytössä on kaksi samana päivänä julkaistua galluppia. Eikö näitten keskiarvona saada metagallup, joka on tarkempi kuin kumpikaan julkaistuista gallupeista. Olettaen että kumpikin gallupeista on harhattomia, vastaus on yleensä kyllä.

Entäpä jos edellinen gallup on julkaistu viikko tai kuukausi sitten. Onko vanhassa gallupissa vielä informaatiota, vai pitääkö uskoa vain tuoreinta. Ja voidaanko kannatushistorian avulla parantaa kannatusarvion tarkkuutta.

Jos puolueitten kannatus eri gallupeissa olisi täysin riippumatonta, kertoisi viimeisin gallup tämänhetkisen tilanteen parhaalla mahdollisella tavalla, eikä ennustetta voisi parantaa käyttämällä aikaisempien galluppien informaatiota. Paras ennuste olisi siis viimeisin gallup. Myös ennusteen tarkkuus riippuisi vain viimeisen gallupin otoskoosta.

Puolueitten kannatus muuttuu kuitenkin suhteellisen hitaasti. Uusi gallup tuo uutta informaatiota puolueen kannatuksesta, mutta otantavirheen vuoksi tämä informaatio on epätäydellistä. Mitatussa kannatuksen muutoksessa on signaalin lisäksi myös kohinaa.

Luontevin tapa tällaisen prosessin mallittamiseen lienee Kalman suodin[1]. Tämä lienee myös politiikantutkijoiden state-of-art tapa galluppien aggregointiin[2].

Mallintamisen tavoitteena on suodattaa otosvirheistä johtuvaa kohinaa ja tuottaa paras mahdollinen estimaatti puolueen todellisesta tämänhetkisestä kannatuksesta (eli systeemin tilasta), jota ei voida suoraan havaita kuin vaaleissa. Kalman suotimen tuottama estimaatti on painotettu keskiarvo aikaisemmista gallupeista. Kunkin gallupin paino on sitä suurempi mitä tuoreempi se on ja mitä suurempi on gallupin otoskoko. Estimaattori on rekursiivinen. Aikaisempaa arviota systeemin tilasta päivitetään aina kun uutta informaatiota on käytettävissä eli kun julkaistaan uusi gallup. Estimaatille voidaan helposti laskea myös keskivirhe, joka on pienempi kuin yksittäisten galluppien keskivirheet.

Suomessa kannatusgalluppeja julkaisee säännöllisesti kolme organisaatiota. Kantar TNS tekee galluppeja Helsingin Sanomille, Taloustutkimus YLE:lle ja Tietoykkönen Alma Medialle. Hesarin ja Ylen galluppeja julkaistaan kuukausittain, Alma Median galluppeja muutaman kuukauden välein.

Databyro.fi on koonnut näitä galluppeja yhteen vuoden 2015 vaaleista lähtien. Databyro laskee gallupeista myös kolmen viimeisen mittauksen liukuvan keskiarvon. Sekin suodattaa otosvirheestä johtuvaa kohinaa. Liukuvaan keskiarvoon verrattuna Kalman suodin on hifistelyä, mutta tarjoaa pienen parannuksen painottamalla tuoreinta galluppia enemmän ja tekemällä painotuksen ennusteen optimaalisella, keskivirheen minimoivalla tavalla. Lisäksi Kalman suotimella generoitu aikasarja on hieman liukuvaa keskiarvoa tasaisempi, koska vanhat gallupit eivät putoa äkillisesti pois laskelmasta kuten liukuvaa keskiarvoa laskettaessa.

Gallupintekijöiden välillä on myös pientä systemaattista vaihtelua (house effects). Esimerkiksi Keskustan kannatus on ollut Taloustutkimuksen gallupeissa keskimäärin hieman suurempi ja Vihreiden hieman pienempi kuin samojen puolueiden kannatus Kantarin gallupeissa. Nämäkin erot voidaan gallupaggregaattorissa ottaa suoraviivaisesti huomioon.

Miltä sitten puolueiden kannatus gallupaggregaattorin mukaan näyttää ja onko vaikkapa Keskustan kannatus ministerivaihdosten jälkeen muuttunut tilastollisesti merkitsevällä tavalla.

Kiitos Databyroon aineisto on kasassa ja laskelmatkin jonkinlaisessa kuosissa, mutta jätettäköön laskelman tulokset tuohon tekeillä olevaan kolumniin. Seuraavat gallupit kun julkistetaan muutaman päivän sisällä ja muutenkin tarkistuslaskenta on edelleen käynnissä.


[1] https://en.wikipedia.org/wiki/Kalman_filter

[2] Ks. esim Walther, D. (2015). Picking the winner (s): Forecasting elections in multiparty systems. Electoral Studies, 40, 1-13 tai Jackman, S. (2005). Pooling the polls over an election campaign. Australian Journal of Political Science, 40(4), 499-517

Aihealueet: Lajittelematon

8 kommenttia kirjoitukseen “Tuottaako galluppien aggregointi paremman gallupin?”

  1. klaus kultti kirjoitti:

    olisko niin että tällaiset kysymykset askarruttavat erityisesti ihmisiä, jotka välttävät taloustieteellisiä (tai muita tieteellisiä) teorioita. pahimpana esimerkkinä aikasarjafanaatikot, jotka kuvittelevat, että edelliset havainnot kertovat tulevaisuuden. normaali tieteellinen käytäntö on postuloida jonkinlainen teoria siitä, miten ihmisten vastaukset kyselyihin kuvastavat sitä, miten he kannattavat eri puolueita ja miten tämä kannatus muuttuu; tai siis näin oli aiemmin mutta nykyäänhän luullaan, että tietoa voidaan tuottaa ilman teoriaa.

  2. Roope Uusitalo kirjoitti:

    Juho,

    Statallakin (sspace) onnistui periaatteessa lokaalin trendin lisääminen, mutta ei kaikilla puolueilla oikein konvergoidu. Niilläkin millä menee laskelmat läpi ei tilamuuttujien varianssit ole merkitsevästi nollaa isompia. Pitänee tyytyä local level laskelmiin.

    Taitaa riittää hifistely tältä erää. Näilläkin tempuilla kannatusestimaattien luottamusvälit kapenee aika paljon, eniten puolueilla joitten kannatus on pysynyt suht vakaana ja joilla muutokset yksittäisten galluppien välillä siis enimmäkseen otosvirhettä

  3. juho koistinen kirjoitti:

    Stokastisen trendin voisi lisätä tosiaan aika suoraviivaisesti tuohon latenttia muuttujaa kuvaavaan yhtälöön:

    y(t) = z(t) + e(t) (havaintoyhtälö)
    z(t+1) = z(t) + b(t) + u(t) (latentti kannatuksen muutos)
    b(t+1) = b(t) + s(t) (trendiyhtälö).

    Sen lisääminen malliin luulisi olevan aika yksinkertainen harjoitus, jos käyttää tila-avaruusmallintamista (state-space modeling) tukevaa ohjelmaa:

    R: https://www.rdocumentation.org/packages/bsts/versions/0.9.5/topics/add.local.linear.trend

    Python: https://www.statsmodels.org/dev/examples/notebooks/generated/statespace_local_linear_trend.html

  4. Roope Uusitalo kirjoitti:

    Kiitos vielä Rokalle ideoista.

    - Minun datani alkaa eduskuntavaaleista 2015, joten siihen osuu vain 2019 vaalit.

    - Perättäiset gallup tulokset ei ole riippumattomia omassakaan harjoituksessani. Siinä dataa generoi random walk + noise. Vaikka noise (= otantavirheet) on riippumattomia, ei peräkkäisen tulokset ole, koska tilamuuttuja seuraa tuota random walk prosessia. Siis

    z(t) = z(t-1) + u(t) latentti kannatuksen muutos
    y(t) = z(t) + e(t) havaittu kannatus

    Tarkoitit varmaan että muutosvauhti peräkkäisissä gallupeissa ei sekään ole riippumaton. Ja siihen mahdollinen ratkaisu olisi stokastinen trendi. Tällöin prosessissa olisi kai kaksi tilamuuttujaa. En ole kokeillut.

  5. Rokka kirjoitti:

    Roope: Tarkennuksia aikaisempaan kommenttiini:
    Ensimmäinen ideani: tarkoitin, että Kalman filtterin parametri kalibroitaisi tosiaankin kaikilla (käytettävissä olevilla) vaaleilla eli esim. eduskuntavaaleja 2007 edeltävät gallupit ajettaisi filtteriin siten että viimeisen gallupin painoarvo on 0.5 (ja sitä edeltävien galluppien painoarvo siis yhteensä toiset 0.5) ja verrattaisi viimeisen (=juuri ennen vaaleja suoritetun) gallupin jälkeen saatua estimaattia toteutuneeseen vaalitulokseen. Sitten tehtäisi sama niin että viimeisen gallupin painoarvo on 0.4 jne. Lopuksi valittaisi se painoarvo joka antoi parhaan (=lähimmäksi toteutunutta vaalitulosta antaneen estimaatin). Sitten sama temppu 2011 vaaleille ja kaikille muille vaaleille. Lopuksi näistä laskettaisi (painotettuna) keskiarvona se Kalman filtterin parametri joka antaa edellämainitussa mielessä parhaan tuloksen.

    toinen kommenttini oli, että kuvattu Kalman filtteröinti antaisi virheellisen tuloksen kun puolue on selkeässä trendissä. Nousutrendissä viimeisinkin gallup tuppaa näyttämään liian alhaista lukemaa puhumattakaan jos Kalman filtteri lisää siihen arvoja vielä alhaisemmista/vanhemmista gallup kannatuslukemista. Eli esim. SDP nyt koronakevään aikana tai perussuomalaiset pakolaiskriisin aikana. En tiedä miten tähän pitäisi suhtautua. Jokatapauksessa, perättäiset gallup tulokset eivät selvästikään ole toisistaan riippumattomia.

  6. Roope Uusitalo kirjoitti:

    Kas. Politicon Kalman smoottausta en ollut huomannutkaan.

    Rokalle:

    - optimaalista painoa käytetään tässä vaan päättämään miten paljon viimeiselle havainnolle pitää antaa painoa. Vaalikalibrointi olisi hankalaa, kun dataperiodilla vain yhdet vaalit

    - Lienee ok, jos otantavirheet generoituu samasta prosessista ja ovat riippumattomia. Peräkkäiset havainnot ei toki ole riippumattomia, kun latentti kannatus on tässä random walk. Ei siihen oikein voi ainakaan determinististä trendiä pistää. Stokastinen trendi sen sijaan voisi hyvinkin toimia.

    - Jos ja kun tavoitteena on arvioida tämänhetkistä kannatusta, on minusta luontevaa käyttää kaikkea informaatiota. Ymmärtäisin hyvin myös logiikan jonka mukaan pitää valita one step ennuste mutta en oikein siitä pidemmälle ulottuvaa extrapolaatiota

  7. juho koistinen kirjoitti:

    Politico tuottaa Kalman suotimeen ja niin kutsuttuun Kalman smoother -rekursioon perustuvaa estimaattia puoluieden kannatuksesta. Jälkimmäisessä on erona edelliseen muun muassa se, että siinä estimointiin jokaiselle ajanhetkelle käytetään kaikkia saatavilla olevia havaintopisteitä eikä ainoastaan kyseistä ajanhetkeä edeltäviä havaintopisteitä. Kyseinen rekursio tuottaa estimaatteja alkaen tarkastelujakson lopusta alkuun. Tällöin estimaatit muodostuvat vähemmän meluisiksi, mutta toisaalta tarkastelujakson loppupäässä olevat estimaatit ovat herkkiä muutoksille uusien havaintopisteiden tullessa julki.

    https://www.politico.eu/europe-poll-of-polls/finland/

  8. Rokka kirjoitti:

    Odotellaan kolumnia kärsimättöminä.

    >Kommentit ja korjausehdotukset kovin tervetulleita.

    lisähifistelyideoita:
    - optimaalinen paino viimeisin gallup versus aikaisemmat gallupit: kalman filtterin parametrin kalibrointi aikaisempien vaalien ja niitä edeltävien galluppien perusteella
    - jos puolueen kannatus on jokaisessa gallupissa noussut edelliseen galluppiin verrattuna onko aihetta epäillä, että gallup kannatuksen takana oleva prosessi ei ole Kalman filtterin oletuksen mukainen (=havainnot generoituvat samasta (normaali)jakaumasta ja ovat keskenään riippumattomia)? Tätä voisi kompensoida niin että aggregoinnin tuloksena ei ilmoiteta kalman filtterin antamaa viimeisintä arvoa vaan niistä eteenpäin ekstrapoloitu arvo? Perusmuotoinen menetelmä vähättelee gallupeissa esiintyviä trendinomaisia muutoksia?

Vastaa