25.02.2014

Kernel-estimointi: voiko mittausvirheen lisääminen parantaa mittauksen tarkkuutta?

Käsi ylös kaikki, joiden mielestä mittaukseen lisätty mittausvirhe heikentää mittauksen tarkkuutta. Melko monen käsi varmaankin nousi?

Mutta tehdäänpä seuraavaksi pieni ajatusleikki: oletetaan vaaka, joka kyllä havaitsee henkilön tarkan painon, mutta näytön tarkkuus estää kilogrammaa tarkemman lukeman näyttämisen.

Oletetaan edelleen, että vaa’alle hyppää hypoteettinen Antti O. hypoteettisine 83,7 kg elopainoineen. Vaaka näyttää 84,0kg. Tilannetta ei auta mittauksen toisto, vaan mittausvirhe on pysyvä: aina tulee tulokseksi tuo sama 84,0kg.

Oletetaan seuraavaksi, että muokataan vaakaa siten, että se lisää virhettä mittaukseen, välillä muutama kilo ylöspäin ja välillä muutama kilo alaspäin. Mittausvirheet ovat sattumanvaraisia esim. normaalijakaumasta arvottuja desimaalilukuja.

Jos nyt tämä hypoteettinen Antti O. hyppää näin peukaloidulle vaa’alle vaikkapa sata kertaa, tulee tulokseksi vaihtelevasti eri painoja vaikkapa välillä 80-88 kg, kaikki toki edelleen tasakilogrammoja näytön tarkkuudesta johtuen.

Arvatkaapa mikä luku saadaan, kun noista sadasta virheellä höystetytystä mittauskerrasta lasketaan keskiarvo? Kyllä, hämmästyttävästi juurikin tuo 83,7 kg, sen tarkemmin mitä enemmän mittauksia on.

Alla on esimerkkinä vaa’an näyttämien jakauma, kun on arvottu 100 mittausvirhettä normaalijakaumasta, jonka hajonta on 5 ja odotusarvo 0. Tässä nimenomaisessa realisaatiossa pienin vaa’an näyttämä on 71 kg ja suurin 95 kg. Sadan mittauskerran keskiarvo on 83,63 kg, joka on jo huomattavan lähellä 83,70 kilogramman todellista mitattavaa painoa.

KernelRealisaatio

Miten vaakaesimerkki sitten liittyy Kernel-estimointiin? Kun vaa’an annettiin lisätä mittaukseen mittavirhettä, se muodosti tuon datapisteen 83,7 kg kohdalle ns. kernelin eli pienen symmetrisen paikallisen jakauman, jonka keskipiste on 83,7 kg. Toistuvat punnitukset eivät tällöin enää kohdistuneet kiinteään datapisteeseen vaan tuohon laajempaan jakaumaan. Käytännössä vaa’alle annettiin mittavirheen (kernelin) avulla mahdollisuus kertoa, että tämä pyöristettynä tasan 84 kg painoiselta näyttävä henkilö voi tosiasiassa olla painoltaan jossain välillä 83,50 – 84,49 kg. Toistuvilla mittauksilla ja keskiarvolla tämä todellinen arvo paljastui, vaikka vaa’an näyttö ei sitä suoraan mahdollistanut.

Tämä on juuri kernel-estimoinnin ajatus: jokainen yksittäinen havainto korvataan pienellä paikallisella jakaumalla, usein normaalijakaumalla. Tämän jälkeen jatkolaskennat ja analyysit –vaakaesimerkkimme tapauksessa keskiarvon laskenta– kohdistetaan kerneleihin. Vaakaesimerkissä tehtiin sata mittausta samasta havainnosta, mutta useimmiten kernel-estimointia sovelletaan tilanteeseen, jossa on tehty mittauksia useista eri havainnoista, yksi per havainto (on vaikkapa mitattu kymmenen henkilön painot).

Toinen jo enemmän filosofinen argumentti kernel-estimoinnin taustalla on se, että kukin datapiste edustaa itsensä lisäksi jossain määrin myös niitä lähellä olevia havaintoja, jotka eivät tulleet valituksi otokseen. Esimerkiksi tietoa 83,7 kg painoisesta Antti O:sta voidaan pitää todisteena siitä, että on todennäköisesti olemassa myös vaikkapa 83,0 kg painavia henkilöitä, vaikka heitä ei juuri nyt otokseen tullut. Kernelin arvo (tiheys/korkeus) kohdassa 83,0 kg kertoo, kuinka todennäköistä tämä on. Alla oleva kuva havainnollistaa tilannetta:

NormjakLeikkisästi voidaankin todeta, että kun analyytikko ottaa käyttöön kernel-estimoinnin, hän tavallaan tömäyttää dataa kylkeen, jolloin jokainen havainto tärähtää ja leviää pieneksi datapilveksi, jolla on sumeat rajat. Yksi kernel-estimoinnin haaste onkin se, miten lujaa dataa tulisi tömäyttää: liian hiljaa (kapea jakauma), niin kernel-estimoinnin edut jäävät saavuttamatta, liian kovaa (leveä jakauma), niin aineiston alkuperäinen informaatio katoaa, koska havaintoja ei voi enää erottaa toisistaan.

Kernel-estimoinnilla on lukuisia sovelluskohteita. Yleisin sovellustilanne syntyy, kun jatkuva muuttuja luokitellaan ja sen jakaumasta tehdään esim. histogrammi. Luokittelu tekee muuttujalle samaa “väkivaltaa” kuin vaa’an tekemä pyöristys teki painolle. Kernel-estimointia voidaan tällöin käyttää jatkuvan muuttujan alkuperäisen jakauman paljastamiseen aivan kuten vaakaesimerkissä mittausvirhettä käytettiin oikean painon paljastamiseen.

Alla on tästä esimerkki. Data koostuu viiden henkilön painoista: 79, 80, 81, 84 ja 85 kilogrammaa. Vasemmalla on histogrammi datasta ja oikealla vastaava kernel-estimoitu jakauma (kiinteä viiva), kun kernelit (katkoviiva) on muodostettu normaalijakaumasta, jonka hajonta on 1 ja odotusarvo nolla. Kernel-estimoitu jakauman tiheysfunktio on yksinkertaisesti yksittäisten kernel-tiheysfunktioiden pystysuuntainen summa.

HistogKernel

Myös moniulotteisille jakaumille voidaan hyödyntää Kernel-estimointia.

Kerneleitä käytetään apuna myös silloin, kun jokin toinen tilastomatemaattinen menetelmä hyötyy datan sisältämän informaation esittämisestä hieman sumeammassa (“täräytetyssä”) muodossa. Esimerkiksi support vectors machines -menetelmän yhteydessä epälineaarisen ongelman ratkaisu on teknisesti helpompaa kernelien (tai tarkemmin kernel-funktioiden) kanssa (ns. Kernel-trick -tekniikka).

Lopuksi varoituksen sana: vaikka datan kernel-täräyttäminen voi tuntua data miningin turhauttavimmilla hetkillä kertakaikkisen mahtavalta idealta, ei ajatuksesta tule innostua liikaa:

SiinäSinulleKernel

Share
Contact Person

Blog writer

Antti Ollikainen

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!