Läsarfråga: Outliers (extrema fall)

Q: Jag har en fråga när det gäller extremfall i SPSS, jag vet inte hur man gör för att ta bort dessa. Extremfallen är väl de man ser i ett histogram med en normalfördelningskurva? Vissa staplar går nämligen extremt långt utanför kurvan.

A: Det beror lite på hur många extremfall det handlar om, och huruvida det påverkar analysen eller inte. Om det påverkar analysen behöver man göra något åt dem.

1. Om det är ett enstaka värde, som till exempel ett land, kan det i vissa fall finnas teoretiska argument för att landet inte behöver vara med i analysen. Singapore är till exempel ett land som är speciellt i många avseenden. Man kan då argumentera för att den teoretiska modell man försöker bevisa med sin analys gäller för alla länder utom Singapore och tar helt enkelt bort Singapore ur analysen.

För att hitta vilka fall det är som är extrema kan du gå in på ”Data –> Sort cases” och sedan välja den variabel du är intresserad av. Extremvärdena hittar du då längst upp och längst ner i listan.

För att sortera ut extremfallet, använd lämpligen ett filter. Gå i så fall in på ”Data –> Select Cases –> If condition is satisfied” och sedan skriver du in att analysenheterna måste ha ett lägre (eller högre) värde på den variabel du är intresserad av så att alla andra fall än extremfallet är med i analysen.

Observera att du måste ha goda teoretiska argument för att göra på detta sätt! Det får inte bli så att man tar bort fall för att hypotesen ska få stöd tillexempel. Det är bara motiverat då något enstaka fall snedvridar alltihopa.

2. Om det är många extremfall – till exempel om normalfördelningen har en ”svans” som är mycket längre åt ena hållet, som i den vänstra bilden på länken, kan det vara läge för en ”transformering” av variabeln så att den blir mer normalfördelad. En vanlig sådan transformering är att man ”logaritmerar” variabeln. Den kommer efteråt då se mer ut som den högra bilden på länken ovan.

I vanliga fall mäts en variabel i riktiga enheter, som tillexempel antal år en person har levat. Genom att logaritmera variabeln räknar man istället ut vilket tal det ”naturliga talet e” måste upphöjas till för att få fram det ursprungliga talet. Wikipedia skriver mer om det.

I praktiken innebär det här att skalan trycks ihop så att skillnaden mellan stora tal betyder mindre än skillnaden mellan små tal, vilket är helt okej statistiskt och kan vara motiverat teoretiskt. Om man ser på människors mentala utveckling så händer det väldigt mycket mellan att man är 5 och 10 år gammal, men betydligt mindre mellan att man är 45 och 50. Genom att ”trycka ihop” skalan med en logaritmering ger vi större vikt åt skillnaden mellan 5 och 10 år än 45 och 50.

För att logaritmera en variabel i SPSS, gå in på ”Transform –> Compute variable”. I rutan ”Target variable” skriver du in namnet på den nya logaritmerade variabeln, till exempel ”log_gammaltnamn”. Därefter väljer du i rutan ”Function group” ”Arithmetic”. I rutan ”Functions and Special variables” markerar du ”Ln”. Tryck på pilen som pekar uppåt. Därefter letar du upp variabeln du ska transformera i listan till vänster, markerar den och trycker på högerpilen. Det ska då stå ”LN(gammalvariabel)” i rutan ”Numeric Expression”. Tryck sedan på ok. Observera att alla värden på variabeln måste vara större än 0 för att det här ska funka!

Gör ett histogram av den nya variabeln och se om den är mer normalfördelad. Det finns också andra varianter av transformeringar som man kan pröva för att åstadkomma en normalfördelad variabel. Mer om detta kan man läsa här.

5 reaktioner till “Läsarfråga: Outliers (extrema fall)

  1. Hej!
    Jag arbetar med ett material där jag har flera delskalor och i vissa av dom finns extrema outliers som enligt manualen för skalan ska plockas bort. Jag vill inte ta bort dessa fp helt utan vill använda mig av filter enligt det som beskrivits ovan. Frågan är då om SPSS kan lagra flera filter eller om det bara använda ett i taget? Försvinner föregående filter så fort jag skapar ett nytt?
    mvh
    Ina

    1. Hej!
      Ja, det gör det, men det skapas en filtervariabel som lägger sig längst ner i variabellistan. Om du byter namn på den kommer den att sparas. Den har då värdet 1 för alla variabler som ska vara med och 0 för de som inte ska vara med. Du kan ju göra flera olika filter och sen använda select cases för att att välja ut flera av dem. Då skriver du en if-sats som ser ut typ såhär:

      filter1 = 1 AND filter2 = 1 AND filter3 = 1

      Det betyder alltså att analysenheten måste ha värdet 1 på alla de tre filtervariablerna.

      /Anders

Kommentera

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

WordPress.com-logga

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

Facebook-foto

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

Ansluter till %s