I det här inlägget ska vi gå igenom:
- Hur man kodar om en variabel.
- Hur man ger nya ”Value labels” – etiketter – till datavärden i den nya variabeln.
- Hur man kontrollerar att omkodningen blev rätt.
Ibland behöver man koda om variabler för att underlätta analyser. Om man till exempel jobbar med data från frågeundersökningar är man ibland inte intresserad av alla svarsalternativ på en viss fråga, utan bara någon övergripande skillnad. Vi hämtar vårt exempel från SOM-undersökningen 2004, en frågeundersökning där en fråga ställs om den svarandes utbildning. Frågan har i frågeformuläret åtta svarsalternativ:
- Ej fullgjort grundskola eller motsvarande obligatorisk skola2
- Grundskola eller motsvarande obligatorisk skola
- Studier vid gymnasium, folkhögskola eller liknande
- Examen från gymnasium, folkhögskola eller liknande
- Eftergymnasial utbildning, ej högskola
- Studier vid högskola/universitet
- Examen från högskola/universitet
- Examen från forskarutbildning
Vi tänker oss att vi bara är intresserade av eventuella skillnader mellan dem som har gått någon form av eftergymnasial utbildning och de som inte har gjort det. Vi ska därför omkoda ursprungsvariabeln till en ny variabel med två värden:
- Ej eftergymnasial utbildning
- Eftergymnasial utbildning
Hur man kodar om en variabel
Steg 1. Gå in på menyn ”Transform” –> ”Recode into different variables”. Ta alltid ”Recode into different variables” och inte ”Recode into same variables” – det innebär att vi gör en ny omkodad variabel, istället för att ändra i den ursprungliga. På så sätt riskerar man aldrig att förstöra data för alltid.
Bild 1. Hur man hittar omkodning i menyn.
Steg 2. I dialogfönstret som kommer upp letar du upp variabeln du vill koda om i rullisten till vänster. Efter att ha markerat den trycker du på pilen som pekar åt höger så att variabeln dyker upp i det vita området där det står ”Numeric variable -> Output variable”. I det lilla området där det står ”Output variable” och ”Name:” skriver du namnet på den nya variabeln. Undvik å, ä och ö, specialtecken och mellanslag. I det här fallet döps variabeln till ”utbildning_tvadelad” för att indikera vad variabeln visar. I rutan ”Label:” kan du skriva en lite längre beskrivning på variabeln, men man måste inte. Vi lämnar rutan tom. När du skrivit in namnet trycker du på change. Namnet på den nya variabeln ska då dyka upp till höger om den gamla variabeln, som på bild 2.
Bild 2. Skriv in namnet på den nya variabeln.
Steg 3. I samma dialogfönster, tryck på knappen ”Old and new values”. Här kommer den viktiga biten. Vi ska nu skriva in vilka värden på den gamla variabeln som ska översättas till värden i den nya variabeln (Om du inte kommer ihåg vilka värden den gamla variabeln hade kan man stänga ner dialogrutan ”Old and new values” och i den första dialogrutan högerklickar man på variabeln och trycker ”Variable information”). Vi kodar om värde 1-4, allt upp till eftergymnasial utbildning, till värde 0, och värde 5-8, eftergymnasial utbildning, till värde 1.
Vi klickar på knappen ”Range” och i den översta rutan skriver vi in 1 och i den nedre rutan 4. Till höger, i området ”New value”, skriver vi in 0. Det betyder att 1-4 i den gamla variabeln översätts till 0 i den nya variabeln. Därefter trycker vi på ”Add”. I det vita fältet dyker det nu upp ”1 thru 4 –> 1” som bekräftelse.Därefter gör vi samma sak, fast i range skriver vi nu 5 till 8, och i ”New value” skriver vi nu 1, och trycker på add. I det här fallet kodade vi om 1-4 till ett värde, och 5-8 till en annat värde, men om man till exempel skulle vilja koda om 1, 3, 7 och 8 till ett värde kan man istället för range välja ”Value” och skriva in ett värde i taget.
Bild 3. Välj värden som ska omkodas.
Steg 4. I den här ursprungsvariabeln finns det två koder för de som inte svarat på frågan, 98 och 99. Dessa vill vi naturligtvis inte ha med i vår analys. Därför klickar vi i området ”Old value” knappen ”All other values” och i området ”New value” trycker vi på knappen ”System-missing”. Därefter trycker vi på add. Det innebär att alla andra värden än de vi gett nya värden, alltså 1-8, nu kommer kodas om till ”Missing”. De kommer inte vara med i efterföljande analyser. Därefter trycker vi på ”Continue”, och kommer då tillbaks till den första dialogrutan. Där klickar vi på ”OK”, och SPSS gör nu våra analyser.
Hur man ger ”value labels” till den nya variabeln
Steg 5. Gå nu in i ”Variable view” i SPSS, där alla variablerna i datamängden är uppradade. Längst ner borde nu den nya variabeln ligga. Vi ska nu ge ”Value labels”, etiketter, till datavärdena i den nya variabeln, så att vi i framtiden kommer ihåg att 0 står för ”Ej eftergymnasial utbildning” och 1 för ”Eftergymnasial utbildning”. På raden för den nya variabeln och i kolumnen ”Values” klickar vi där det nu står ”None”. Det dyker då upp en knapp med tre punkter. Klicka på den.
Bild 4. Hur man hittar knappen för value labels.
I rutan som kommer upp kan man skriva in etiketter för enskilda värden. I rutan ”Value” skriver vi först in 0, och i ”Label” skriver vi ”Ej eftergymnasial utbildning” och klickar på ”Add”. Därefter skriver vi i rutan ”Value” 1 och i rutan ”Label” ”Eftergymnasial utbildning” och klickar på ”Add”. Tryck sedan på ”OK”.
Hur man kontrollerar att det blev rätt
Steg 6. För att kontrollera att det blev rätt ska vi ta fram frekvenstabeller för de två variablerna. Gå in på menyn ”Analyze”–>”Descriptive statistics”–>”Frequencies”. I dialogrutan som kommer upp, leta upp både den gamla och den nya variabeln och tryck på högerpilen så att de dyker upp i det vita fältet. Tryck på ”OK”.
Bild 5. Hur man tar fram frekvenstabeller.
Steg 7. Det kommer ut tre tabeller: En liten där det står ”Statistics” som vi inte bryr oss om nu, och två större som det står ”Frequency tables” ovanför. I den första tabellen ser vi hur många personer som valt varje svarsalternativ i den gamla variabeln, och i den andra tabellen ser vi hur många personer som har varje värde i den nya variabeln. I den nya variabeln står det nu ”Ej eftergymnasial utbildning” och ”Eftergymnasial utbildning” istället för 0 och 1 eftersom vi angett value labels. Vi kan se att 2133 personer har hör till de första fyra svarsalternativen i den gamla frågan, vilket stämmer överens med de 2133 personer som har ”Ej eftergymnasial utbildning” i den nya variabeln. 1400 personer har angett de fyra sista svarsalternativen i den gamla variabeln, vilket också stämmer överens med alternativet ”Eftergymnasial utbildning” i den nya variabeln. I den gamla variabeln fanns det ett värde som heter ”Ej svar”, vilket 79 personer hade – i den nya variabeln har de som bekant kodats om till ”Missing” och finns inte med i analysen. Hade inte siffrorna stämt överens mellan de två tabellerna får man gå tillbaks och göra om omkodningen.
Bild 6. Hur man kontrollerar att det blev rätt.
Variabeln är nu redo att användas i riktiga analyser! Tack till Maria Solevid och Stefan Dahlberg som tillhandahållit materialet som legat till grund för detta inlägg.
Hej!
Jag sitter med ett flertal variabler där jag vill ”komprimera” svarsalternativen till två. Jag har tio variabler med tre kategorier, 0-2 där jag vill att 1 skall inkluderas i 0-kategorin. Jag har även fem variabler med fyra kategorier, 1-4 där 2 skall inkluderas i ettan och 3 i fyran. Efter följande är gjort, kan man använda dessa variabler i ett index? om så är fallet, hur beräknar man isåfall storleken på indexet?
Hej!
Ja, det kan gå bra att lägga ihop dem till ett index, men det är inte säkert att det ens är bättre att koda om dem först. Du slänger ju bort en del information i omkodningen.
Här är ett inlägg där jag skrivit om hur man skapar ett index:
https://spssakuten.wordpress.com/2010/05/03/lasarfraga-skapa-index/
Men om det är vettigt eller inte att göra ett index beror framförallt på vad frågorna handlar om.
/Anders
Jag har en variabel som är indelat i 1 och 0 dvs en grupp har en viss diagnos (1) och 0 gruppen har inte denna diagnos. Problemet är att jag inte kan utföra någon analys på detta. Försöker göra ett simple t test men det står att jag inte har signifikans vilket jag borde ha då diagnosen jag undrar över står för 70 % av alla diagnoser (totalt har jag 158 personer) . Vet inte riktigt vad jag gör för fel! Någon som vet?
Vore tacksam för svar!
Victoria
Hej Victoria!
Om du får signifikans eller inte beror inte på hur många som har diagnosen eller ej, utan om de med diagnosen skiljer sig från de utan diagnosen på någon annan variabel, eller om personer med olika egenskaper har diagnosen i olika hög utsträckning.
Så du behöver en ytterligare variabel.
/Anders
Vi har gjort ett t-test för fyra olika frågor där vi på varje har jämfört två olika medelvärden. Isolerat har vi fått fram medelvärde på varje fråga vid båda tidpunkterna. Problemet är att vi vid jämförandet med de olika medelvärdena (en fråga har skala 1-5 medan de 3 andra frågorna har skala 0-4 där 0 kodas som bortfall) Hur ska man göra för att kunna i ett nytt t-test jämföra de olika frågorna när man har olika skalor?
/Emelie
Hej Anders!
Jag har matat in en femgradig ordinalskala i SPSS i ordningen 0 till 4, men hur kodar man svar som ”vet ej” eller ”kan ej ta ställning”? Ska de också få ett nummer eller beskrivas spm missing value?
Hej
Om jag kodar om ordningen på de värdarna som en variabel har utan att ta bort något, kommer då ”cronbach’s alpha” att förändrats? Har nu två variabler som jag får ”cronbach’s alpha” till -0.89 när jag gör en ”reliability analys”, så för att få bort minustecken så kodar jag om variablerna så deras värden har samma uppställning, men efter jag har gjort det så får jag ett nytt värde på 0.471 istället för -0.89 :( HJÄLP
Hej,
Vi har använt oss av Survey & Report när vi skapade vår enkät och nu när vi överfört svaren till SPSS så har flervalsfrågorna hamnat som separata variabler. Hur ändrar man dem till ett svar?
Hej!
Sitter med samma fråga, har du lyckats ändra?
Hej,
I mitt dataset vill jag ersätta missing value med värde 0, dvs i en kolumn med personer utan en viss bakgrund inte har en ”.” utan en ”0”. Jag vill kunna räkna ut andelen personer med viss bakgrund i en grupp, och när värdet är ”.” så blir det missing value istället för andel ”0”. Hur gör jag så att dessa personer inte ska falla bort i beräkningen som missing value?