Guide: Regressionsanalys med interaktionseffekter

I det här (långa, men intressanta) inlägget ska vi:

  • Skapa en interaktionsvariabel
  • Göra en regressionsanalys med en interaktionsvariabel.
  • Tolka resultaten.
  • Diskutera fördelarna med att använda sig av interaktionsvariabler istället för att göra separata analyser.

När man gör en regressionsanalys undersöker man effekten av en variabel på en annan variabel. Ibland finns det dock anledning att misstänka att en variabels effekt varierar mellan olika grupper. Vi kan till exempel misstänka att högre utbildning leder till ett bättre betalt jobb. Men effekten är kanske olika för kvinnor och män – utbildning ger ett större hopp i lönen för män än för kvinnor. Vi säger då att det handlar om en interaktionseffekt. Kön interagerar i det här fallet med utbildning. Man kan också säga att kön modifierar effekten av utbildning på lönen. I det här inlägget ska vi gå igenom hur man gör en regressionsanalys med interaktionseffekter i SPSS.

Vi vill undersöka om ett lands nivå av BNP påverkar hur stor andel av landets BNP som utgörs av handel med andra länder. Vi tror att länder med högre BNP också har mer handel (som andel av BNP) än andra länder. Vårt första samband är alltså illustrerat i bild 1:

Bild 1: Den teoretiska modellen

Men vi tror också att landets politiska system spelar roll. Kanske är det så att demokratier är mer benägna att handla med andra länder än diktaturer? Då handlar det om en direkt effekt av politiskt system på handel. Men vi tror kanske också att det finns en interaktionseffekt. Vi tror att BNP spelar olika roll för handel i demokratier och diktaturer.

En teori skulle kunna vara att demokratier med hög BNP som producerar mycket varor säljer varorna till andra länder. I diktaturer som producerar mycket tar diktatorn istället allt och lägger på hög i sitt palats, till exempel. Då är effekten av BNP på handel olika i de två sorternas system. Vi får då en modell som ser ut om i bild 2:

Bild 2: Den utökade teoretiska modellen.

BNP har fortfarande en effekt på handel, och det har också politiskt system, men politiskt system har också en effekt på effekten av bnp på handel.

För att pröva den här modellen ska vi göra en regressionsanalys med en interaktionsvariabel. Vi använder data från QoG-datamängden, som finns i en Time-Series och en Cross-Section-version. Time-Seriesversionen innehåller data från en mängd länder, där varje land har data för flera år. I Cross-sectionversionen finns det bara data för varje land vid en tidpunkt. Eftersom det är betydligt krångligare att analysera länder över tid använder vi oss av cross-sectionversionen. Data kan hämtas hem gratis från QoG-institutets hemsida.

Vi behöver tre variabler: Den beroende variabeln (handel som andel av BNP), samt de oberoende variablerna BNP per capita och och typ av politiskt system.

Handel som andel av BNP: ea_tr
BNP per capita: gle_gdp
Typ av politiskt system: chga_regime

Typ av politiskt system är en dummy-variabel som har två värden: 0 (Demokrati) och 1 (Diktatur). Etersom 1 betyder ”Diktatur” kommer alla regressionsmodeller visa effekten av att gå från demokrati till diktatur. Därför döper vi om variabeln till ”dum_diktatur” – det kommer underlätta tolkningarna sen. Om vi tittar på fördelningen av BNP-variabeln i ett så kallat histogram ser vi att den är väldigt snedfördelad. Vi gör därför en ny variabel som är den naturliga logaritmen av BNP per capita. Man kan läsa hur man gör det i ett tidigare inlägg.

Först kan vi göra en bivariat regression för att se om logaritmerad BNP har någon effekt på handel. Vi får då ut en tabell som ser ut som i bild 3. Vi ser där vid punkt 1 att det finns en signifikant positiv effekt av logaritmerad BNP på handel. Hur stor är effekten? Jo, om den oberoende variabeln ökar med ett steg ökar handeln som procent av BNP med 12,241 procent (punkt 2). Den oberoende variabeln förklarar 8,9 procent av variansen i den beroende variabeln, vilket vi ser vid punkt 3.

Bild 3: Bivariat regression – effekten av logaritmerad BNP per capita på handel som andel av BNP.

Den bivariata regressionen kan illustreras genom en scatterplot med regressionslinjen utritad. Att linjen lutar snett uppåt visar att regressionskoefficienten är positiv. I bilden har jag ritat ut att ett steg till höger ger en ökning på 12,241. Vad betyder då det här i mer verkliga termer? Jo, det finurliga med den naturliga logaritmen är att vi kan tolka det som procentuella ökningar. Om den oberoende variabeln är log-transformerad kan vi tolka regressionskoefficienten som 100 gånger den ökning en procents ökning i den oberoende variabeln skulle ge. Alltså, vi delar regressionskoefficienten med 100 och får fram vad en procents ökad BNP skulle ge för ökning i handel. I det här fallet ger det att om ett lands BNP ökar med en procent så ökar handeln som andel av BNP med 0,12241 procentenheter.

Bild 4: Scatterplot som illustrerar den bivariata regressionen.

Nu lägger vi in politiskt system i analysen (dum_diktatur) också. Vi gör en likadan regression som alldeles nyss, men har också med politiskt system i analysen. Vi får då ut en tabell som ser ut som i bild 5.

Bild 5: Multivariat regression – effekten av logaritmerad BNP per capita och politiskt system på handel som andel av BNP.

Vi ser att BNP fortfarande har en positiv effekt, även under kontroll för typ av politiskt system (0 = Demokrati, 1=Diktatur). Vi ser också att i diktaturer utgör handeln en större andel av BNP, även om effekten bara är signifikant med 90 procents säkerhet. Det går inte att rita ut det här i en scatterplot automatiskt, men jag ska ändå visa hur vi ska tolka det här genom att rita ut regressionslinjerna i en scatterplot – se bild 6.

Bild 6: Effekt av logaritmerad BNP och politiskt system i en scatterplot.

Vi ser här två parallella regressionslinjer. Lutningen bestäms av regressionskoefficienten för ln_bnp – ett steg åt höger ger en ökning på 14,226. Men startpunkten bestäms nu också av ”dum_diktatur” – effekten av BNP är densamma i diktaturer och demokratier, men diktaturer börjar på en högre punkt, vilket gör att hela linjen ligger 13,680 poäng ovanför demokratiernas linje. Men det vi menar med en interaktionseffekt är att lutningen på linjen kan vara olika i demokratier och diktaturer.

För att åstadkomma detta behöver vi skapa en interaktionsterm. Vi går då in på ”Transform–>Compute variable”. Vi skriver in namnet på den nya variabeln, som är inter_lnbnp_x_diktatur. Det visar att det är en interaktionsterm, och sen är det namnet på de två variablerna som ingår i interaktionen, med en multiplikationssymbol mellan dem. Multiplikationssymbolen är med för att det är så vi skapar interaktionstermen – vi multiplicerar de båda variablerna med varandra. I rutan ”numeric expression” klickar vi in de två variablerna ln_bnp och dum_diktatur, och skriver ett multiplikationstecken emellan. Det ska se ut som i bild 7. Klicka därefter på OK.

Bild 7. Hur man skapar en interaktionsvariabel.

Nu ska vi genomföra själva analysen. Det är helt enkelt en regressionsanalys med de två oberoende variablerna, SAMT interaktionstermen. Det är mycket viktigt att man inte tar bort de två ursprungliga oberoende variablerna – det skulle förstöra resultaten helt. Det ska se ut som i bild 8. Tryck på OK. Nu får vi ut den intressanta tabellen, som kan beskådas i bild 9.

Bild 8: Hur man gör en regressionsananalys med en interaktionsvariabel.

Bild 9: Resultatet av reressionsanalysen med en interaktionsvariabel.

Tolkning av resultaten

Man kan dock inte tolka resultaten som den andra tabellen ”plus en interaktionseffekt” – när vi lägger till interaktionseffekten påverkas också de andra variablerna. För att förstå hur man ska tolka tabellen kan det vara lämpligt att tänka sig två länder, en demokrati och en diktatur, med samma nivå på logaritmerad BNP, säg 10. Att de har olika värden på variabeln dum_diktatur innebär också att de får olika värden på interaktionstermen, eftersom den helt enkelt är dum_diktatur*ln_bnp.

Våra två länder har alltså följande värden:

Demokratilandia:
ln_bnp:  10
dum_diktatur: 0
inter_lnbnp_x_diktatur: 0

Diktaturistan:
ln_bnp:  10
dum_diktatur: 1
inter_lnbnp_x_diktatur: 10

Därefter kan vi räkna ut ett predicerat värde för varje land. Vi tar då värdet på varje variabel multiplicerat med koefficienten för den variabeln och adderar ihop alltihopa, plus interceptet. Alltså: Beroende variabel = (koefficient för oberoende variabel)* (värde på den oberoende variabeln)

Demokratilandias värde blir alltså:

34,599 + 5,497*10 + -172,402*0 + 22,275*0 = 89,569

Och Diktaturistans värde blir:

34,599 + 5,497*10 + -172,402*1 + 22,275*10 = 139,917

34,599 är interceptet. 5,497 är koefficienten för ln_bnp. 10 är värdet på ln_bnp. -172,402 är koefficienten för dum_diktatur. Demokratilandia har 0 i värde på dum_diktatur, och därför blir det -172,402*0 = 0, medan Diktaturistan har 1 i värde, så det blir -172,402*1 = -172,402. På interaktionstermen har Demokratilandia 0, och får därför inget tillskott, medan Diktaturistan har 10, och får 22,275*10 = 222,75 i tillskott där.

Kontentan är att vi kan tolka koefficienten av ln_bnp (5,497) som effekten av ln_bnp för demokratier. Effekten av ln_bnp för diktaturer är istället koefficienten för ln_bnp PLUS effekten av inter_lnbnp_x_diktatur, alltså 27,772! Alla demokratier kommer ha 0 i värde på interaktionstermen, och får därför inget extra tillskott därifrån, vilket diktaturer får. Effekten av BNP på handel är alltså ungefär 5 gånger så stor i diktaturer som i demokratier. Faktum är att effekten av BNP i demokratier inte ens är signifikant: signifikansen är bara ,145, och vi vill att den ska vara under ,050.

Man kan illustrera interaktionen genom en scatterplot, som i bild 10. Punkternas placering är desamma som i bild 4, men de har nu två olika färger. Gröna punkter är diktaturer, och blåa punkter är demokratier. En linje för demokratier och en för diktaturer har ritats ut. De börjar på olika ställen, och har också olika lutning. Den gröna linjens lutning är 27,722, och den blåa linjens lutning är 5,497 – tämligen platt. Koefficienten för demokratier (5,497) var ju inte signifikant – det betyder att vi inte kan säga att koefficienten inte är 0, dvs, vi kan inte vara säkra på att linjen inte är helt platt.

Bild 10: Interaktionseffekten illustrerad i en scatterplot.

I tabellerna i bild 9 såg vi att det justerade R2-värdet för hela regressionen var 0,163. I scatterploten visas R2-värdet för demokratier och diktaturer för sig. Det blir då 0,023 för demokratier (väldigt liten förklarad varians) medan det blir 0,303 för diktaturer (stor förklarad varians). BNP hänger alltså samman med handal i mycket högre utsträckning i diktaturer än i demokratier.

Det vi har gjort är egentligen samma sak som att vi gjort en bivariat regression mellan handel och BNP, fast i alla demokratier för sig, och i alla diktaturer för sig. Koefficienterna blir desamma! I Bild 11 kan man se tabellen för en bivariat regression mellan handel och ln_bnp, först i demokratier och sedan i diktaturer.

Bild 11: Separata bivariata regressioner, först bland demokratier och sedan bland diktaturer.

För demokratier ser vi att interceptet är 34,599, och linjens lutning är 5,497, samma som i bild 9. I diktaturer är interceptet -137,803, vilket är samma sak som 34,599 – 172,402 = -137,803 dvs i bild 9, interceptet + effekten av diktaturer. Linjes lutning är 27,771: samma sak där, i bild 9, effekten för demokratier + interaktionseffekten.

Vad är då fördelen med att göra det i en regression istället för i två separata? Jo, vi kan se om skillnaden mellan effekterna är signifikant! Om till exempel effekten för demokratier hade blivit 5,500, och effekten för diktaturer hade blivit 6,200 så hade vi om vi gjort två separata regressioner inte vart säkra på om det var en verklig skillnad eller om det bara var slump. När vi gör interaktionsanalysen i en regression med en interaktionsterm kan vi se om skillnaden är signifikant, vilket vi i bild 9 ser genom att inter_lnbnp_x_diktatur är signifikant.

När man gör regressionsanalyser med interaktionseffekter gäller det alltså att hålla tungan rätt i mun, men det går att få fram teoretiskt väldigt spännande resultat. En fantastisk artikel för den som vill läsa mer är ”Understanding interaction models: Improving empirical analyses” av Thomas Brambor, William Roberts Clark & Matt Golder (2006), publicerad i tidskriften Political Analysis. De går där igenom vanliga fel vid interaktionsanalyser, varför det blir fel, och hur man ska undvika dem.

6 reaktioner till “Guide: Regressionsanalys med interaktionseffekter

  1. Hej!

    Jag har en fråga. Om jag har fått ett resultat från ett helt sampel som jag har undersökt. Sedan lägger jag till en interaktionsvariabel och en dummyvariabel för vissa utvalda observationer som jag vill undersöka. Jag tror att de utvalda har en motsatt samband, hos den variabel som jag gångrar ihop med dummyvariabel till interaktionsvariabeln, än när hela samplet körs utan interaktionsvariabeln och dummyvariabel. Hur gör jag då för att kolla upp ifall deras samband är det motsatta?
    /Anders

    1. Hej!
      Du ska köra på hela samplet fast med interaktionsvariabel och dummyvariabel för gruppen du tror skiljer sig. Du har alltså tre variabler:

      oberende
      dummy
      oberoende_x_dummy

      Effekten för den ”vanliga” gruppen är då effekten av variabeln ”oberoende”. Effekten för den andra gruppen är effekten av ”oberoende” + ”oberoende_x_dummy”. Säg att b-koefficienterna ser ut såhär:

      oberoende: 1
      dummy: 3
      oberoende_x_dummy: -2
      intercept: 0

      Det innebär att effekten av den oberoende variabeln är 1 för den ”vanliga” gruppen, och 1 + -2 för den speciella gruppen, alltså -1. Sen visar dummyvariabeln att den speciella gruppen så att säga ”startar” på en högre nivå än den vanliga gruppen. När den oberoende variabeln är 0 befinner sig den ”vanliga” gruppen på 0 (som interceptet visar) medan den speciella gruppen befinner sig på 0 + 3 (interceptet plus dummyvariabeln).

      /Anders

  2. Hej!

    Jag har gjort en enkät där jag mäter anställningsformens påverkan på psykiskt välbefinnande. Jag har också med de antaget modererande variablerna självkänsla och subjektivt jobberoende. Anställningsformen kan anta tre värden (heltid deltid timvikarie). Min hypotes är alltså att för personer med lågt skattad SJB (subjektivt jobberoende) så spelar anställningsformen mindre roll för psykiskt välbefinnande än för personer med högt skattad SJB. Samma sak för SK (självkänsla) fast tvärtom, dvs att för personer med hög SK så spelar anställningsformen mindre roll för psykiskt välbefinnande än för personer med låg SK.

    Den första regressionsanalysen jag gör är ju för huvudeffekten av AF (anställningsform) och VM (välmående). Går det bra att göra en regressionsanalys här trots att den oberoende variabeln är på ordinalskalenivå och bara kan anta tre värden? Förutsättningen är väl i så fall att jag teoretiskt motiverar att de tre alternativen kan rangordnas? Kodar jag dem i så fall som 1 2 3 i analysen eller?

    När jag sedan ska kolla interaktionseffekterna så antar jag att jag ska göra en regressionsanalys av AF – VM och sedan föra in SJB (subjektivt jobberoende) som en interaktionsvariabel (SJB*AF)? Spontant så känns det som att det skulle vara lättare att göra om AF till en dummyvariabel där deltid och timvikarie skulle få motsvara ”osäker anställningsform” och heltid ”trygg anställningsform” men det kanske inte finns någon statistisk anledning till detta eller?

    För SK (självkänsla) gör jag om samma procedur.

    Både SK och SJB är mätta med ett antal femgradiga frågor i likertformat vilket gör dem betydligt lättare att hantera i analysen än just AF.

    Rörig fråga minst sagt men jag känner mig lite vilsen.

    En sista fråga. Om jag har ett antal frågor som tillsammans ska mäta SK, hur gör jag då om dem till ett gemensamt värde för SK? Är det medelvärdet av svaren på dessa frågor jag använder? Frågorna har i tidigare studier reliabilitetstestats så jag antar att jag inte behöver undersöka dem närmre? Samma sak gäller SJB där fyra frågor tillsammans mäter graden av SJB.

    Tack för en fantastisk sida!

    /Kristoffer

  3. Hej!
    Jag har gjort en undersökning där vi kollar på diskonteringsräntor för börsnoterade bolag. Vi har en hypotes om att mindre företag (small cap) skulle följa större företag (large cap) i deras val av diskonteringsräntor.
    Jag har då valet av diskonteringsräntor kategoriserade över år. Så jag vill se hur de följer varandra över tid. Jag vet inte hur jag ska göra denna analys för att få med hur de följer varandra med avseende på tid?

    Tack så hemskt mycket!

    /Ellinore

  4. Hej! Tack för en bra blogg!
    Jag ska snart göra detta som står i detta inlägg men först måste jag reversera variablerna i några av mina enkätfrågor och har gjort detta via transform – compute som du visat i ett annat inlägg. Jag undrar om det finns något sätt där jag kan kontrollera om jag gjort detta rätt innan jag börjar med regressionen?

Lämna en kommentar