Guide: Logaritmera en variabel

I det här inlägget ska vi:

  • Transformera en snedfördelad variabel så att den blir mer normalfördelad.
  • Ta fram histogram över variabeln.

När man gör regressionsanalyser bör variablerna man använder vara normalfördelade. Det är dock väldigt vanligt att variabler inte är det, särskilt när de inte handlar om attityder utan om strukturella saker, som ekonomi eller befolkning eller liknande. Det beror ofta på att de processer som styr variabeln ofta är självförstärkande. Tänk till exempel på folkmängd i städer. Det finns massor av städer med 5-10000 invånare, men bara några få städer med över 10 miljoner invånare. Vi kan tänka oss att ju större storlek på städer, desto färre städer finns det i den kategorin. Varför är det så? Jo, antagligen för att befolkningsökningen är större i New York än i Göteborg, till exempel.  Fler människor bor i New York, alltså föds det fler barn. Stora städer drar också till sig fler människor än små. Befolkningen ökar alltså snabbare i New York än i Göteborg.

Ett annat exempel är BNP per capita i länder. Många länder har låg BNP per capita, halvmånga har mellanhög, medan några få länder har väldigt hög. Vi kan själva se detta genom att använda oss av QoG-datamängden, som finns att hämta hem från The Quality of Government Institute (här används Cross-sectionversionen). BNP-variabeln heter ”gle_gdp”. I bild 1 har ett histogram över variabeln tagits fram. Man får fram ett histogram genom att gå in på ”Graphs–>Chart builder–>Bar–>Simple bar” och dra in sin variabel på X-axeln. En högre stapel visar att det finns många länder i det spannet.

Bild 1. En snedfördelad variabel – BNP per capita.

Att variabeln är såhär snedfördelad är problematiskt i regressionsanalyser. Helst av allt vill vi att den ska vara normalfördelad kring medelvärdet. Därför tar vi den naturliga logaritmen av variabeln. Det innebär att avståndet mellan värden högre upp på skalan så att säga trycks ihop. Det innebär att vi tror att förändringen mellan 1000 och 2000 i BNP/capita betyder mer än förändringen mellan 10000 och 11000, vilket är vettigt även teoretiskt. För att logaritmera variabeln går vi in på ”Transform–>Compute variable”. I rutan ”target variable” skriver vi in ”ln_bnp”. Ln står för att det är den naturliga logaritmen. I rutan ”Numeric expression” Skriver vi in ”Ln() ” och placerar sedan markören mellan paranteserna. Därefter letar vi upp variabeln ”gle_gdp” i rutan till vänster och klickar in den så att den kommer in i parantesen. Det ska nu se ut som i Bild 2. Tryck sedan på OK. I datasetet har det nu skapats en ny variabel som heter ”ln_bnp”.

Bild 2. Hur man tar den naturliga logaritmen av en variabel.

Om vi nu tar fram ett histogram på vår nya variabel ska det se ut som i bild 3, betydligt mer normalfördelat. Inte perfekt, men det är nu i alla fall ganska jämnt fördelat kring en mittpunkt.

Bild 3. BNP per capita efter att vi tagit den naturliga logaritmen av variabeln.

För att illustrera förhållandet mellan den gamla och den nya variabeln kan man ta ut en scatterplot mellan den gamla och den nya variabeln. Vi lägger den gamla variabeln på X-axeln och den nya variabeln på Y-axeln. Det ser då ut som i Bild 4.

Bild 4. En scatterplot som visar förhållandet mellan den otransformerade och den transformerade variabeln.

Vi ser här att om man går från nära  0 till 10000 på X-axeln så blir det ett stort hopp uppåt på Y-axeln, från strax under 6 till strax över 9. Om man däremot går från 10000 till 20000 på X-axeln så leder bara till ett hopp på ett steg på Y-axeln. Mellan 20000 och 30000 är det ännu mindre skillnad. Vi har gjort en icke-linjär transformation av variabeln.

Detta är inte fusk! Vi har inte ändrat på variabeln i egentlig mening. Men vi har ändrat den teoretiska betydelsen av variabeln – om vi nu använder den som oberoende variabel i en regression så letar vi inte efter ett linjärt samband, utan ett ickelinjärt. Vi tror att det finns en avtagande effekt av BNP – ökningar av BNP från en låg nivå betyder mer än ökningar av BNP från en hög nivå.

Hur ska man då tolka variabler som logaritmerats?
Läs mer om det i det här inlägget:
https://spssakuten.wordpress.com/2010/10/29/lasarfraga-tolka-logaritmerade-variabler/

4 thoughts on “Guide: Logaritmera en variabel

  1. Ping: Guide: Logistisk regression « SPSS-AKUTEN

  2. Ping: Guide: Kontrollvariabler i regressionsanalys « SPSS-AKUTEN

  3. Hej.

    Jag undrar hur snedfördelad data får lov att vara.
    I mitt fall har jag detta resultatet:

    N Valid 405
    Missing 0
    Mean 67,8028
    Median 72,6923
    Mode 96,00
    Skewness -,942
    Std. Error of Skewness ,121
    Kurtosis 1,280
    Std. Error of Kurtosis ,242

    Som ni ser är den en aning snedfördelad åt höger, alltså negativt, och datan är väldigt toppigt.
    Jag har läst att toppigheten i sig inte är av så stor vikt, men att snedfördelningen är det.
    Finns det några riktlinjer man kan gå efter? Och vart kan jag hitta dem så att jag kan läsa och referera utifrån dessa?

    Tack för hjälpen.

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