Guide: Regressionsanalys med dummyvariabler

I detta inlägg ska vi:

• Gå igenom vad en dummyvariabel är
• Skapa dummyvariabler i SPSS
• Kontrollera så att man kodat rätt
• Tolka effekten av dummyvariabler i regressionsanalys

I regressionsanalyser är en förutsättning att alla ingående variabler befinner sig på intervallskalenivå, dvs att avståndet mellan alla steg på variabelns skala är lika långa. Det är dock inte allt av intresse som kan omvandlas till mätbara skalor. Olika typer av kategorier och egenskaper har inte nödvändigtvis någon inneboende rangordning. Om man till exempel intresserar sig för effekten av olika utbildningsinriktningar på politiska attityder kan man inte säga att en naturvetenskaplig utbildning är dubbelt så mycket som en samhällsvetenskaplig utbildning, eller att en bibliotekarieutbildning är 0,5 av en utbildning i biomedicin. De olika utbildningarna är helt enkelt annorlunda (men vissa aspekter av dem kan ju jämföras, till exempel längden).

Men hur ska man då göra om man tror att utbildning har en viktig effekt som man vill ta hänsyn till i sin analys? Jo, man kan använda sig av dummyvariabler. Dummyvariabler är helt enkelt egenskapsvariabler. Man gör då en variabel för varje egenskap man är intresserad av. Variabeln har bara två möjliga värden: 0 och 1. Variabeln har värdet 1 när analysenheten innehar egenskapen man är intresserad av, och 0 annars. Det innebär att det bara finns ett steg på variabeln, vilket gör att den kan betraktas som en intervallskala – alla stegen är ju lika långa! Den går därför bra att använda i regressionsanalyser.

I fallet utbildning kan man till exempel tänka sig att man har en dummyvariabel för samhällsvetenskaplig utbildning. De personer som har en 1:a på dummyvariabeln är samhällsvetare. De som har 0 på variabeln har någon annan inriktning på sin utbildning. Man kan också ha en dummyvariabel för kön. Man väljer då ett kön, till exempel kvinna, och gör en dummyvariabel som mäter egenskapen kvinna. Alla de som har 1 på variabeln är kvinnor, och de som har 0 på variabeln är någonting annat (antagligen män).

Man gör helt enkelt en dummyvariabel för varje egenskap man är intresserad av! Vi kan ta ett exempel från SOM-undersökningen, om hur man bor: I villa/radhus, lägenhet/flerbostadshus eller annat boende. Variabeln har alltså tre värden, som inte kan rangordnas efter någon skala. Vi ska då skapa tre dummyvariabler som har värden enligt tabellen nedan:

Värde på ursprunglig variabel: Värde på dummyvariabel dum_villaradhus Värde på dummyvariabel dum_lgh Värde på dummyvariabel dum_annatboende
Villa/radhus 1 0 0
Lägenhet/flerbostadshus 0 1 0
Annat boende 0 0 1

Vi ser då att om man bor i villa så har man en etta på dummyvariabeln ”dum_villaradhus” och nollor på de två andra variablerna. För att skapa de här variablerna går man i SPSS in på Transform–>Recode into different variables. I rutan ”Numeric variable-> Output variable” letar man upp sin kategoriska variabel, i det här fallet ”F146”. I rutan ”Name” skriver man i namnet på dummyvariabeln, först ”dum_villaradhus”. Tryck sedan på ”Change” och sedan ”Old and new values”.

1. När man kommit till fönstret ”Old and new values” skriver man i rutan ”Old value” in numret på den kategori man gör en dummyvariabel för. I det här fallet har ”Villa/Radhus” kodningen 1, och vi skriver därför i ”1” (utan citationstecken). I rutan ”New value” skriver vi ”1” och trycker på add.

2. Därefter trycker vi i rutan ”Old value” i knappen ”System-missing” och i rutan ”New value” i ”System-missing” och trycker på add.

3. Därefter trycker vi i rutan ”Old values” i ”All other values” och i rutan ”New values” skriver vi i ”0” och trycker på add. Det ska nu se ut som i bild 1.

Bild 1. Hur man kodar en dummyvariabel.

Därefter trycker man på continue, och OK. Vi har nu gjort en av tre dummyvariabler. Upprepa proceduren för varje egenskap. När man gjort sina dummyvariabler kan man kolla så att det blev rätt genom att ta fram en korstabell mellan den ursprungliga variabeln och dummyvariablerna. Man går då in på Analyze -> Descriptive statistics -> Crosstabs. I rutan rows klickar man i den ursprungliga variabeln, och i rutan columns klickar man i sina dummyvariabler. Har man gjort rätt kommer det se ut som i bild 2 – de som har värdet Villa/Radhus har värdet 1 på dum_villaradhus och 0 på de andra dummyvariablerna, osv.

Bild 2. Hur man kontrollerar att man kodade rätt.

Vi har nu tre variabler som mäter varsin boendeegenskap. Vi kan nu lägga in dem i en regression. Kanske är det så att boendeform påverkar hur ofta man umgås med sina grannar? Som beroende variabel har vi en enkätfråga om hur ofta man umgås med sina grannar. Ett högre värde innebär att man umgås med sina grannar oftare.

När man använder dummyvariabler i regressionsanalyser gör man i själva verket gruppjämförelser. Det innebär att man måste ha en referensgrupp, som man jämför de andra grupperna mot. Referensgruppens dummyvariabel lägger man inte in i regressionen. I det här exemplet väljer vi att ha ”Annat boende” som referensgrupp. Vi gör sedan en vanlig linjär regression med hur ofta man umgås med sina grannar som bereoende variabel och så lägger vi in dummyvariablerna dum_villaradhus och dum_lgh som oberoende variabler. Vi får då ut output som ser ut som i bild 3.

Bild 3. Output från regression med dummyvariabler.

Vi har två koefficienter för de oberoende variablerna, och ett intercept. När man inte har några andra oberoende variabler än dummyvariabler för en kategori med i modellen kan vi tolka interceptet som medelvärdet för referensgruppen. Men detta gäller alltså bara så länge vi inte har med några andra oberoende variabler.

Personer som bor i ”Annat boende” (referensgruppen) har alltså medelvärdet 4,431 på den beroende variabeln. Koefficienterna för dummyvariablerna visar nu skillnaden i medelvärde jämfört med referensgruppen, dvs effekten av att inneha en viss egenskap. Effekten av ”Villa/radhus” jämfört med ”Annat boende” är -,241. Personer som bor i villa eller radhus träffar alltså sina grannar något mer sällan än de som bor i annat boende, men effekten är inte signifikant, som vi ser i kolumnen ”Sig.”, eftersom signifikansvärdet är större än 0.050.

Däremot hittar vi en signifikant effekt av att bo i lägenhet. Effekten är -1,210. Personer som bor i lägenhet träffar alltså sina grannar mer sällan än de som bor i annat boende, och effekten är signifikant.
Men nu jämför vi alltså personer som bor i villa/radhus med personer som bor i annat boende, och personer som bor i lägenhet med personer som bor i annat boende. Om vi vill jämföra personer som bor i lägenhet med personer som bor i villa/radhus måste vi lämna en av de här kategorierna som referensgrupp, och istället inkludera variabeln dum_annatboende i analysen.

Koefficienter för dummyvariabler ska alltså tolkas som effekten av att inneha en egenskap jämfört med referensgruppen.

35 reaktioner till “Guide: Regressionsanalys med dummyvariabler

  1. Hej! Skitbra sida, tack för mycket hjälp! Jag har gjort en regressionsanalys som är tänkt att mäta vilken effekt olika variabler har på avtal om mottagande av ensamkommande barn. Till det har jag gjort dummyvariabler av politisk majoritet i kommunerna. Politisk majoritet är indelat i tre kategorier, höger, vänster och oklar. Jag har då gjort så att jag kodade höger och vänster som 0, och oklar som 1 i en, och vidare höger och oklar som 0 och vänster som 1 i en, och i den sista har jag vänster och oklar som 0 och höger som 1. Sedan har jag kört dessa (separat) i tre regressionsanalyser som i övrigt är likadana (samma oberoende och samma beroende). Men resultatet är olika mellan de tre olika resultaten jag får. Till exempel får variabeln antal sverigedemokrater i kommunfullmäktige ett statistiskt signifikant resultat, men enbart i resultaten från analysen där jag haft dummyvariabeln vänster och oklar = 0 och högermajoritet = 1. Kan du hjälpa mig med hur jag kan tolka det? Jag är helt lost…

    Tack!
    Åsa

    1. Hej!
      Du ska ha två av dummyvariablerna med, till exempel den med vänster som 1, och den med höger som 1. Då kan du tolka de variablerna som skillnaden mellan vänstermajoritet och oklart, respektive högermajoritet och oklart.

      Det kommer vara det bästa resultatet. När du bara har med en av variablerna åt gången kontrollerar du för lite olika saker, och det är därför de andra variablerna ändrar på sig.

      /Anders

  2. Tack!!
    En kort fråga till bara,
    Vad kan jag isåfall säga om skillnaden mellan höger- och vänstermajoritet?

    1. Ett alternativ är att räkna ut den ”för hand” så att säga. Om skillnaden mellan ”höger” och ”oklar” är +1, och skillnaden mellan ”vänster” och ”oklar” är -1, så måste skillnaden mellan ”höger” och ”vänster” vara +2. Det är inte konstigare än så. Om effekten är densamma för både ”höger” och ”vänster” jämfört med oklar, till exempel +1, så finns det ingen skillnad dem emellan.

      Men då kan du ju inte se om skillnaden är signifikant. För att undersöka det gör du istället så att du byter ut en av dummyvariablerna. Du kan till exempel byta ut ”vänster”-dummyn mot ”oklar”-dummyn. Då kommer ”höger”-dummyn visa skillnaden mellan vänster och höger, och ”oklar”-dummyn visa skillnaden mellan oklar och vänster.

      /Anders

  3. Rådet att göra om alla kategoriska variabler till en uppsättning dummy-variabler är onödigt krångligt. Varför inte använda multiple regression m h a General Linear Model univariate. I den proceduren kan man använda såväl kvantitativa variabler (covariates) som kategorivariabler som x-variabler (factors)….

    1. Hej Anonym!
      Tack för tipset. Jag vet dock inte om jag tycker att det blir enklare, om man inte är familjär med General Linear Model-analysen. Fördelen som jag ser det med att göra dummyvariabler är att man har full kontroll på processen (vilket möjligen hjälper förståelsen).

      Sen innebär väl användandet av General Linear Model att estimeringstekniken blir Maximum Likelihood och inte Ordinary Least Squares, vilket ju är en skillnad.

      /Anders

      1. Givet att residualerna är normalfördelade är ML-skattningen just OLS. Fördelen med GLM-univariate är att du får ett enda p-värde för faktorn. Om du delar upp en faktor i flera dummy blir konsekvensen ett p-värde för varje dummy….

  4. Hjälp! Jag har i uppgift att göra en logistisk regression utifrån en binär beroende variabel, nästa steg är nu att skapa oberoende variabler. Kön har jag kodat 0/1, men hur gör man med ålder, utbildning? Är ”yngre, ”medelålders”, ”äldre”, ”Låg utbildning”, ”medel utbildning” och ”hög utbildning” lämpliga indelningar där t ex ”yngre” och ”låg utbildning” utgör referenskategorier och de övriga sk dummies? Hur och var anger man isåfall vilka som är dummies och vilka som är referenskategorier?

    Tacksam för svar…

    1. Hej Anna!
      Det låter väl rimligt? VIlka kategorier du använder dig av bestäms av din teoretiska frågeställning.
      Du anger själv vilken som är referenskategori genom att utelämna den variabeln från regressionsanalysen. Så om du har dummyvariabler för ”Yngre”, ”Medelålders” och ”Äldre”, och sedan gör en analys med ”Medelålders” och ”Äldre” som oberoende variabler så blir ”Yngre” referenskategori.

      /Anders

    2. Återigen är det en omväg att skapa dummy-variabler. Proceduren för logistisk regression i spss kan hantera kategoriska förklaringsvariabler (oavsett antal kategorier). I proceduren för logistisk regression behöver man bara klicka på knappen Categorical och ange vilka variabler som är kategoriska. Man kan välja första eller sista gruppen som referens. Fördelen med denna ansats är att man får ett p-värde för variabeln (inklusive alla kategorier) och inte ett p-värde per dummy-variabel.

  5. Hejsan, på tal om dummyvariabler. Jag är mitt uppe i en studie där jag mha av SPSS skall undersöka huruvida det finns ett samband mellan ett redovisningsval och ett annat (krasst sammanfattat). En variabel kmr alltså vara den beroende och den andra oberoende. Jag gör undersökningen på åren 2005-2009, där det år 2007 infördes en speciell reglering som jag vill fånga upp mha en dummy. Jag skall alltså koda materialet så att åren 2005-2006 = 0 och 2007-2009 = 1. Hur gör jag? Jag har ca 80 st observationer per år. I nuläget har jag endast lagt in mina två poster i variable view och sedan lagt in data i data view.. jag har alltså två långa spalter med data som går från 2005, 2006, 2007, 2008, 2009, 2005, 2006, 2007.. osv osv.

    Knöligt! Hoppas du/ni kan hjälpa mig?

    Hälsn. Johanna

      1. Jag har nu infört ytterligare en variabel ”år” från 2005-2009, även kodat om åren till 0 resp 1, so far so good. MEN, nu till själva körningen. Hur gör jag? Analyze -> regression -> linear. För in min beroende variabel samt oberoende, vilken variabel av ”År” resp ”år_kodad” använder jag mer som beroende? Svaret jag får ut visar endast den variabeln.. dvs jag kan inte längre se om det är någon skillnad mellan åren? El före resp. efter? Eller, vilket värde påvisar detta? Dessutom har jag en signifikansnivå på variablerna som är 0,381 resp 0,452 – detta innebär väl att den oberoende variabeln ej är signifikant?

        Hälsn. Johanna

      2. Hej igen!
        Du använder variabeln som bara ä 0 och 1 som oberoende. Beroende variabel är ju den som du vill förklara, inte år.
        Koefficienten av dummyvariabeln visar skillnaden mellan tidsperioderna. Är signifikansen över 0,050 så är inte skillnaden signifikant på 95-procentsnivån.

        /Anders

      3. Tack!
        Jag använder nu endast år_kodad. Får fram ett Beta för år_kodad på -0,023 och ett t-värde på -0,451 och Sig. på 0,653. Inte svaret man önskar väl? Vad betyder detta egentligen? Är körningen inget att ha?
        Vidare får jag fram ett Beta på min andra oberoende på 0,334, t-värde på 6,726 och Sig på 0,000 – betydelse på detta?

        Tacksam för hjälp.
        Hälsn. Johanna

      4. Tack igen!

        En sista fråga. Har fått uppgift om att jag skall lägga in ett referensår.. hur gör jag detta? Min tidsintervall är åren 2005-2009 där det år 2007 infördes ny reglering.. varför jag antar att 2007 också är ett passande referensår? Hittar inget om detta skrivet tidigare här på akuten.

        /Johanna

      5. Referensår blir det eller de år som utelämnas. Så om du har en dummyvariabel för 2007-2009 är 2005 och 2006 referensår. Om du vill ha 2007 som referensår så gör du dummyvariabler för de andra åren, men inte 2007.

        /Anders

  6. Hej!

    Jag har en fråga angående linjär regressionsanalys, när man lägger till nya kontrollvariabler ska väl inte de tidigare modellerna förändras. Jag gör en regressionsanalys med ett index som beroende variabel. När jag i modell 7 lägger till en dummyvariabel som kallas heltid så förändras resultaten i modell 1. Ska resultat i tidigare modeller förändras eller är det något fel på den sista variabeln. Vad kan jag ha gjort för fel?

    Tacksam för svar!

    1. Hej Malin!
      Nej, det stämmer, de ska inte förändras om man gör separata regressioner.
      Men jag gissar att du använder dig av ”Block”-funktionen när du gör din analys. Då tar SPSS bara med de analysenheter som har värden på alla variabler som ingår i något av blocken.
      När du då lägger till ett nytt block kanske det faller ifrån många analysenheter, vilket gör att resultaten i de tidigare modellerna förändras.

      /Anders

  7. Hej!

    I din guide om regressionsanalys skriver du att kontrollvariabeln “kontrollerar bort” effekter som kan påverka det egentliga sambandet av den beroende variabeln. Jag undrar om detta fungerar på samma sätt när dummyvariabler används?

    Exempel:
    Beroende variabel: inkomst kronor.
    Obereonde variabel utbildning (dummyvariabler hög, mellan, låg med en av dessa tre som referens).

    Kontrollvariabel: kön.

    Låt oss anta att jag först kör en regressionanalys på inkomst vs utbildning och får positivt samband mellan utbildningsnivå och högre inkomst.

    När jag sedan för in variabeln kön i samma analys så får jag positivt samband mellan män och högre inkomst.

    Innebär detta resultat att sambandet utbildning och inkomst har kontrollerats för kön? Med andra ord, kan jag anta att inget skensamband finns att det skulle kunna vara så att utbildningsnivå är skevt fördelat mellan könen?

    Om resultaten är kontrollerade för, då avläser jag väl sambanden på följande vis?

    Låt oss anta att högt utbildade har 5 000 kronor högre månadslön än referensgruppen lågt utbildade och män har 4 000 kr högre inkomst än kvinnor. Betyder detta att män tjänar 4 000 kronor mer än kvinnor i varje utbildningsnivå? En högt utbildad man förväntas alltså ha 9 000 kr högre månadslön än en lågt utbildad kvinna…

    Tänker jag i rätt banor eller är jag inne på fel spår?

    Jag undrar även om binära variabler, exempelvis kön (man/kvinna) måste kodas om till dummyvariabel, eller om de går att lägga in i regressionanalysen som de är, eftersom de redan är binära som en dummyvariabel.

    /Hälsningar Hans

  8. Hej Anders

    Jag skriver min C uppsats och har mycket trubbel. Jag ska ta reda på vad som påverkar summan av kreditskuld hos individer i amerika- mina kontroll variabler(independent variables) är:

    – utbildning(highest level of education- highschool or lower,college, bachelor, phd o.s.v),

    -inkomst (en intervall som inte är kontinuerlig 0-1000 och 1000-5000 osv),

    -Ålder (som jag kodat om från året då undersökningen gjordes)

    -ras (där man kan välja på 9 raser)

    -gender (man el kvinna)

    Svårt för dig att sätta dig in kanske men vilka bör jag omkoda? Vilka bör göras om till dummys?

    Efter det så är det bara stoppa in dem i multipel linjär regression och följa din redovisningsmall för att presentera resultaten?

  9. Hej!
    Kan ni förklara skillnaden mellan regressionsanalys med hjälp av dummys och ett vanligt ANOVA-test som också visar på skillnader i medelvärden inom gruppen i förhållande till den beroende variabeln. När jag testade fick jag exakt samma resultat.

  10. Jag har en fråga jag försöker lösa:i en regressions analys vill en student ha variablen födelseort som prediktor variabel. kategori variabeln har ursprunglingen kodats på följande sätt: europa=1 , Afrika=2 Mellanöstern=3 Asien=4 Nordamerika=5 Sydamerika 6. Koda om variablern med hjälp av dummy kodning och ha europa som referens kategori,
    Hur gör man ?!

  11. Hej! Jag har en fråga angående dummykodning: i en enkätundersökning har jag noterat deltagarnas yrken (läkare, sjuksköterska, undersköterska, biträde) och jag vill lägga in variabeln yrke som en prediktor (oberoende) variabel i en regressionsanalys. Då ska jag dummy-koda variabeln yrke så som det görs i en spss-datafil och ha läkare som referenskategori. Hur gör jag??
    Tacksam för svar// Sargul

  12. Hej!

    Jag har en fråga om det här med att utelämna en dummy för att skapa en referenskategori. Om man bara har en dummy med två kategorier, tex 1 för man och 0 för kvinna, kan man inte köra rakt av på det då? Måste man koda två separata variabler, en för vardera? Vad blir effekten av att bara köra med en variabel? Blir koefficienter mm missvisande?

    Tack på förhand!
    Pontus

  13. Hej! Om man har ordinaldata i form av skattning med 5-7 svarsaternativ räcker det då att göra en multivariat regression med kodade steg 1-5 resp 1-7 och låta spss göra en regressionsnalys av detta? Eller måste man då skalstegen sanna avstånd ej går att bedöma gör analysen med dummies(blir så väldigt många dummies) eller finns det något annat sätt att lösa det på?

Lämna ett svar till Hans Avbryt svar