Box-Cox-muunnosten tekeminen vinoille jakaumille SPSS:llä

Keskiarvoihin perustuvat tilastolliset analyysimenetelmät edellyttävät miltei aina normaalijakautuneita ja variansseiltaan samansuuruisia muuttujia. Esimerkiksi regressioanalyysin tai varianssianalyysin vastemuuttujalta edellytetään symmetrisyyttä. Sosiaalitieteellisissä aineistoissa muuttujat ovat harvoin täysin symmetrisiä, esimerkkinä vaikkapa tulotaso, joka on oikealle vino ja huipukas. Vinossa muuttujassa suuri osa havainnoista pakkauttuu keskiarvon jommallekummalle puolelle, eikä keskiarvoa voi näin ollen käyttää luotettavasti muuttujan jakauman kuvaamiseen. Monet tilastolliset testit kuitenkin perustuvat jakauman symmetrisyyteen, ja symmetrisyysedellytyksen rikkominen voi johtaa tulosten validiteetin ja yleistettävyyden kärsimiseen sekä testin voimakkuuden ja luottamusvälien epätarkkuuksiin[1].

Vinot muuttujat on melko helppo korjata muunnosten avulla. Tavallisimpia muunnoksia ovat vinon muuttujan logaritmointi, neliöjuuren ottaminen ja käänteisluku. Näillä operaatiolla vinosta muuttujasta voidaan usein tehdä symmetrisempi. Lisäksi on tavallista että muuttujan pienin arvo ankkuroidaan arvoon 1. Tämä muunnos tehdään kahdesta syystä. Ensinnäkin jos muuttuja saa negatiivisia arvoja, logaritmointi tai neliöjuuren ottaminen ei onnistu. Toiseksi ankkurointi juuri arvoon 1 on tärkeää siksi, että esimerkiksi neliöjuuri luvusta välillä 0 ja 1 on suurempi kuin alkuperäinen luku, kun taas neliöjuuri yhtä suuremmista luvuista on alkuperäistä lukua pienempi. Tämä tuntuu hieman epäloogiselta. Negatiivisesti (vasemmalle) vinojen muuttujien jakauma pitää puolestaan aluksi kääntää. Tämä tapahtuu  vähentämällä muuttujan arvot sen maksimiarvosta. Tämän jälkeen muuttuja tulisi ankkuroida minimiarvoltaan 1:een.

Kaikkia muunnoksia voi ajatella jonkin vakion y ja tämän pontessin x avulla. Esimerkiksi potenssin arvot lähellä nollaa vastaavat logaritmimuunnosta, 1/2-eksponentti on sama kuin neliöjuuri, 1 tarkoittaa että muunnosta ei tarvita ja kaksi vastaa eksponenttimuunnosta. Käänteislukumuunnoksia voidaan ilmaista negatiivisena potenssina. Siten suuri osa perusmuunnoksista onkin oikeastaan potenssimuunnoksia.  Mutta miksi rajoittua vain tiettyihin potensseihin, jos jokin luku esimerkiksi logaritmin ja neliöjuuren väliltä antaisi paremman lopputuloksen symmetrisyyden kannalta? Boxin ja Coxin (1964) esittelemä tekniikka tarojaa menetelmän ideaalin muunnospotenssin löytämiseksi:

\ y_i^{\lambda}=\frac{(y_i^{\lambda}-1)}{\lambda}\text{ jossa, }\lambda \neq 0

\ y_i^{\lambda}= \text{log}_{e}(y_i)\text{ jossa, }\lambda =0

Kaavan avulla etsitään y:lle siis sellainen potenssin arvo, joka korjaa parhaalla mahdollisella tavalla muuttujan vinoutta. Lambdan optimaalisin arvo vastaa sitä muunnosta, joka muuttujalle kannattaa tehdä edellisessä kappaleessa esitettyjen vastaavuuksien mukaisesti. Tilasto-ohjelmistoissa lambdan määrittäminen tapahtuu tavallisesti etsimällä sellainen lambdan arvo, joka maksimoi suurimman uskottavuuden funktion logaritmin. SPPS:ssä tällaista toimintoa ei kuitenkaan ole valmiina olemassa. Riittävän hyvään lopputulokseen voidaan päästä myös empiirisellä menetelmällä (ks. [1]), eli laskemalla riittävän monella eri lambdan arvolla suoraan datasta erilaisia muunnoksia muuttujalle ja vertaamalla näitä saavutettuun vinouden vähenemiseen. Katsotaan seuraavaksi Box-Cox-muunnosta esimerkin kautta.

Simuloidaan epäsymmetristä dataa SPSS:n Pareto-funktion avulla parametreilla 1238.33 ja 1.6. Tarkoituksena on tuottaa muuttuja, joka vastaisi jossain määrin oikealle vinoa tulojakaumaa minimipalkasta ylöspäin.

1
2
3
4
5
6
7
8
9
NEW FILE.
INPUT PROGRAM.
LOOP #I=1 TO 1000.
COMPUTE KKtulot = RV.PARETO(1238.33, 1.6).
END CASE.
END LOOP.
END FILE.
END INPUT PROGRAM.
EXECUTE.

Saatu muuttuja ei vastaa täysin todellista tulojakaumaa, mutta on siinä määrin oikealle vino (skweness = 5.656) ja huipukas (kurtosis = 45.057), että esimerkiksi keskiarvon laskeminen ei olisi mielekästä. Nyt tällä KKtulot-muuttujalle voidaan hakea ideaalia muunnospontenssia seuraavan syntaksin avulla [1] [2]. Huomaa, että kohtaan “KKtulot” laitetaan sen muuttujan nimi, jolle muunnosta etsitään ja kohtaan “-1240.17” se luku, joka muuttujasta pitää vähentää/lisätä, jotta minimiarvo ankkuroituu 1:een.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
COMPUTE var1=KKtulot-1240.17.
execute.
VECTOR lam(61) /tran(61).
LOOP idX=1 TO 61.
- COMPUTE lam(idx)=-3.1 + idx * .1.
- DO IF lam(idx)=0.
-       COMPUTE tran(idx)=LN(var1).
- ELSE.
-   COMPUTE tran(idx)=(var1**lam(idx) - 1)/lam(idx).
- END IF.
END LOOP.
execute.
FREQUENCIES VARIABLES=var1 tran1 to tran61
    /format=notable
    /STATISTICS= SKEWNESS KURTOSIS
    /ORDER=ANALYSIS.
FREQUENCIES VARIABLES= lam1 to lam61
    /format=notable
    /STATISTICS= MINIMUM
    /ORDER=ANALYSIS.

Komento tulostaa 60 erilaista muunnosta muuttujalle KK_tulot vastaavien lambdan arvojen kulkiessa -3:sta +3:een. Alla olevassa kuvassa on piirrettynä hajontakuvaan vinouskertoimen ja lambdan arvoja. Kuvasta voi huomata, että lambdan arvolla 0.20 (eli lähes nolla = logaritmimuunnos) saadaan ideaalitulos, jossa vinous on 0.076.

boxcox_muunnos1

Seuraavassa taulukossa ovat alkuperäisen muuttujan, tavallisen logaritmi- ja neliöjuurimuunnoksen sekä lambdan arvolla 0.20 lasketut vinous- ja huipukkuus-luvut. On helppo huomata, että Box-Cox-muunnoksen avulla todella löydettiin tehokas muunnospotenssi.

Statistics KKtulot_1 log_KK_tulot SQRT_KK_tulot tran32
Skewness 5,656 -,532 2,193 ,076
Kurtosis 45,057 1,245 7,331 ,374

Samat muuttujat on esitetty myös histogrammeina alla (alkuperäinen vasen yläkulma, logaritmi oikea yläkulma, neliöjuuri vasen alakulma ja Box-Cox-muunnos oikea alakulma). Vaikka Box-Cox-muunnos löysi vielä logaritmia tehokkaamman potenssimuunnoksen, on kyseenalaista, kuinka paljon eroa näillä kahdella muunnoksella olisi käytännössä. Menetelmä on kuitenkin tehokas tapa löytää optimaalinen muunnos silloin, kun muuttujia ei ole helppo saada riittävän normaaleiksi tavallisin muunnoksin.

histogrammit_boxcox

[1] Osborne, J. W. (2013). Best Practices in Data Cleaning: A Complete Guide to Everything You Need to Do Before and After Collecting Your Data. Los Angeles: SAGE Publications. (Vastaava PDF-artikkeli täällä.)

[2] Raynald’s SPSS Tools.

Postaus on julkaistu alun perin 25.2.2014.

Leave a comment

Your email address will not be published. Required fields are marked *