Läsarfråga: Logistisk regression

Q: Hur genomför man en logistisk regressionsanalys i SPSS? Vad är viktigast att titta på i outputen?

A: Du gör det genom att gå in på ”analyze->regression->binary logistic”.
Där väljer du sedan en beroende variabel som du anger i rutan ”dependent” och en eller flera oberoende variabler som du petar in i rutan ”covariates”.
Tryck sedan på OK.

I outputen går du till rubriken ”Block 1: Method=Enter”, och där är det framförallt rutan ”variables in the equation” som är intressant. Där kan du se om dina variabler har en positiv eller negativ effekt (i kolumnen B), beroende på om det är ett minustecken framför siffran eller inte. Du ser också om effekten är signifikant skild från noll i kolumnen ”Sig.”. Effekten är signifikant med 95 procents säkerhet om Sig-värdet är under ,050.

För att uttala sig om effektens storlek krävs att man gör ytterligare beräkningar, vilket är lite krångligare. Ofta räcker det ju med att veta om effekten är positiv eller negativ för att besvara en hypotes.

Det kan också vara intressant att i rutan ”Model summary” kolla på något av R Square-värdena, till exempel Nagelkerkes. De motsvarar ungefär R2 i en vanlig regression, dvs de anger andelen förklarad variation i den beroende variabeln.

Uppdatering 2011-10-03: En guide till hur man genomför och tolkar logistiska regressioner finns nu.

26 thoughts on “Läsarfråga: Logistisk regression

  1. Bra inlägg. Men jag har en kompletterande fråga. Jag gör en analys av nyhetskonsumtion och har skapat en dikotom variabel i form av ”som vana”, ”ingen vana”. När jag testar mot ålder blir jag lite osäker på tolkningen. I det ena testet har jag en 3-delad åldersvariabel (ung, medel, äldre) och får då ett Exp(B) = 4,62. I det andra testet har jag en tvådelad åldersvariabel (ung/”gammal”) och får då ett Exp(B) = 9,96.

    Min tolkning av test 2 är att det sannolikheten att individen har nyhetskonsumtion som vana är 9,96 ggr större om den är ”gammal” än om den är ung. Men hur ska jag tolka testet med den tredelade åldersvariabeln? Betyder 4,62 att det sannolikheten för att ha nyhetskonsumtion som vana är 4,62 ggr större för varje ”steg” i ålderindelningen (medelålders har 4,62 ggr större sannolikhet än unga och ”gamla” har 4,62 ggr större sannolikhet än medelålders)?

    Tack för en fantastisk bra webbplats.
    /Christer

    • Hej!
      Kul att du gillar bloggen.

      För det första: Du har rätt i att när du kör med en tvådelad oberoende variabel så visas skillnaden mellan unga och gamla, och med den tredelade variabeln så visas skillnaden mellan varje steg (givet att hoppet mellan varje steg är 1 – alltså om variabeln har värdena 0, 1 2 till exempel).

      Dock innebär inte ett Exp(B) på 9,96 att sannolikheten är 9,96 gånger högre för den ena gruppen. Exp(B) visar det så kallade oddsratiot.

      Ett odds är sannolikheten för att något ska inträffa, delat med sannolikheten att det inte ska inträffa. Vi kan till exempel tänka oss att sannolikheten att man ska ha nyhetskonsumtion som vana är 75 procent för gamla, och 50 procent för unga. För gamla är då oddset 0,75/0,25 = 3 och för unga är det 0,5/0,5=1. Oddsratiot, Exp(B), visar hur de här oddsen förhåller sig till varandra. Man tar då det ena oddset delat på det andra, alltså 3/1 = 3.

      Ditt resultat visar alltså att oddset för nyhetskonsumtion är 9,96 gånger större för gamla jämfört med unga. Det säger dock inte något om den exakta sannolikheten, förutom att sannolikheten är högre för gamla än för unga.

      Skillnaden i sannolikhet kommer bero på vad de andra beroende variablerna har för värden. Det kanske verkar konstigt, men är inte det egentligen, eftersom sannolikheten har ett tak – den kan ju inte vara mer än 1 (100%). Vi kan förvänta oss en större skillnad i sannolikhet mellan unga och gamla när alla variabler i övrigt talar för att personen inte ha ska ha nyhetskonsumtion som vana än när alla variabler talar för det. Om sannolikheten så att säga redan ligger på 99 procent kan den ju inte öka så mycket mer.

      Det du lämpligen kan göra är att räkna ut sannolikheten för unga och gamla när de övriga variablerna är vid sitt medelvärde till exempel. Om du inte har några andra oberoende variabler är det ju ännu lättare – då räknar du bara ut sannolikheten för unga och gamla och jämför dem.

      Hur gör man det då? Den här länken tyckte jag var väldigt bra:
      http://luna.cas.usf.edu/~mbrannic/files/regression/Logistic.html

      Det du gör är att för unga först addera ihop interceptet med b-koefficienten*värdet på den oberoende variabeln när man är ung. Om variabeln är 0 när man är ung blir det alltså bara interceptets värde. Använd här alltså b-koefficienten, inte Exp(B). Därefter upphöjer du e till det värdet du fått fram, dvs tar exponenten av värdet (lätt gjort i Excel). Addera sedan på 1 på värdet du fått fram. Därefter delar du 1 med det sista värdet. Då får du sannolikheten att ha nyhetskonsumtion som vana för unga.

      Sen gör du samma sak för gamla, och så kan du jämföra sannolikheterna! Formeln för den här sista operationen beskrivs på länken jag bifogade i den näst sista bilden.

      Jag tänkte skriva en mer utförlig guide till logistisk regression, med fokus på hur man räknar fram sannolikheter, men den kommer nog inte upp förrän till helgen.

      /Anders

  2. Hej!

    Tack för en lättförståelig och informativ blogg!

    Jag analyserar förekomsten av olika sociala problem hos en grupp ungdomar och gör logistiska regressioner där jag vill kontrollera för kön, etnisk bakgrund och ”klass” (här mätt som moderns utbildningsnivå). jag har förstått att om man gör andra typer av regressioner och har oberoende variabler som inte är på intervallnivå så ska man göra dummyvariabler för de olika svarsalternativen. Eftersom etnisk bakgrund och klass knappast kan ses som variabler på intervallnivå undrar jag nu om detta ska göras även för logistiska regressioner? Och om så är fallet, är det meningen att jag både ska lägga in dummyvariablerna OCH den ursprungliga variabeln (för ex. etnisk bakgrund) i modellen?

    Stort tack för svar!

      • Eller varför inte utnyttja möjligheten att i logistisk regression låta en kategorisk variabel vara x-variabel. I första dialogrutan i proceduren finns möjlighet att klicka på ”Categorical” och ange vilka variabler som är kategoriska. Att göra om alla ”kategorivariabler” till dummyvariabler är onödigt arbete…

  3. Hej
    Jag försöker göra en logistisk regression, men har svårt att tolka resultatet. Mitt ämne handlar om att undersöka vilka faktorer som påverkar att kunder inte använder Internetbank. Jag har en beroende variabel på användare respektive icke användare av Internetbank. Sedan har jag olika oberoende variabler som brist på personlig kontakt, användarsvårigheter, tillit, priser osv. Jag gör en logistisk regression mellan den beroende variabeln och de oberoende variablerna plus en kontrollvariabel som variabeln kön. När jag testar får jag fram att B-värdet för faktorn priser är -1.250 och sig. 0,001. Nagelkerke R Square är 0,401. Vad innebär detta? Om min hypotes lyder: Uppfattning om höga priser är negativt relaterad till kunders användning av Internetbank.
    Att det finns en signifikans, innebär det att faktorn priser har en påverkan, eller kan man tolka det som att det finns skillnad mellan användare och icke användare om deras uppfattning om priser?

    Tacksam för ett svar

    • Att B-koefficienten är signifikant betyder att det finns en effekt av den oberoende variabeln på sannolikheten att den beroende variabeln ska inträffa. Eftersom koefficienten är negativ innebär det att mer av den oberoende variabeln gör att sannolikheten för att den beroende variabeln ska ha värdet 1 minskar.

      Man kan tolka det som att det finns en skillnad mellan de som har ett lågt värde på ”priser” skiljer sig i användandet av internetbank från dem som har ett högt värde på ”priser”.

      /Anders

  4. Hej!

    Funderar på att göra en logistisk regressionsanalys. Den oberoende variabeln är dikotomiserad men jag har ännu inte dikotomiserat de olika beroende variabler som jag tänkt sätta in i modellen. Måste jag göra det för att få fram några resultat? Mvh/NV

    • Hej!
      De oberoende variablerna behöver inte vara dikotomiserade i logistisk regression.
      Däremot måste den beroende variabeln vara det.

      Men om du har en kontinuerlig beroende variabel låter det ju bättre att använda vanlig regression – logistisk regression är ju något man tar till för att den beroende variabeln inte är kontinuerlig. Genom att dikotomisera en kontinuerlig variabel slänger du ju så att säga bort en del information.

      /Anders

      • Tack Anders för utmärkt svar!

        Anledningen till att jag tänkt mig göra en logistisk regression beror på att det är en prospektiv studie där jag enbart är intresserad av en viss grupp som vid tidpunkt 1 kom över en cut-off (som är dikotomiserad) för att sedan se hur de svarar vid tidpunkt 2.

        Jag kan kanske utifrån din idé om att ta till vara på informationen välja ut individerna vid T1 på ett annat sätt, nämligen de som kommer över en viss nivå på den beroende variabeln utan att för den skull göra den dikotom. Mvh/N

      • Okej!
        Jag tänkte mest på den beroende variabeln vid tidpunkt 2. Om den inte är dikotom behöver du ju inte använda logistisk regression.

        En sak du säkert tänkt på, men som kanske är av intresse för någon annan som läser bloggen, är att det finns en viss risk att du kommer drabbas av återgång till medelvärdet om du väljer ut personerna du ska undersöka utifrån vad de tidigare haft för värde på den beroende variabeln. Om man tänker sig att de flesta har ett ”normalvärde” som man gör slumpmässiga avvikelser ifrån, och man väljer ut de personer som vid T1 har ett särskilt högt värde, är sannolikheten väldigt stor att de personerna kommer ha minskat sitt värde till T2. På samma sätt är det stor sannolikhet att personer som låg väldigt lågt vid T1 kommer att öka sitt värde till T2. Man måste därför vara försiktig med att dra slutsatser om effekter av sådant som hänt mellan T1 och T2. Till andra läsare!

        /Anders

  5. Hej!

    Jag skall göra en logistisk regression för att undersöka om vissa personlighetsdrag påverkar vårdkonsumtion. Min oberoende variabel kan sägas vara på intervallskalenivå och min beroede är dikotom; vårdkonsumtion Ja/nej. Saken är den att jag vill kontrollera för upplevd problemtyngd (tex psykiatriska problem). Hur gör jag lämpligen detta i spss?

    tacksam för svar!

    N

  6. Hei!
    For en fantastisk side og ide! Dette digger jeg:)

    Jeg er på jakt etter en god statistisk metode for å se på forandringen av de som scorer lavt på en skala, utfordringen er at det ikke er så mange. For å forklare så har jeg et utvalg på ca 500 stykker (delt en intervensjonsgruppe og en kontrollgruppe) som har svart på et spørreskjema 4 ganger (i løpet av tre år).

    Gjennomsnittet forandrer seg ikke noe særlig, men det jeg ser når jeg ser på frekvensfordelingen er at det er en reduksjon av antallet personer som scorer lavt på de fleste spørsmålene. Siden det er bare noen prosent som har det dårlig (ikke har venner i det hele tatt, eller ikke trives i det hele tatt) og utvalget ikke er større sliter jeg med å finne en metode for å kunne vurdere om denne forandringen er stor nok til å kalle det et holdbart resultat.

    Jeg har fått et tips om å benytte fixed effects modeller. Alternativt lage dummyvariabler for de som skårer lavt. Tror du det er en god metode, og hvordan skal jeg gjøre dette. Jeg kan en god del statistikk, men har ikke brukt denne før, og det begynner å bli en stund siden jeg analyserte data så jeg er litt rusten…

    • Hej!
      Jadu, jag vet inte riktigt. Kanske kan du göra en ny variabel som bara är om man har svarat lågt (lavt?) eller ej. Sen kan du ju signifikanstesta skillnaden i den variabeln mellan tillfällena kanske?

      Om du använder en fixed effects-modell och sedan undersöker effekten av tid (för det är det du vill göra va?) så kan du se om det har blivit någon generell nedgång, oavsett vilken nivå man startade på. jag vet inte om det blir bättre då.

      Ett annat alternativ kanske kan vara att kontrollera för nivån vid den första tidpunkten – det kan ju finnas regression to the mean-tendenser.

      /Anders

  7. En fråga som komer upp när jag genomför en analys är följande: Om odds-förhållandet är 0,83 vid ett ”håller inte med”-svar (alltså, ej ökad sannolikhet), hur blir ett ”håller med”-svar då? Också minskad sannolikhet? Hur räknas detta ut?

    • Hej Peter!
      Ett oddsförhållande visar ju en relativ sannolikhet, i förhållande till en referenskategori. 0,83 är ju i relation till något annat, jag gissar ett ”håller med”-svar? I såna fall betyder det ju att sannolikheten är mindre om man inte håller med än om man håller med, och vice versa.

      /Anders

  8. Hej! jo, jag ska göra en logistisk regression där jag har en oberoende variabel där värdena är följande: ”föreligger inte/föreligger delvis/föreligger helt”. Dessa kan sedan översättas med 0,1,2. Behöver jag göra om dessa till dummyvariabler för att lägga in i analysen? I så fall, hur många? Har läst någonstans att formeln för detta är k-1, dvs i mitt fall 2, kan det stämma?

    Eller kan jag behålla variablen som den är?

    tacksam för svar!

    • Hej!
      Ja, du behöver antingen göra två dummyvariabler, eller klicka på knappen ”Categorical” när du gör den logistiska regressionen. Då gör programmet så att säga dummyvariabler automatiskt.

      /Anders

      • Hej igen! Jättetack! har en snabb fråga till, jag använder spss. Har läst mig till att man i SPSS trycker på ”categorical” och därefter förflyttar variabeln till ”categorical covariates”. Sedan finns det en två val; ”contrasts (indicator etc)” och ”reference category (last/first)” hur skall man välja när det gäller dessa två alternativ? Om du har någon aning? :)

        tack igen!

      • Hej igen!
        ja du har rätt, jag blandade ihop det med ett annat kommando, där det heter ”Factors” istället. Categorical ska det vara.

        De olika varianterna har att göra med hur man ska jämföra de olika kategorierna. Om du väljer ”Indicator” så blir det som att göra dummyvariabler, och i ”Reference category” väljer du då om den utelämnade kategorin, referenskategorin, ska vara det lägsta eller det högsta värdet.

        /Anders

  9. Jag får en oddskvot på ca 0.00003 och som ligger utanför sitt eget K.I., när jag gör en enkal logistisk regression med en kontinuerlig (ålder) förklaringsvariabel. Konstanten saknas i modellen, trots att jag bett om den. Vad kan varfa fel?? Inga outliers i sikte, n bör vara tillräckligt stort (115). några idéer?

    /Karin

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s