Vi kommer kanske ha driftstörningar under några dagar pga nätverksuppdateringar.
(Denna sida är planerad för översyn och vidareutveckling.)
(antal aktiva besökare uppdateras automatiskt var 4:e minut)
Citera denna sida som:
-
Vanlig linjär regression
-
Först publiserad:
på:
Senast updaterad:
Om du vill informera om att denna webbsida finns...
Att läsa denna sida ger dig en förståelse för vad vanlig (klassisk) linjär regression är och hur man gör analysen i statistikprogrammet SPSS (det görs på liknande sätt i andra statistikprogram).
Du förstår denna webbsida bäst om du först har läst sidorna Samvariation och Korrelation och regression.
Linjär regression innebär att utifrån observationer ta fram den räta linjens ekvation som bäst beskriver observationerna. Det finns många olika sorters linjära regressionsmodeller som alla använder den räta linjens ekvation (viktigt att titta på föregående länk innan du läser vidare).
I linjär regression där den beroende variabeln mäts med intervall- eller kvotskalan kallas det på svenska för “vanlig linjär regression” (=klassisk linjär regression), och på engelska för “standard linear regression”. Denna webbsida handlar enbart om “vanlig linjär regression”.
Olika sorters vanlig linjär regression
Det finns olika sorters “vanlig linjär regression”. Det kallas också ofta bara “linjär regression” och på engelska “standard linear regression”. Vanlig linjär regression kommer i några olika varianter:
| En beroende (Y) och en oberoende (X) variabel | Mer än en oberoende variabel (flera X) | Mer än en beroende variabel (flera Y) | Mer än en beroende variabel samt dessutom mer än en oberoende variabel (flera Y och flera X) | |
|---|---|---|---|---|
| Svenska benämningar | Enkel vanlig regression = Enkel linjär regression | Multivariable (vanlig) linjär regression = Multipel linjär regression = Justerad linjär regression | Multivariat (vanlig) linjär regression | Multivariat (vanlig) linjär regression* |
| Engelska benämningar | Simple regression = Simple standard linear regression = Unadjusted standard linear regression (= Bivariate standard linear regression) | Multivariable (standard) linear regression = Multiple (standard) linear regression = Adjusted (standard) linear regression | Multivariate (standard) linear regression | Multivariate (standard) linear regression* |
- I konsekvensens namn borde detta kallas “Multivariat multivariabel (vanlig) linjär regression” men i praktiken utelämnar man “multivariabel” när man har med “multivariat”.
Den bakomliggande matematiken vid linjär regression förklaras enkelt och översiktligt på en annan webbsida. Det är viktigt att du har satt dig in i detta innan du läser vidare.
Enkel eller multipel linjär regression
En “enkel vanlig linjär regression” har bara en beroende variabel (Y) och en oberoende variabel (x). Det är alltså räta linjens ekvation och den kan matematiskt beskrivas på olika sätt (som alla betyder samma sak):
Y = a + bx
Y = b0 + b1x
Y = b + mx
Y = kx + m
Titta på denna video av “Mattecentrum” som introducerar tanken bakom “enkelg linjär regression”:
Ibland kan inte variationer i den beroende variabeln (y) beskrivas på ett bra sätt med variation i enbart en enda oberoende variabel (ett x). Då kan det vara lämpligt att titta på en multipel linjär regression som innehåller flera oberoende variabler (flera x). Den kan matematiskt beskrivas som:
Y = a + b1x1 + b2x2 + b3x3 + … …bnxn
I formeln ovan har vi ett intercept (a) och flera regressionskoefficienter (flera olika b). Den enkla linjära regressionen kan enkelt åskådliggöras med ett scatterdiagram (figur 1 på sidan om korrelation och regression). En multipel linjär regression med två oberoende variabler kan åskådliggöras med ett tredimensionellt (svårförståeligt) scatterdiagram. Regressioner med tre eller fler oberoende variabler kan inte åskådliggöras i diagramform.
Hur gör man i praktiken?
Förutsättningar som dina observationer måste uppfylla
- Krav på själva variablerna (Datatyp):
Den beroende variabeln (y): Måste vara kontinuerlig (numerisk). Det betyder att den ska kunna mätas på en skala, till exempel blodtryck, inkomst, ålder eller vikt. Om ditt utfall är en kategori (t.ex. “Sjuk” eller “Frisk”) kan du inte använda linjär regression, utan måste byta till logistisk regression.
De oberoende variablerna (x): Får vara antingen kontinuerliga (t.ex. BMI) eller kategoriska (t.ex. kön, rökare/icke-rökare). Om de är kategoriska kodas de om till så kallade “dummy-variabler” (ofta 0 och 1) i statistikprogrammet. - Statistiska antaganden:
När variablerna är av rätt typ måste modellen uppfylla fyra matematiska krav. Inom statistiken brukar man komma ihåg dessa via den engelska förkortningen LINE:
L – Linjäritet (Linearity): Det måste finnas ett linjärt (rak-linjigt) samband mellan dina x-variabler och din y-variabel. Om sambandet egentligen ser ut som en U-kurva (t.ex. att stress är bra upp till en viss nivå, men sedan blir farligt) kommer en rak linje att missa sanningen helt. Detta kontrolleras enklast genom att titta på ett spridningsdiagram (scatter plot).
I – Independence (Oberoende observationer): Alla observationer / individer måste vara oberoende av varandra. Det betyder att en individs mätvärde inte får påverka en annans. Om du till exempel har mätt blodtrycket på samma patienter tre dagar i rad, är observationerna beroende. Då bryter du mot detta krav och måste använda andra metoder (t.ex. mixed-effects models).
N – Normalfördelade residualer (Normality): Här finns en av de vanligaste missuppfattningarna inom statistik: Många tror att själva x- och y-variablerna måste vara normalfördelade. Det är fel! Kravet är att residualerna (avvikelserna från regressionslinjen) ska vara någorlunda normalfördelade. Det betyder att de flesta datapunktarna ska ligga nära linjen, och att stora avvikelser uppåt är lika vanliga som stora avvikelser nedåt.
E – Equal variance (Homoskedasticitet): Detta är ett krångligt ord för ett enkelt koncept: Spridningen kring regressionslinjen ska vara ungefär lika stor längs hela linjen. Om datapunktarna ligger tätt intill linjen vid låga värden, men sprider ut sig som en stor tratt vid höga värden (så kallad heteroskedasticitet), så litar modellen för mycket på vissa datapunkter och för lite på andra.
Om du har fler än en x-variabel i din modell tillkommer ett viktigt krav till: Avsaknad av multikollinearitet: Dina oberoende variabler (x) får inte korrelera för starkt med varandra. Om du till exempel försöker förutsäga en persons lön och har med både “Antal år i yrket” och “Ålder” som x-variabler, kommer dessa två vara så lika varandra att modellen blir förvirrad över vilken av dem som faktiskt gör jobbet. I ett sådant fall välj bort den ena av de två oberoende variabler som korrelerar starkt med varandra. Detta kontrolleras med ett särskilt mått som heter VIF (Variance Inflation Factor).
Om observationerna inte är linjära eller residualerna inte är normalfördelade kan man ofta lösa det genom att transformera variablerna (t.ex. logaritmera y-variabeln). Är datan väldigt skev kan man ibland behöva byta till icke-parametriska tester, dvs ett annat test än vanlig linjär regression.
Förberedelser
- Datarensning: Gör en frekvensanalys för varje variabel, var för sig. Du kommer sannolikt att hitta några överraskningar, såsom ett fåtal individer med ett tredje kön, en person med orimlig ålder, eller mer bortfall än förväntat. Gå tillbaka till källan och korrigera alla fel. Kontrollera alla berörda variabler efter korrigeringen genom att göra en ny frekvensanalys. Detta måste göras noggrant innan du fortsätter.
- Undersök spår av potentiell bias (snedvridning): Titta på andelen bortfall (missing data) för varje variabel. Det förekommer nästan alltid visst bortfall. Är bortfallet stort i vissa variabler? Har du en rimlig förklaring till varför? Kan det vara ett tecken på att det finns en inbyggd bias (systematiskt fel i urvalet av observationer/individer) i din studie som kan påverka utfallet?
- Kontrollera om förutsättningar är uppfyllda: Kontrollera om förutsättningarna för vanlig linjär regression (se ovan) är uppfyllda.
- Behöver några variabler transformeras?: Ibland uppfyller inte observationerna de villkor som anges ovan. Om observationerna inte är linjära eller residualerna inte är normalfördelade kan man ofta lösa det genom att transformera variablerna (t.ex. logaritmera y-variabeln). Ibland kan det vara relevant att transformera en variabel även om den uppfyller alla villkor ovan. Exempel kan vara att transfromera kronor i inkomst till tusental eller tiotusental kronor (se första videoexemplet nedan).
- Välj strategi: Gör en enkel (ojusterad) linjär regression om du bara har en oberoende variabel (bara ett x). Om du däremot har flera oberoende variabler (flera x) behöver du välja en strategi för hur dessa ska inkluderas i analysen. Det finns några olika sätt att göra detta på. Det första tillvägagångssättet (4a) är det bästa. Det är dock inte alltid genomförbart, så du kan behöva använda en annan strategi.
- Bygga en multivariabel model – från förutbestämd teori: Bestäm dig för att använda en fastställd kombination av oberoende variabler baserat på logiska resonemang/teorier (expertråd). Antalet oberoende variabler bör inte vara för stort, helst färre än 10. Detta är den föredragna metoden om du har en rimligt god teori om hur variablerna hänger ihop.
- Inkludera allt – utan en förutbestämd teori: Gör en multipel linjär regression med alla tillgängliga oberoende variabler utan att ha någon teori om huruvida dessa variabler är meningsfulla. Detta kan fungera om du bara har ett fåtal variabler. Om du har många variabler kommer det sannolikt att resultera i en slutmodell som innehåller många oanvändbara variabler som mest utgör “brus”. Undvik att göra detta.
- Fishing expidition: Om du har många oberoende variabler och ingen teori om vilka som är användbara, kan du låta datorn föreslå vilka variabler som är relevanta att inkludera. Detta brukar kallas för att göra en “fisketur” (fishing expedition). Du kan läsa mer om detta nedan.
Bygga en multivariabel model – från förutbestämd teori
Att bygga en linjär regressionsmodell där du själv, snarare än ett datorprogram, avgör vad som ska inkluderas är den metod som förordas. Det är 5a i listan ovan. Videon nedan inspelat av Olov Aronson beskriver hur man bygger en sådan modell i SPSS, i enlighet med punkt 5a ovan (videon visar inte alla steg i listan ovan):
Bygga en multivariabel model – fishing expedition
Om du har många oberoende variabler och ingen teori om vilka som är användbara, kan du låta datorn föreslå vilka variabler som är relevanta att inkludera. Detta brukar kallas för “en fisketur” (fishing expedition). De olika metoder du kan be datorn använda i en fishing expedition är:
- All possible regressions (alla tänkbara regressionsmodeller): Här ber du datorn göra en regressionsanalys för alla tänkbara kombinationer av de oberoende variablerna. Du väljer sedan den regressionsmodell som förklarar högst andel av variation i den beroende variabeln (y). Problemet är att arbetsinsatsen som datorn måste göra ökar lavinartat när antalet oberoende variabler blir fler. Man brukar tala om en maxgräns på 10-15 oberoende variabler och ovanför det är det inte lönt att försöka.
- Forward inclusion/selection (Framåtval): Kan användas om du har fler variabler än observationer. När en variabel väl har lagts till stannar den oftast kvar i modellen. Metoden kanske väljer variabel A först för att den ser bra ut på egen hand, men missar att variabel B och C tillsammans hade varit en mycket bättre prediktor. Den misslyckas ofta med att fånga upp komplexa samband som bara syns när flera variabler samspelar. Metoderna nedan är bättre.
- Backwards elimination (Bakåt-eliminering): Användbart om du har fler observationer än variabler.
- Stepwise regression (Stegvis regression): Detta är en hybrid. Den börjar oftast som forward selection (lägger till variabler), men vid varje steg kontrollerar den bakåt för att se om någon variabel som tidigare lagts till nu blivit icke-signifikant (kanske för att den nya variabeln förklarar samma sak bättre). Detta åtgärdar den största bristen hos forward selection. Om variabel A lades till tidigt men blev överflödig när variabel C lades till, kommer den stegvisa regressionen att kasta ut variabel A igen. Den är mer flexibel och bättre än både “Forward inclusion/selection” och “Backwards elimination”. Titta på denna video av Brandon Foltz som introducerar konceptet: https://www.youtube.com/watch?v=An40g_j1dHA (på engelska men du kan få svensk textning).
- Regulariseringstekniker såsom LASSO-regression, Ridge-regression och Elastic Net: Dessa metoder kan även kallas för “penalized regression” (straffad regression) eller “regularized regression”. Stegvis regression medför en risk för överanpassning (overfitting) av din modell till just dina specifika observationer. Regulariseringstekniker löser detta problem genom att införa ett straff (penalty) för komplexa modeller. De anses numera vara överlägsna konventionell stegvis regression [3; 4]. Av dessa modeller är Elastic Net kanske den bästa, och den kan utföras i R, STATA och SPSS (i de nyare versionerna). Läs mer om detta på sidan om regulariserad regression.
Multikolinearitet
I all multivariabel linjär regression måste du först kontrollera alla oberoende variabler för multikolinearitet. Detta innebär att kontrollera om några av de oberoende variablerna av potentiellt intresse korrelerar starkt med varandra. Om så är fallet måste du göra ett val innan du går vidare. Detta kan utvärderas på två olika sätt:
- Kontrollera parvis alla oberoende variabler för “nollte ordningens korrelationer” (zero order correlations). Detta innebär att parvis kontrollera om några av de oberoende variablerna av potentiellt intresse korrelerar starkt med varandra. Om så är fallet måste du göra ett val innan du går vidare. Det finns ingen knivskarp definition av vad som utgör en “stark korrelation”. Jag föreslår att två oberoende variabler som har en Pearson- (eller Spearman-) korrelationskoefficient över +0,7 eller under -0,7 med ett p-värde <0,05 bör betraktas som alltför korrelerade. Om så är fallet måste du utesluta en av dem från vidare analys. Detta val bör styras av vad som är mest praktiskt att behålla i den fortsatta analysen (vad som sannolikt är mest användbart). Det bästa sättet att göra detta i SPSS är att göra en vanlig multipel linjär regression och under knappen Statistics kryssa i att du vill ha Covariance matrix
- Det viktigaste måttet är att ta fram variance Inflaction Factor (VIF) som är ett övergripande mått på multikoliearitet i din modell. Bästa sättet att göra detta i SPSS är att göra en vanlig multipel linjär regression och under knappen Statistics kryssa i att du vill ha Collinearity diagnostics. Detta kan visa multikolineartitetsproblem som inte syns när du tittar på korrelationsmatrisen.
Om du använder regulariseringstekniker behöver du inte oroa dig för korrelation mellan oberoende variabler. Dessa regulariserings-regressioner är oftast bättre på att avgöra vilka variabler som ska behållas än om vi försöker göra det själva (såvida vi inte har en välgrundad teori om vilka variabler som bör inkluderas).
Hur många oberoende variabler kan man ta med?
Om man kastar in för många oberoende variabler i sin modell drabbas man av något som kallas överanpassning (overfitting). Överanpassning medför att din slutliga modell kanske fungerar för ditt dataset men så fort du tillämpar den på ett annat dataset fungerar modellen dåligt. Så var går gränsen när man har för många oberoende variabler? Det finns en uppsjö av olika tumregler för detta, de flesta med dåligt matematiskt stöd . Green utreder detta noggrannt och konstaterar att den tumregel som är minst dålig är:
N ≥ 50 + (8*m)
N = antal observationer och m = antal oberoende variabler
(Exempel: Har du 5 oberoende variabler krävs minst 90 observationer)
Antalet observationer som krävs för ett visst antal oberoende variabler (x) beror mycket på effektstorleken (hur starkt sambandet är mellan de oberoende variablerna och den beroende variablen). Tumregeln som anges ovan stämmer någorlunda väl med korrekta skattningar av stickprovsstorlek vid medium effektstorlek och vid mindre än sju oberoende variabler . I övriga situationer fungerar inte tumregeln bra . Om vi antar en signifikansnivå om 0,05 och en styrka (power) om 0,8 är det korrekta antalet observationer som krävs för olika antal oberoende variabler :
| Antalet prediktorer* | Liten effektstorlek R-kvadrat = 0,02 | Medium effektstorlek R-kvadrat = 0,13 | Hög effektstorlek R-kvadrat = 0,26 |
|---|---|---|---|
| 1 | 390 | 53 | 24 |
| 2 | 481 | 66 | 30 |
| 3 | 547 | 76 | 35 |
| 4 | 599 | 84 | 39 |
| 5 | 645 | 91 | 42 |
| 6 | 686 | 97 | 46 |
| 7 | 726 | 102 | 48 |
| 8 | 757 | 108 | 51 |
| 9 | 788 | 113 | 54 |
| 10 | 844 | 117 | 56 |
| 15 | 952 | 138 | 67 |
| 20 | 1066 | 156 | 77 |
| 30 | 1247 | 187 | 94 |
| 40 | 1407 | 213 | 110 |
* Här listas antal prediktorer som modellen kan innehålla (det är inte samma som regressionsparametrar). Om alla oberoende variabler mäts med intervallskala är antal oberoende variabler och antal regressionsparametrar samma. Detta beror på att för en variabel som mäts med intervallskala blir det bara en betakoefficient och ett tillhörande p-värde. Det är annorlunda om variabeln mäts med nominalskala med mer än två skalsteg. Då utses ett skalsteg till referens och de andra skalstegen får varsin betakoeffcicient. En nominal variabel med fyra skalsteg ger då tre prediktorer.
Exempel på att tolka resultat
| Typ | Vad som står | Vad det betyder |
|---|---|---|
| df = DF = degrees of freedom = frihetsgrader | Total df | Antal observationer / individer i analysen (n) minus 1 (Dvs. n – 1). |
| Regression df = Model DF | Antal oberoende variabler (antal x) i din modell. I enkel linjär regression är det alltid 1. | |
| Residuals df = Error DF | Antal observationer minus antalet oberoende variabler minus 1. I enkel linjär regression är detta alltid antalet observationer minus 2 (n – 2). | |
| Sum of squares | Sum of squares Total | Ett mått på den totala variationen (spridningen) hos den beroende variabeln (y) runt sitt eget medelvärde, innan man tagit hänsyn till några oberoende variabler. |
| Sum of squares Regression (=Model SS) | Den del av den totala variationen i y som din regressionsmodell lyckas förklara. Ju högre detta värde är i relation till “Total”, desto bättre är modellen. | |
| Sum of squares Residuals = Sum of squares error | Den variation i y som din modell inte kan förklara (även kallat brus eller fel). Det är avståndet mellan de faktiska datapunktarna och regressionslinjen. | |
| Mean Square (MS = Genomsnittlig kvadratsumma) | Mean square Regression (= Model MS) | Tas fram genom att dela Sum of squares Regression med Regression df. I enkel linjär regression är detta värde exakt samma som Sum of squares (eftersom man delar med 1). |
| Mean square Residuals (= Error MS) | Variansen för residualerna. Tas fram genom att dela Sum of squares Residuals med Residuals df. | |
| Övergripande test | F-statistic (= F-value) | Ett mått på hur väl hela modellen passar datan jämfört med en modell helt utan oberoende variabler. Värdet beräknas genom att dela Mean square Regression med Mean square Residuals. |
| p-value (Ofta kopplat till F-värdet) | F-värdet omvandlas till ett p-värde. Om detta p-värde är signifikant (t.ex. < 0.05) betyder det att modellen som helhet är statistiskt signifikant och att minst en av dina x-variabler påverkar y. |
Uppskatta (prognostisera) utfallsvärden
I första videon nämndes hastigt möjligheten att använda en linjär regressionsmodell för att förutsäga värden på den beroende variabeln där datapunkter saknas. Detta besvrivs mer i följande video av Olov Aronson: