![]() |
Lähde: http://www.appstate.edu/~whiteheadjc/service/logit/intro.htm |
Vaikka lineaarinen regressio ei toimi logistisen mallin veroisesti todennäköisyyksien mallintamiseen, on se hyödyllinen muihin tarkoituksiin. Sen avulla voi saada intuitiivista tietoa nopeasti eri muuttujien välisistä mahdollisista yhteyksistä. Lineaarista mallia käytettäessä on tärkeää, että selittävän ja selitettävän muuttujan välillä vallitsee lineaarinen yhteys. Mikäli yhteys ei ole lineaarinen, on mahdollista käyttää esim. neliöjuuri-muunnettua muuttujaa normaalin muuttujan kanssa, jolloin epälineaarisia yhteyksiä voidaan mallintaa. Tällaisessa tapauksessa täytyy kuitenkin muistaa tarkastella, onko tämä teoreettisesti oikein. Esim. tulotason kasvu voi vaikuttaa ostetun auton hintaan nostavasti tiettyyn pisteeseen "x" saakka, kunnes kasvu hiipuu tai jopa laskee. Tällöin suoran viivan vetäminen ei kuvaa yhteyttä oikein, koska mallin mukaan auton hinta kasvaa vielä, kun menemme kriittisen tulotason "x" yli. Tällaisessa tapauksessa voi harkita selittävän muuttujan luokittelua, jos haluaa pitää mallin helpommin tulkittavana, eli ei lisäile epälineaarisia yhteyksiä löytäviä muuttuja-muunnoksia. Yksi regressiomallien hienouksia on, että voimme tutkia, kuinka muuttuja "x vaikuttaa selittettävään muuttujaan "y" kun kontroillaan muuttujaa "z". Eli voimme esim. tutkia, kuinka tulotaso vaikuttaa auton hintaan, kun pidämme sukupuolen vakiona. Kontrollointi tapahtuu lineaarisessa mallissa seuraavasti:
Haluamme tietää mallin (y=x+z) kertoimen x:lle. Ensin ratkaistaan x:n vaikutus y:hyn regressoimalla x z:lla ja tallentamalla residuaalit. Tämän jälkeen y regressoidaan näillä residuaaleilla. Poistamme siis ensin x:sta z:n vaikutuksen ja sitten vasta regressoimme y:n tämän x:n, mutta z:sta riippumattoman osan kanssa. Vastaavalla tavalla saamme myös z:n kertoimen. Yksi regressiomallin yleisistä ongelmista (Omitted variable bias) aiheutuu juurikin tämän kontrolloinnin puutteesta, eli jos tärkeä muuttuja jätetään mallista pois, niin muuttujien regressiokertoimet voivat olla vääristyneitä. Esim. x:n kerroin voi olla suurempi kuin mitä se olisi jos olisimme ottaneet z:n vaikutuksen huomioon.
Alla vielä vastaava esimerkki R-koodilla:
sukupuoli <- (rbinom(100,1,0.5)) #luodaan sukupuoli-muuttuja Bernoullin jakaumasta
tulot <- rnorm(100,15000,100)+150*sukupuoli # luodaan toinen muuttuja, joka korreloi sukupuolen kanssa
y=10000+(0.1*tulot)+(500*sukupuoli) # y kuvaa auton hintaa. Tästä näemme oikeat regressiokertoimet.
#Ratkaistaan ensin tulojen regressiokerroin
regTs <- lm(tulot~sukupuoli)
residuaalitT <- residuals(regTs)
m1 <- lm(y~residuaalitT)
round(coef(m1),1) # Saadaan kerroin 0.1. Round-komento pyöristää tässä luvut yhteen desimaaliin.
regSt <- lm(sukupuoli~tulot) # Ratkaistaan vastaavasti sukupuolen regressiokerroin
residuaalitS <- residuals(regSt)
m2 <- lm(y~residuaalitS)
round(coef(m2),2)# Saadaan 500
sum(residuaalitT*y)/(sum(residuaalitT^2)) #Regressiokertoimet saadaan laskettua myös näin
sum(residuaalitS*y)/(sum(residuaalitS^2))
sum(y-0.1*tulot-500*sukupuoli)/100 # Intercept saadaan lopuksi tästä kaavasta
#Lopputulos on siis y=10000+(0.1*tulot)+(500*sukupuoli)
Omitted variable bias tulee ilmi, kun jätämme sukupuolen pois tarkastelusta:
m3 <- lm(y~tulot)
round(coef(m3),1)
#saadaan tulojen kertoimeksi 0.3
Koska tulot ja sukupuoli korreloivat positiivisesti (cor=0.63) ja sukupuoli vaikuttaa auton hintaan positiivisesti, niin tulojen kerroin on liian suuri, jos jätämme sukupuolen pois mallista. Vastaavasti, jos sukupuoli vaikuttaisi auton hintaan negatiivisesti (y=10000+(0.1*tulot)-(500*sukupuoli)), niin tulojen kerroin olisi alaspäin vääristynyt -0.1.
Interaction-termit
Yllä olevassa esimerkissä tulojen kasvu vaikuttaa auton hintaan kullakin sukupuolella samoin . On kuitenkin mahdollista, että eri sukupuolten väliset preferenssit eroavat ja toinen sukupuoli käyttää tulojen noususta suhteellisesti enemmän rahaa autoonsa. Tällainen yhteys voidaan mallintaa lisäämällä malliin ns. Interaction-muuttuja, jolloin tulojen muutos voi vaikuttaa eri tavoin auton hintaan eri sukupuolilla. Interaction-muuttuja lisätään R:lla seuraavasti:
m4 <- lm(y~tulot+sukupuoli+tulot:sukupuoli)
Nyt tulojen kerroin riippuu sukupuolesta. Esim. sukupuolella "1" tulojen kerroin voi olla 0.5 ja sukupuolella "0" 0.7.
Alla on kuva datasta, jossa tulot vaikuttavat ostetun auton hintaan (y) eri tavoin. Selvästi sukupuoli "0" käyttää autoonsa enemmän rahaa tulojen noustessa.
Jos emme ota sukupuolten välistä eroa huomioon, saamme seuraavanlaiset regressioviivat
Vastaava kuva, kun lisäämme interaction-termin malliin:
Interaction-termin lisääminen parantaa mallin ennusteita selkeästi.
Ei kommentteja:
Lähetä kommentti