19.08.2013

Kun muuttujia on liikaa, havaintoja liian vähän ja haluaisit käyttää lineaarista regressiota

Yhä useammalla tilastotieteen sovellusalalla törmää tilanteeseen, jossa havaintojen määrä on pieni verrattuna muuttujien määrään. Tälläisen tilanteen vastaan tullessa esim. lineaarisen regression sovittaminen ei teoreettisesti ole mahdollista/järkevää (vaikka muuttujat eivät olisikaan korreloituneita) ilman riittävää työkalupakkia. Tilastotieteilijän pakista tulisi löytyä ainakin askeltavat muuttujien valitsijat (ahneet algoritmit), paras muuttujien osajoukko-algoritmi, sekä ennen kaikkea ridge/lasso-regressiomenetelmän soveltamistyökalut.

En ole kuullut ridge/lasso-regressiomenetelmästä, mutta minulla on muut edellä mainitut työkalut, eikö se muka riitä ?

Askeltavat muuttujien valitsijat

Eteenpäin askeltava (eng. Forward-selection)– algoritmi valitsee malliin yhden muuttujan kerrallaan mikäli malli “paranee merkitsevästi” muuttujan lisäämisen johdosta. Eteenpäin askeltava- algoritmi pysähtyy, kun malli alkaa ylisovittumaan. Jos oletamme, että malliin tulee algoritmin johdosta valittua 10 muuttujaa, ei ole takuuta siitä, että juuri tämä 10 muuttujan osajoukko olisi kaikista paras 10 muuttujan kombinaatio mallin rakentamiseen. Tämä on yleinen heikkous ahneissa algoritmeissa, ne eivät yleensä päädy globaalisti optimaaliseen tulokseen.

Taaksepäin askeltava (eng. Backward elimination)– algoritmi alkaa tilanteesta, jossa mallissa on kaikki muuttujat mukana. Algoritmi poistaa tarkasteltavissa olevan muuttujan, mikäli kyseisen muuttujan poistaminen “parantaa/ei heikennä” mallia merkitsevästi (esim. AIC, BIC, aBIC-kriteerit).

Monisuuntainen askellus (eng. Bidirectional elimination) soveltaa sekä eteenpäin, että taaksepäin askeltavaa menetelmää.

Paras muuttujien osajoukko

Parhaan muuttujien osajoukon (eng. Best-subset)- algoritmi perustuu eri muuttujakombinaatioiden läpikäymiseen ja se päätyy aina “parhaaseen” (esim. AIC, BIC, aBIC-kriteerien mielessä) mahdolliseen regressiomalliin. Algoritmin merkittävänä heikkoutena on sen tarvitsema laskenta-aika, joka karkeasti ottaen rajoittaa algoritmin käyttön 30-40 muuttujan tarkasteluihin.

Edellä mainittujen menetelmien tyypillisistä heikkouksista johtuen voi ajautua tilanteeseen, jossa ei ole tyytyväinen muodostuneeseen malliin. Mikäli muuttujia on enemmän kuin havaintoja, eivät edellä mainitut algoritmit pysty toimimaan halutulla tavalla.

Ridge/lasso-regressio (regularisointi) voi olla oikotie onneen.

Ridge-regressio

Ridge-regressio perustuu karkeasti ottaen regressiokertoimien kutistamiseen. Menetelmä kutistaa regressiokertoimia kohti nollaa rankaisemalla “liian suuria” regressiokertoimia. Ridge-regressiokertoimet minimoivat lausekkeen, joka sisältää jäännöksien neliösumman lisäksi termin, josta kertoimien kutistuminen aiheutuu. Tämä lisätermi sisältää oleellisen säätöparametrin (kompleksisuusparametrin) lambda; mitä suurempi lambda on, sitä enemmän kertoimia kutistetaan.

Muuttujien osajoukon valintaan perustuvat algoritmit tuottavat yleensä tulkinnallisemman ja käyttökelpoisemman mallin kuin saturoitumalli, mutta edelleen varianssialtaan suurehkon (kts. ennustevirheen hajoitelma). Ridge-regression sovittaminen oikein valitulla kompleksisuusparametrilla lambda pienentää varianssia yleensä huomattavasti (harhan kustannuksella).

Lasso-regressio

Lasso-regressio on pohjimmiltaan samankaltainen kuin ridge-regressio. Se kutistaa regressiokertoimia kohti nollaa ja tekee samanaikaisesti muuttujien valintaa (johtuu minimoitavat lausekkeen rankaisutermin normista, ns. L1-normi, joka mittaa regressiokertoimien suuruutta vrt. ridgessä L2-normi). Säädettävällä parametrilla lambda on sama tulkinta kuin ridge-regressiossa.

Kuinka valita oikean suuruinen kompleksisuusparametri lambda ? 

Kompleksisuusparametrin valinnassa voi käyttää ristiinvalidointia. Ristiinvalidointi suoritetaan erikseen halutuilla lambdan arvoilla (muodostetaan haluttu gridi lambdan arvoista), jolloin tuloksena saadaan esimerkiksi mallin tuottama keskineliövirhe ja keskineliövirheen validointiväli jokaisella lambdan arvolla erikseen. Valitaan lopulta lambdan arvo, jossa keskineliövirhe on “pieni” ja validointiväli “kapea”. Alhaalla olevassa kuvassa on simulointikokeen opetusdatan ja ristiinvalidoinnin avulla määritelty (optimaalinen) lambdan arvo. Simulointikokeen opetusdatassa oli 150 havaintoa ja 500 muuttujaa; pienimmän keskineliövirheen tuottaa lambdan arvo 1.13675. Kyseisellä lambdan arvolla malliin päätyy 68 selittävää muuttujaa.

lambda

Jotta elämä ei olisi liian helppoa.

Ridge/lasso-regressioilla on myös heikot puolensa, ehkä merkittävin on se, että lasso-regressio valitsee korkeintaan havaintojen määrään muuttujia ennenkuin mallista tulee saturoitu. Lisäksi vahvasti korreloituneiden muuttujien tapauksessa lasso valitsee yleensä yhden muuttujan korreloituneiden muuttujien joukosta ja jättää muut huomiotta. Näiden kahden menetelmän lisäksi on kehitelty myös regularisointi hybridi nimeltään elastinen verkko (eng. Elastic net). Kyseisessä menetelmässä yhdistyy ridgen, sekä lasson rankaisutermit ja näin ollen se sisältää 2 säädettävää kompleksisuusparametria lambda1 ja lambda2 (joissain algoritmeissa käytetään vain yhtä lambdan arvoa, joka määrää toisen lambdan arvon suoraan, esim. lambda ja 1-lambda).

No kuten arvata saattaa on vielä edellä mainittujen menetelmien lisäksi liuta enemmän tai vähemmän samankaltaisia “kikkakakkosia” regression sovittamiseen.

Palatakseen otsikkoon on lienee soveliasta antaa esimerkkejä sovellusaloista, joissa käsitellyn kaltaisia tilanteita ilmenee ja joissa ridge/lasso-regression käyttö on varteenotettava vaihtoehto

Lineaarisen regression lisäksi ridge/lasso regularisointeja on upotettu esim. logistiseen, multinomiseen ja poisson-regressioon.

Share
Contact Person

Blog writer

Lasse Liukkonen

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!