Guide: Scatterplots

I det här inlägget ska vi:

  • Göra en scatterplot
  • Lägga till en linjär regressionslinje till diagrammet
  • Lägga till etiketter till datapunkterna i diagrammet

Ett bra sätt att illustrera ett samband mellan två variabler är genom så kallade scatterplots, som här i ett tidigare inlägg. I en scatterplot ritas varje analysenhet (exempelvis personer i en enkätundersökning, eller länder i en länderjämförande studie) ut som en punkt. En variabel anger punktens position på X-axeln och en annan variabel anger positionen på Y-axeln.

En scatterplot visar på samma sätt som ett korrelationsmått på det bivariata sambandet mellan två variabler, men kan också visa om det finns några analysenheter som sticker ut mycket. De kan också göra ett samband mer lättfattligt för läsaren. En nackdel med scatterplots är att de blir otydliga om det är alltför många analysenhter – fler än några hundra – med i analysen.

I det här exemplet ska vi göra en scatterplot som visar sambandet mellan ett lands BNP per capita och dess nivå av korruption. Korruption mäter vi genom det så kallade Corruption Perceptions Index, ett vida spritt mått som tillhandahålls av organisationen Transparency International.

Hur man skapar en scatterplot i SPSS.

Steg 1. Välj menyn ”Graphs” –> ”Chart builder”.

Bild 1. Hur man hittar ”chart builder”.


Steg 2. I fönstret som kommer fram, välj i menyn nere till vänster ”Scatter/dot”. Det dyker då upp åtta små bilder till höger som visar olika typer av scatterplots. Den vanligast använda är den uppe till vänster, ”Simple scatter” – bilden visar tre prickar. Dubbelklicka på bilden.

Steg 3. Från listan uppe till vänster, dra variablerna som ska ingå i analysen till rutorna vid X- och Y-axeln. Tryck OK.

Bild 2. Hur man väljer diagramtyp och variabler som ska ingå i analysen.


Steg 4. I outputfönstret kommer det då att dyka upp en scatterplot, som förhoppningsvis på ett begripligt sätt visar på ett samband mellan de två variablerna. Om punkterna är spridda i en svärm finns det inget samband. Om de ligger samlade kring en tänkt diagonal linje finns det ett samband. I bild 3 visas sambandet mellan BNP per capita och korruptionsnivån i ett antal länder. Höga tal på korruptionsmåttet indikerar att landet är fritt från korruption. Eftersom punkterna tenderar att vara placerade högre upp i diagrammet ju längre till höger de är ser vi att det finns ett positivt samband mellan de två variablerna. Länder med hög BNP per capita har mindre korruption.

Bild 3. En scatterplot.

Hur man lägger till en regressionslinje till sin scatterplot.

Steg 5. För att tydliggöra det samband vi tror oss se i scatterploten kan vi lägga in en regressionslinje. Regressionslinjen passas in för att minimera avståndet i Y-led till varje punkt (mer exakt: det kvadrerade avståndet). För att göra det, dubbelklicka på scatterploten i outputfönstret. Ett fönster som heter ”Chart editor” kommer då dyka upp.

Steg 5. Tryck på knappen ”Fit line at total”.

Bild 4. Hur man hittar knappen ”Fit line at total”.


Ett fönster dyker upp med ”linear” ifyllt. Vi ska ha en linjär regressionslinje, ett rakt streck, så tryck bara på ”Close”. Kryssa ner chart editor. Scatterploten ska nu se ut ungefär som i bild 5. Linjen som pekar diagonalt uppåt visar på det positiva sambandet – höga värden på den ena variabeln hänger samman med höga värden på den andra variabeln. Linjer som pekar diagonalt neråt visar på negativa samband.

Bild 5. En scatterplot med en linjär regressionslinje.

Hur man lägger till dataetiketter till scatterploten.

I vissa fall är de enskilda analysenheterna intressanta i sig, som till exempel länder. Då kan det vara bra att lägga till dataetiketter i scatterploten, så att man kan se vilka länder som har vilka värden. Det går till på samma sätt som när man gör en vanlig scatterplot, med ett tillägg.

Steg 1. Från menyn, välj ”Graphs” –> ”Chart builder”.

Steg 2. Välj ”Scatter/dot”, och ”Simple scatter”. Välj variabler på samma sätt som tidigare.

Steg 3. Tryck på fliken ”Groups/points id”. Tryck i rutan ”Point ID label”. Uppe i chart preview dyker en ruta ”Point ID” upp. Här drar man in den variabel som anger namnen på analysenheterna. Tryck på OK.

Bild 6. Hur man hittar point ID och väljer namnvariabel.


Steg 4. Man får nu upp en scatterplot som med många analysenheter blir väldigt rörig – namnen står en bit ifrån prickarna och linjer knyter ihop namn med punkt. Dubbelklicka på scatterploten för att öppna ”Chart editor”. I Chart editor, högerklicka på något av namnen och välj ”Properties window”. I rutan som kommer upp, välj ”Data value labels”.  Klicka ur rutan ”Suppress overlapping labels” och ”Display connecting lines to label” om de är ikryssade. Tryck på apply, och sedan close. Stäng därefter chart editor.

Bild 7. Hur man gör så att dataetiketterna placeras direkt vid datapunkterna i diagrammet.


Diagrammet ska nu se ut ungefär som i bild 8. Man kan där tillexempel se att Canada sticker ut genom att ha väldigt låg korruption (höga poäng i indexet) men relativt låg BNP. I det här fallet uppmärksammar det oss på att något måste ha gått fel i datahanteringen, eftersom man brukar räkna Canada till de rikaste länderna i världen, vilket vi antagligen inte hade upptäckt om vi bara gjort en enkel korrelationsanalys till exempel.

Bild 8. En scatterplot med dataetiketter (exempelvis landnamn).


19 reaktioner till “Guide: Scatterplots

  1. Jag har en fråga om scatterplot. Jag har en forskningsstudie där jag analyserar hur koncentrationen av ett ämne i blodet varierar med tiden hos ca 100 personer. Jag har tid på y-axeln, på x-axeln har jag koncentrationen av ämnet. Vissa personer har exakt samma värde vid samma tidpunkt, då lägger sig prickarna ovanpå varandra och ser bara ut som ett enda värde. Jag skulle vilja att det tydligt syns hur många som har samma värde vid samma tidpunkt genom att prickarna formar en liten klunga.

    MVH/ Lisa

    1. Hej Lisa!
      Istället för att trycka ”OK” när du gjort din scatterplot, tryck på ”Paste”. Då får du upp syntaxen för scatterploten. I slutet ska det finnas en rad där det står såhär:

      ELEMENT: point(position(variabel1*variabel2))

      där variabel1 och variabel2 är namnet på dina variabler. Lägg bara till ”.jitter” mellan ”point” och ”(position”, så att det ser ut såhär istället:

      ELEMENT: point.jitter(position(variabel1*variabel2))

      Sen markerar du all syntaxen och trycker på den gröna ”Play”-knappen (alternativt högerklickar och trycker ”Run current”) så ska du få ut din figur.

      /Anders

  2. Hej, jag försöker göra ett diagram där jag har cost på y-axeln och quantity på X-axeln. Jag har räknat ut flera olika MC för olika länder och vill att varje MC-cost ska bli en egen ”linje” i grafen. Det är som sagt en så enkel sak som cost= MC*x, men jag förstår inte hur jag kan lägga in så att alla dessa variabler hamnar i separata linjer, då de hamnar i samma linje och ses som endast ett samband.
    Tack på förhand!

    1. Hej Hanna!
      Jag tror att du kan få till det om du har alla MC i samma variabel, och har en variabel som visar vilket land det är.
      Sen använder du dig av grafalternativet ”Multiple line”, lägger in X- och Y-variablerna, och i rutan ”Set color” lägger du in landvariabeln. Då tror jag att du får en linje för varje land.

      /Anders

      1. Hej!
        Nu fick jag in att länderna skulle vara separata linjer, men det är inga linjer i grafen. Nåt tips på vad som kan vara fel?
        MVH
        Hanna

      2. Vet inte riktigt, men kanske att skalnivåerna är fel inställda för variablerna. X-variabeln måste nog vara inställd som ”Scale” för att det ska funka. Kanske!
        /Anders

  3. Hej!

    Jag har gjort en bivariat korrelationsanalys på en beroende variabel ”alkoholvanor” och oberoende ”vänners alkoholvanor” och fått fram ett resultat som tyder på starkt samband (r=0,58 och sig 0,00 på 0,01 nivå). Men då jag tar upp ett scatterplot ser det inte alls ut att fördela sig längs en rät linje. Spridningen ser närmast ut som :::: och jag undrar nu om detta kan bero på det stora antalet analysenheter (över 1400) eller kanske något annat jag inte har tänkt på? Har också prövat att bara välja ut de som är av en viss ålder och kön, (då 165 enheter) och då ser det lite ”bättre” ut men undrar ändå om det är något annat jag kan tänkas ha missat? Bägge variablerna har 5 svarsalternativ, men det ska väl räcka för att spss ska tolka dem som kontinuerliga?

    Tack på förhand och tack för en väldigt användbar spss-handbok!

    1. Tilläggskommentar:
      Eller, om scatterplot ser ut som det gör pga de få svarsalternativen (och att det därmed finns åtminstone en enhet fördelad på varje värde), finns det något annat grafiskt jag kan använda för att visa att/om det är lönsamt att göra en linjär regressionsanalys?

  4. Imponerad av dina svar och din service här!!
    Kan du ge råd för hur jag bygger ett linjediagram av standardiserade medelvärden -3 SD, -2 SD, -1 SD, 0 SD, +1 SD, +2 SD och +3 SD, för t ex längd mot ålder och på denna bas lägger in ett empiriskt material med längd per ålder (gäller barn) i form av en scatterplot. Då kan man ju se hur många individer som t ex ligger under – 2 SD. Har försökt på olika sätt utan att lyckas. Jag har SPSS version 20. Mycket tacksam för råd!!
    Lilly

    1. Hej Margareta! Jag har precis samma fråga som du har ställt här från 2012. Jag har SDS på y-axeln och vikt i gram på x-axeln. Fann du någon lösning på den? Isåfall får du gärna komma med tips! Tack :) hälsn Cecilia

    1. Hej Camilla, den visar på olika spridning (i y-led) i olika delar av diagrammet. TIll exempel kan den se ut som en tratt – samlad i ena änden, och väldigt utspridd i andra änden.

      /Anders

  5. Hej !

    Undrar hur man gör en korrelation samt ser korrelationskoefficientens riktning på åtta variabler? Samt hur skapar man ett sammansatt mått av de åtta variablerna ?

  6. Hej Anders!
    Tack för en bra guide till scatter plots. Jag har i mina plottar gjort en sortering till bin elements, där ringarna blir större om det är flera som har svarat likadant. När man gör detta fås samtidigt en skala på om en ring med en viss storlek motsvarar 2,3,4 svar etc. Mitt problem är att denna skala uppvisar alternativ som 2,5 och 3,5 svar (vilket inte förekommer i undersökningen). Så till min fråga: finns det något sätt att ändra skalan på ringstorlekarna så att endast heltal finns med?

  7. Hej
    När vi försöker göra en chart builder, får vi ett felmeddelande som säger:
    Before you use this dialouge, mesaurement level should be set properly for each variable in your chart. In addition, if your chart contains categorical variables, value labels should be defined for each category.
    Vad behövs göras?

  8. Hej vet du hur jag får min x och y axel att skära i punkten 0? Jag har ställt in att de ska göra det men diagrammet börjar en bit innan 0 (detta är en regressionsanalys gjord i ett scatterdot diagram). Jag tror att jag har testat allt och ingenting hjälper :(

Lämna en kommentar