Avainsana-arkisto: logistinen regressio

Logistinen regressio 2

Päivitetty 5.6.2014

Tämä artikkeli on jatkoa artikkeliin Logistinen regressio.

Askeltava (Stepwise) menetelmä

Selittäviä muuttujia ei pidä ottaa logistiseen regressiomalliin enempää kuin on tarpeellista. Paras tilanne on, jos tiedän mukaan otettavat selittävät muuttujat aiempien aineistojen tai teorian kautta. Jos aiempaa tietoa tai teoriaa ei ole, niin voin käyttää apuna askeltavaa (Stepwise) menetelmää.

SPSS tarjoaa askellukseen Forward– ja Backward-menetelmiä.

Forward-menetelmässä SPSS aloittaa mallista, joka sisältää pelkästään vakiotermin. SPSS lisää malliin selittäviä muuttujia yksi kerrallaan. Lisättävä muuttuja on se, joka lisää eniten mallin selitysvoimaa. Uuden muuttujan lisäämisen jälkeen SPSS tarkistaa, pitäisikö jokin malliin jo lisätyistä muuttujista poistaa. Forward LR -menetelmässä poistamisen kriteerinä käytetään log-likelihoodia. Jos muuttujan poistaminen ei muuta merkitsevästi mallin log-likelihoodia, niin SPSS poistaa muuttujan mallista. Muuttujien lisääminen lopetetaan, kun mikään uusi muuttuja ei enää merkittävästi paranna mallin selitysvoimaa.

Backward-menetelmässä otetaan ensimmäiseen malliin mukaan kaikki ehdokkaat. Tämän jälkeen selittäviä muuttujia poistetaan mallista yksi kerrallaan. Backward LR -menetelmässä poistamisen kriteerinä käytetään log-likelihoodia. Jos muuttujan poistaminen ei muuta merkitsevästi mallin log-likelihoodia, niin SPSS poistaa muuttujan mallista. Muuttujien poistaminen lopetetaan, kun minkä tahansa muuttujan poistaminen heikentää merkittävästi mallin selitysvoimaa.

Käytännössä Forward– ja Backward-menetelmien tuottamat mallit usein poikkeavat toisistaan. Menetelmän ja lopullisen mallin valinnassa kannattaa käyttää tapauskohtaista harkintaa.

Esimerkki

Käytän seuraavassa SPSS-muotoista aineistoa logit2.sav. Aineiston lähde ja tarkempi kuvaus: http://logisticregressionanalysis.com/303-what-a-logistic-regression-data-set-looks-like-an-example/

Suoritan laskennan SPSS:llä:

  • Valitsen Analyze – Regression – Binary Logistic.
  • Siirrän selitettävän muuttujan Dependent-ruutuun.
  • Siirrän selittävät muuttujat Covariates-ruutuun.
  • Valitsen Method-alasvetovalikosta menetelmän; tässä esimerkissä Forward LR.
  • Valitsen OK.

logit4

SPSS:n tulosteissa otsikon Block 0 alla on tiedot mallista, jossa on mukana pelkästään vakiotermi. Askeltavan menetelmän vaiheet ja lopullisen mallin löydän otsikon Block 1 alta.

Omnibus-taulukon Model-rivin Chi-square-sarake kertoo kuinka paljon -2 Log likelihood (-2 Log likelihoodista lisää artikkelissa Log likelihood) on muuttunut verrattuna edeltävään malliin. Tämä muutos noudattaa khiin neliö -jakaumaa, jonka perusteella saadaan muutoksen merkitsevyys (Sig.). Esimerkissämme jokainen malliin lisätyistä viidestä selittävästä muuttujasta on parantanut mallia merkitsevästi (Sig.<0,001).

logit5

Variables in the Equation -taulukosta näen malliin lisätyt muuttujat.

logit6

Osa aineistosta testiaineistona

Data mining -tyyppisessä analyysissä analysoidaan usein isoja aineistoja. Ison aineiston tapauksessa mallin sopivuutta voidaan testata laskemalla malli osalle aineistosta ja testaamalla kuinka hyvin malli sopii lopulle aineistolle. Tätä varten voin lisätä SPSS-aineistoon ylimääräisen muuttujan, joka erottelee aineiston kahteen osaan:

  • osa, jonka perusteella lasketaan malli
  • osa, jolla testataan lasketun mallin sopivuutta.

Voin lisätä ylimääräisen muuttujan SPSS:n Transform – Compute Variable -toiminnolla:

  • Valitsen Transform – Compute Variable.
  • Kirjoitan uudelle muuttujalle nimen Target Variable -ruutuun.
  • Kirjoitan Numeric Expression -ruutuun funktion RV.BERNOULLI(0.5).
  • Valitsen OK.

Näin laskettu uusi muuttuja saa satunnaisesti arvoja 0 ja 1 siten, että puolet on nollia ja puolet ykkösiä. Voin lisätä tämän muuttujan Logistic Regression -määrittelyikkunassa Selection Variable -ruutuun (olen antanut muuttujalle nimeksi Random). SPSS:lle täytyy kertoa Rule-painikkeella, mille muuttujan arvoille lasketaan logistinen regressio. Seuraavassa olen laskemassa logistista regressiota niiden rivien pohjalta, joissa Random-muuttujan arvo on 1.

logit7

Tulosteiden joukossa on muiden muassa Classification Table, josta näen kuinka hyvin malli ennustaa Buy-muuttujan arvoja. Lopullisessa mallissa (Step 4) malli ennustaa ostaneista (Buy=1) 75 % oikein. Aineiston toisessa puolikkaassa malli ennustaa ostaneista (Buy=1) 80,5 % oikein. Ainakin tässä mielessä malli näyttäisi toimivan hyvin.

logit8

Jos kokeilet yllä kuvattua esimerkkiaineistolla, niin voit hyvinkin päätyä erilaiseen malliin, koska aineisto voi olla eri tavalla jaettu kahteen osaan.

Kaiken kaikkiaan on kiusallista ja hämmentävää, koska samalla aineistolla voin päätyä eri menetelmillä erilaisiin malleihin. Mallin valinnassa täytyy käyttää tilannekohtaista harkintaa.

 

Logistinen regressio

Päivitetty 5.6.2014

Mistä on kyse?

Esimerkki. Lomaosakkeita myyvä yritys tarjoaa huippuhalvan viikonlopun kylpylässä lomaosakkeen esittelyyn osallistuville. Tarjous kannattaa kohdistaa henkilöille, joiden todennäköisyys lomaosakkeen ostoon on tavanomaista suurempi. Aiempien esittelyiden ja toteutuneiden kauppojen perusteella voidaan laatia malli, jolla lasketaan taustatietojen perusteella henkilön todennäköisyys lomaosakkeen ostoon.

Esimerkki. Luottoriskin arvioimiseksi pankin on hyvä tietää kuinka todennäköisesti luotonottajalle tulee maksuhäiriöitä. Aiempien maksuhäiriöiden perusteella voidaan laatia malli, jolla lasketaan taustatietojen perusteella luotonottajan todennäköisyys maksuhäiriöille.

Esimerkki. Lääkäri diagnosoi sairauden. Aiempien potilaiden potilastietojen perusteella voidaan laatia malli, jolla lasketaan potilaan parantumisen todennäköisyys.

Edellä kuvatuissa esimerkeissä voidaan käyttää todennäköisyyden arviointiin logistista regressiota. Logistista regressiota voidaan käyttää, jos ennustettavana on kategorinen muuttuja: ostaa tai ei osta, tulee maksuhäiriöitä tai ei tule, paranee tai ei parane. Selittävinä muuttujina voi olla sekä määrällisiä että kategorisia muuttujia.

Ilman käsitteiden odds ja logit ymmärtämistä logistista regressiota ei voi ymmärtää, joten aloitan niistä.

Odds

Odds-käsitteelle ei valitettavasti ole vakiintunutta suomennosta. Monet sanakirjat antavat suomennokseksi todennäköisyys, mutta odds on tarkkaan ottaen todennäköisyyksien suhde. Suomennoksia veto, vedonlyöntisuhde ja riski näkyy käytettävän. Minä käytän seuraavassa sekaannuksien välttämiseksi englanninkielistä termiä odds.

Jos tapahtuman todennäköisyys on p, niin odds tapahtuman puolesta:

odds = p / (1-p)

Jos odds on tiedossa, niin yllä olevasta kaavasta voin ratkaista todennäköisyyden:

p = odds / (odds+1)

Esimerkki. Nopanheitossa todennäköisyys saadaa kuutonen on yksi kuudesta (1/6) ja todennäköisyys olla saamatta kuutosta on viisi kuudesta (5/6). Odds on todennäköisyyksien suhde:

  • Odds kuutosen puolesta = (1/6)/(5/6)=1/5=0,2
  • Odds kuutosta vastaan = (5/6)/(1/6)=5

Logit

Edellisen nopanheittoesimerkin odds 0,2 kuutosen puolesta ja 5 kuutosta vastaan kuvaavat samaa tilannetta eri näkökulmista. Tämä ilmenee jännästi, jos otan logaritmit:

  • ln(0,2) ≈ -1,609
  • ln(5) ≈ 1,609

Jatketaan nopanheitolla ja tarkastellaan todennäköisyyttä saada parillinen silmäluku. Todennäköisyys on 1/2 ja odds on (1/2)/(1/2)=1. Tässä tapauksessa logaritmi on ln(1)=0.

ln(odds) on niin hyödyllinen, että sille on annettu oma nimi logit:

logit = ln (odds)

Logitilla on muiden muassa seuraavat ominaisuudet:

  • Jos todennäköisyys on 50 %, niin logit = 0.
  • Jos todennäköisyys on alle 50 %, logit on negatiivinen. Logit on sitä enemmän negatiivinen mitä pienempi todennäköisyys.
  • Jos todennäköisyys on yli 50 %, niin logit on positiivinen. Logit on sitä enemmän positiivinen mitä isompi todennäköisyys.

Jatkoa ajatellen on hyvä oppia miten logitista päästään takaisin oddsiin. Tässä tarvitaan luonnollisen logaritmin käänteistoimitusta (e on luonnollisen logaritmin kantaluku eli Neperin luku):

odds=eln(odds)=elogit

Edellä jo totesin, että oddsista saadaa todennäköisyys laskemalla odds/(odds+1). Yhdistämällä tämä tulos äskeiseen, saadaan muunnoskaava logitista todennäköisyyteen:

p = elogit/(1+elogit)

Logistinen regressio

Seuraavassa esimerkkinä käytettävä aineisto SPSS-muodossa logit1.sav (aukeaa vain SPSS:llä) ja Excel-muodossa logit1.xlsx. Kiinnostuksen kohteena on Buy (1=osti, 2=ei ostanut). Seuraavassa on näkyvillä aineiston ensimmäiset rivit:

likelihood1

Selittävinä muuttujina ovat income (tulot), isfemale (1=nainen, 0=mies) ja ismarried (1=naimisissa, 0=naimaton). Otetaan tavoitteeksi laatia malli, jonka avulla voidaan ennustaa oston todennäköisyys muuttujien income, isfemale ja ismarried perusteella.

Logistinen regressiomalli on lineaarinen regressiomalli, jossa selitettävänä muuttujana on logit (todennäköisyyttä ei sellaisenaan saada sovitettua lineaariseen malliin). Esimerkkiaineiston tapauksessa pyrimme muodostamaan mallin

logit = b0+b1*income + b2*isfemale + b3*ismarried

Mallin parametrit (b0, b1, b2, b3) määritetään maximum likelihood eli suurimman uskottavuuden -menetelmällä. Mallin käyttäjän ei välttämättä tarvitse ymmärtää maximum likelihood -menetelmän yksityiskohtia, mutta seuraavat perusideat on hyvä tuntea:

  • Parametreille annetaan arvauksena alkuarvot.
  • Lasketaan todennäköisyys sille, että havaittu data saataisiin näillä parametrien arvoilla.
  • Korjataan parametreja siten että päästään parempaan tulokseen.
  • Korjauksia tehdään, kunnes päästään parhaaseen mahdolliseen tulokseen. Paras mahdollinen tulos on se, johon liittyy suurin mahdollinen todennäköisyys sille, että havaittu data saataisiin valituilla parametrien arvoilla.

Esimerkkiaineisto maximum likelihood -menetelmä antaa malliksi:

logit = -12,033 + 0,00016742*income + 1,3653*isfemale + 1,3804*ismarried

Esimerkiksi 50000 ansaitsevan naimattoman naisen logit:

logit = -12,033 + 0,00016742*50000+1,3653*1+1,3804*0 ≈ -2,2967

Edellä jo opimme, että logit voidaan muuntaa todennäköisyydeksi p = elogit/(1+elogit). Näin esimerkiksi 50000 ansaitsevan naimattoman naisen todennäköisyys ostolle:

p = e-2,2967/(1+e-2,2967) ≈ 0,09 = 9 %

SPSS ja logistinen regressio

Voin suorittaa laskennan SPSS:llä seuraavasti:

  • Valitsen Analyze – Regression – Binary Logistic.
  • Siirrän selitettävän muuttujan Dependent-ruutuun.
  • Siirrän selittävät muuttujat Covariates-ruutuun.

logisticregression1

SPSS:n tulosteissa on kaksi mallia. Otsikon Block 0 alta löydän tiedot mallista, jossa on ainoastaan vakiotermi b0, mutta ei lainkaan selittäviä muuttujia. Tämä malli on mukana vertailun vuoksi.

logisticregression2

Tulosteesta voin lukea, että vakiotermi on -1,478. Tämä tarkoittaa mallia logit=-1,478. Tällöin todennäköisyys p = e-1,478/(1+e-1,478) ≈ 0,1857. Tämä on sama kuin aineistossa niiden osuus, jotka ovat ostaneet (125/673≈0,1857). Pelkästään vakiotermin sisältävä malli siis antaa ostamisen todennäköisyydeksi ostaneiden osuuden. Koska ostaneiden osuus on alle 50 %, niin mallin mukaan ennuste on aina ”ei osta”. Tällainen ennuste osuu kohdalleen 81,4 prosentissa tapauksista (548/673≈0,814).

Varsinaisen selittäviä muuttujia sisältävän mallin tiedot löydän otsikon Block 1 alta. Ensiksi arvioin mallin hyvyyttä verrattuna malliin, jossa on vain vaikiotermi. Hyvyyttä voin arvioida Omnibus-taulukon Model-riviltä. Chi-square-sarake kertoo kuinka paljon -2 Log likelihood (-2 Log likelihoodista lisää artikkelissa Log likelihood) on muuttunut verrattuna pelkästään vakiotermin sisältävään malliin. Tämä muutos noudattaa khiin neliö -jakaumaa, jonka perusteella saadaan muutoksen merkitsevyys (Sig.). Esimerkissämme selittävät muuttujat sisältävä malli on merkitsevästi parempi (Sig.<0,001) kuin pelkästään vakiotermin sisältävä malli.

logit3

Model Summary -taulukosta löydän -2 Log likelihood -arvon lisäksi kaksi R2-arvoa (lisätietoa artikkelissa Log likelihood), jotka yrittävät jäljitellä lineaarisen regressiomallin selityskerrointa. Näiden lisäksi on esitetty monia muita tapoja laskea R2-arvo. Yksimielisyyttä parhaasta laskentatavasta ei ole, minkä vuoksi R2-arvojen käyttö ja tulkinta on hankalaa. Aina kuitenkin pätee seuraava: mitä lähempänä R2-arvo on ykköstä sitä parempi.

Classification-taulukosta selviää, että malli ennustaa 95,8 % ei ostaneista oikein ja 84,8 % ostaneista oikein. Tässä mielessä malli vaikuttaa onnistuneelta.

logit2

Variables in the Equation -taulukko sisältää regressiokertoimet. Income-kerroin (B) ,000 ei tarkoita, että tuloilla ei olisi mitään vaikutusta ostamiseen. Jos lisään desimaalien määrää kyseisessä solussa, niin huomaan kertoimen poikkeavan nollasta.

logit1

Varmistan aina, että regressiokertoimet poikkeavat merkitsevästi nollasta. Tämä selviää Wald’in testimuuttujan avulla. Wald’in testimuuttuja saadaan jakamalla kerroin B keskivirheellään S.E. ja korottamalla tulos toiseen potenssiin. Wald’in testimuuttujan tiedetään noudattavan khiin neliö -jakaumaa, jonka perusteella merkitsevyys (Sig.) voidaan laskea. Esimerkissämme kaikki kertoimet poikkeavat merkitsevästi nollasta (Sig.<0,001), joten kaikki selittävät muuttujat voidaan tämän perusteella pitää mallissa mukana.

Malli on siis esimerkkimme tapauksessa (olen ottanut desimaaleja hieman enemmän Variables in the Equation -taulukossa oli näkyvillä):

logit = -12,033 + 0,00016742* income + 1,3653*isfemale + 1,3804*ismarried

Mallin parametrit (kertoimet) voidaan tulkita kuten lineaarisessa mallissa yleensäkin. Esimerkiksi income-kerroin 0,00016742 kertoo, että yhden euron lisäys tuloihin merkitsee 0,00016742 kasvua logitissa. Tämä ei kuitenkaan ole kovinkaan käyttökelpoinen tieto, koska logit on hieman hankala käsite ymmärrettäväksi.

Variables in the Equation -taulukossa on hieman helpommin tulkittavat muunnetut kertoimet Exp(B)-sarakkeessa. Exp(B)-sarakkeen kertoimet kertovat kuinka moninkertaisksi odds muuttuu, kun selittävä muuttuja kasvaa yhdellä yksiköllä.

  • Jos tulot kasvat yhdellä eurolla, niin odds kasvaa 1,0001674 kertaiseksi.
  • Naisilla odds on 3,917-kertainen miehiin verrattuna.
  • Naimisissa olevilla odds on 3,976-kertainen naimattomiin verrattuna.

Selittävien muuttujien valinta

Oma kysymyksensä on selittävien muuttujien valinta, jos ehdolla on paljon mahdollisia selittäviä muuttujia. Tästä lisää artikkelissa Logistinen regressio 2.

Log-likelihood

Päivitetty 27.7.2020

Tämä artikkeli täydentää artikkelia Logistinen regressio.

Logistisen regressiomallin laskenta ja sopivuuden arviointi perustuu log-likelihood -lukuun. Yritän tässä artikkelissa valottaa log-likelihood -luvun taustaa ja laskentaa.

Suurimman uskottavuuden menetelmä ja likelihood

Logistisen regressiomallin parametrit/kertoimet määritetään maximum likelihood eli suurimman uskottavuuden menetelmällä:

  • Parametreille annetaan arvauksena alkuarvot.
  • Lasketaan todennäköisyys (likelihood) sille, että havaittu data saataisiin näillä parametrien arvoilla.
  • Korjataan parametreja siten että päästään parempaan tulokseen (suurempi likelihood).
  • Korjauksia tehdään, kunnes päästään parhaaseen mahdolliseen tulokseen. Paras mahdollinen tulos on se, johon liittyy suurin mahdollinen todennäköisyys (maximum likelihood) sille, että havaittu data saataisiin valituilla parametreilla.

Likelihood’in laskenta

Käytän seuraavassa esimerkissä Excel-aineistoa logit1.xlsx, jonka alkuosan näet seuraavassa:

likelihood1

Artikkelissa Logistinen regressio olen esittänyt, miten tälle aineistolle lasketaan logistinen regressiomalli SPSS:llä. Esitän seuraavassa, miten likelihood ja log-likelihood lasketaan SPSS:n laskemalle regressiomallille. Laskennan olen suorittanut Excel-taulukkoon käyttäen SPSS:n antamia mallin parametreja, jotka olen kopioinut Exceliin. Excel käyttää koko ajan laskennassa 15 merkitsevän numeron tarkkuutta. Seuraavassa esittämäni laskelmat näyttävät vain pyöristettyjä likiarvoja.

Ensimmäisen vastaajan logit tulee suoraan regressiomallin yhtälöstä:

logit = -12,033 + 0,00016742*24000+1,3653*1+1,3804*0 ≈ -6,649

Logitista saadaan odds=elogit=e-6,649≈0,00129493

Ostamisen todennäköisyys on probability=odds/(1+odds)≈0,00129326

Likelihood on ostamisen todennäköisyys, jos kyseinen vastaaja on ostanut. Muussa tapauksessa likelihood saadaan vähentämällä ostamisen todennäköisyys ykkösestä. Ensimmäisen vastaajan tapauksessa

likelihood≈1-0,00129326≈0,99870674

Todennäköisyys, että kaikki havainnot ennustetaan oikein saadaan (todennäköisyyksien kertolaskusääntö) kertomalla likelihood’it keskenään. Isompien aineistojen tapauksessa tällainen kertolasku ei onnistu edes tietokoneelta. Niinpä onkin matemaattisesti mielekästä siirtyä tarkastelemaan likelihood’in logaritmia. Logaritmien käyttö mahdollistaa kertolaskun korvaamisen yhteenlaskulla, koska logaritmien laskusääntöjen mukaan tulon logaritmi saadaan logaritmien summana. Näin päästään log-likelihood -lukuun.

log-likelihood≈ln(0,99870674)≈-0,001294096

Muiden vastaajien log-likelihood lasketaan samalla periaatteella.

Likelihood on todennäköisyys, joten se saa arvoja väliltä [0,1]. Tästä seuraa, että log-likelihood saa negatiivisia arvoja tai arvon 0, jos likelihood=1. Mitä lähempänä nollaa log-likelihood on, sitä sopivampi malli.

SPSS:n ja myös muiden tilasto-ohjelmien tulosteissa ilmoitetaan log-likelihood kerrottuna luvulla -2. Tätä merkitään usein -2LL. Mitä pienempi -2LL on, sitä sopivampi malli on kyseessä.

Luvulla -2 kertominen tehdään, koska näin saadaan arvo, jonka muutoksen (verrattuna toiseen malliin) tiedetään noudattavan khiin neliö -jakaumaa. Khiin neliö -jakaumasta saadaan merkitsevyystaso (Sig.), jonka avulla voidaan arvioida mallin paremmuutta toiseen malliin verrattuna. Yleensä mallia pidetään merkitsevästi toista mallia parempana, jos Sig.<0,05.

Pseudo-selityskerroin

Logistisen regressiomallin selityskertoimen (R2) laskemiseksi on esitetty useita vaihtoehtoisia tapoja. Useimpien tapojen perustana on likelihood. Selityskertoimet eivät ole tulkinnallisesti yhtä konkreettisia kuin lineaarisen regression selityskerroin, joka ilmaisee kuinka suuren osan selitettävän muuttujan valihtelusta malli selittää. Logistisen regressiomallin selityskertoimia onkin tapana kutsua pseudo-selityskertoimiksi. SPSS esittää tulosteissaan Cox & Snell ja Nagelkerke -selityskertoimet:

likelihood2

Cox & Snell – selityskertoimen ongelma on, että se ei voi koskaan saavuttaa arvoa 1. Nagelkerke -selityskerroin on Cox & Snell -kertoimen korjattu versio, joka laajentaa mahdollisen arvoalueen arvoon 1 asti. Kertoimien arvoille ei ole mitään täsmällistä tulkintaa. Kuitenkin aina pätee: mitä lähempänä R2-arvo on ykköstä sitä parempi.