Predicera värden från regressionsanalys med hjälp av regressionsekvationen

English version | Startsida

När vi gör en regressionsanalys räknar vi ut hur olika oberoende variabler hänger ihop med en beroende variabel. I den här guiden ska vi gå igenom hur man gör för att räkna ut förväntade värden, gissningar, för vad en enskild individ har för värde på den beroende variabeln.

Det kan vara bra för att illustrera vad regressionsanalysen ger för resultat, eller för att jämföra våra gissningar med verkligheten.

I den här guiden kommer vi att gå igenom:

  1. Vad regressionsekvationen är för något
  2. Hur vi får fram de värden vi behöver till regressionsekvationen
  3. Hur man räknar ut gissningar (predicerade värden) med hjälp av regressionsekvationen
  4. Vad feltermen (residualen) är
  5. Hur vi räknar ut gissningar för alla individer i datamängden
  6. Och hur man kan se att gissningarna vi räknar fram "för hand" är desamma som de vi räknar ut automatiskt.

Regressionsekvationen

För att göra en gissning behöver vi ta fram regressionsekvationen. Ekvationen visar hur vi ska räkna ut ett förväntat värde på den beroende variabeln, utifrån analysenhetens värden på de beroende variablerna. Tabellen Stata ger oss efter regressionanalysen visar de olika parametrarna som ingår i ekvationen.

Vanligtvis visas regressionsekvationen på följande sätt (här med två oberoende variabler):

$y_i = \alpha+ \beta_1X_{1i} + \beta_2X_{2i} + \epsilon_i$

De olika delarna symboliserar olika saker:

Symbol Betydelse
$y_i$ Värdet på den beroende variabeln för person $i$
$\alpha$ Interceptet/konstanten (visas i regressionstabellen)
$\beta_{1}$ Koefficienten för den första oberoende variabeln (visas i regressionstabellen)
$X_{1_i}$ Värdet på den första oberoende variabeln för person $i$
$\beta_{2}$ Koefficienten för den andra oberoende variabeln (visas i regressionstabellen)
$X_{2_i}$ Värdet på den andra oberoende variabeln för person $i$
$\epsilon_i$ Feltermen för person $i$, alltså skillnaden mellan det faktiska värdet på den beroende variabeln ($y_i$) och vad vi gissar.

Det här är den generella formen. Vi gör alltså en gissning på vad den beroende variabeln borde ha för värde, för varje analysenhet, till exempel person, genom att multiplicera variablernas värden med dess effekter.

Men i varje undersökning kan vi byta ut de olika grekiska bokstäverna mot det det faktiskt gäller. Säg till exempel att vi vill undersöka vad en person har för inkomst. Vi tror att det beror på både utbildning och kön. Vi gör då en analys med två oberoende variabler, vilken utbildning man har, och om man är man eller kvinna. Ekvationen skulle då se ut såhär:

$inkomst_i = \alpha+ \beta_1utbildning_i + \beta_2kon_i + \epsilon_i$

Om vi vet en persons utbildningsnivå och kön kan vi göra en gissning på inkomsten. Men då måste vi veta värdet på $\alpha$, $\beta_1$ och $\beta_2$, alltså interceptet, och koefficienterna för utbildning och kön.

När vi gissar har vi inte med någon felterm - den är bara där för att få ekvationen att gå ihop. När vi gissar ser ekvationen alltså ut såhär:

$gissadinkomst_i = \alpha+ \beta_1utbildning_i + \beta_2kon_i$

Ta fram uppgifterna till regressionsekvationen med regressionsanalys

Dessa uppgifter får vi när vi gör en regressionsanalys. I den amerikanska General Social Survey finns det frågor om alla tre variabler vi är intresserade av: inkomst ("realrinc"), utbildningsnivå ("degree", en femgradig skala som går från 0 ingen utbildning till 4 masterexamen) och kön ("sex", där man är 1 och kvinna 2). Nedan gör vi en regressionsanalys med inkomst som beroende variabel, och utbildning och kön som oberoende.

In [11]:
use "/Users/xsunde/Dropbox/Jupyter/stathelp/data/GSS2016.dta", clear
reg realrinc degree sex


      Source |       SS           df       MS      Number of obs   =     1,631
-------------+----------------------------------   F(2, 1628)      =    135.42
       Model |  2.0112e+11         2  1.0056e+11   Prob > F        =    0.0000
    Residual |  1.2089e+12     1,628   742596017   R-squared       =    0.1426
-------------+----------------------------------   Adj R-squared   =    0.1416
       Total |  1.4101e+12     1,630   865071746   Root MSE        =     27251

------------------------------------------------------------------------------
    realrinc |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      degree |   8138.599   547.8172    14.86   0.000     7064.099      9213.1
         sex |  -10649.57   1351.835    -7.88   0.000    -13301.09   -7998.052
       _cons |   24874.19   2328.309    10.68   0.000     20307.39    29440.99
------------------------------------------------------------------------------

Vi ser här de tre uppgifter vi saknade för att komplettera vår ekvation. Koefficienten för utbildning ($\beta_1$) är 8139, vilket betyder att om man går ett steg uppåt på utbildningsskalan (till exempel från "junior college" till "bachelor") så ökar inkomsten med 8139 dollar per år.

Koefficienten för variabeln "sex" ($\beta_2$) är -10650, vilket betyder att om vi ökar variabeln med ett steg (dvs går från man (1) till kvinna (2)) minskar inkomsten med 10650 dollar per år. Kvinnor tjänar alltså 10650 dollar mindre per år, i genomsnitt.

Och slutligen ser vi att interceptet ($\alpha$) är 24874. Det är den förväntade inkomsten för alla som har 0 på alla de oberoende variablerna. Det innebär alltså att man har värdet 0 på variabeln kön, vilket ingen har. Men det gör inget - ekvationen fungerar lika bra ändå.

Nu kan vi sätta in de här uppgifterna i regressionsekvationen:

$inkomst_i = 24874 + 8139\times utbildning_i -10650\times kon_i + \epsilon_i$

eller om vi ska gissa på någons inkomst:

$gissadinkomst_i = 24874 + 8139\times utbildning_i -10650\times kon_i$

Räkna ut predicerade värden manuellt med regressionsekvationen

Nu kan vi stoppa in olika värden på de två oberoende variablerna och få ut olika gissningar på inkomsten. Vi använder då ekvationen för att gissa inkomster.

Fall 1: Man (kon = 1) med masterexamen (utbildning = 4):
$24874 + 8139\times 4 -10650\times1 = 46780$

Fall 2: Man (kon = 1) med examen från junior college (utbildning = 2):
$24874 + 8139\times 2 -10650\times1 = 30502$

Fall 3: Man (kon = 1) med ingen examen (utbildning = 0):
$24874 + 8139\times 0 -10650\times1 = 14224$

Fall 4: Kvinna (kon = 2) med masterexamen (utbildning = 4):
$24874 + 8139\times 4 -10650\times2 = 36130$

Fall 5: Kvinna (kon = 2) med ingen examen (utbildning = 0):
$24874 + 8139\times 0 -10650\times2 = 3574$

I alla fallen är det några saker som är samma: interceptet (24874), koefficienten för utbildning (8139) och koefficienten för kön (-10650). Det som ändras är värdena på de olika variablerna, vilket ger olika gissningar på inkomster. Vi tror alltså att kvinnorna med lägst utbildning endast tjänar 3574 dollar per år, medan män med masterexamen tjänar hela 46780 dollar per år!

Feltermen - residualen

Nu är det ju inte så att alla män med masterexamen tjänar exakt 46780, och varenda kvinna utan utbildning tjänar inte exakt 3574. Där kommer feltermen, som också kan kallas residualen (det som blir över) in i bilden. Säg att vi har en kvinna utan utbildning, som i verkligheten tjänar 7000 dollar per år. Vi trodde att hon skulle tjäna 3574.

För att regressionsekvationen ska gå ihop får skriva in en felterm som är skillnaden mellan vår gissning för henne (3574) och det faktiska värdet (7000). Skillnaden blir 3426. För just henne ser regressionsekvationen då ut såhär:

$7000 = 24874 + 8139\times 0 -10650\times 2 + 3426$

Om man räknar ihop det hela ser man att det stämmer - uttrycket till höger om likamedtecknet summerar till 7000. Feltermen blir alltså unik för varje individ. Men för att räkna fram själva gissningen behöver vi inte ta hänsyn till den. Däremot kan den vara intressant i andra avseenden, till exempel för så kallad regressionsdiagnostik. Men det går vi inte in på här.

Predicera värden för alla automatiskt

När man jobbar med enkätdata är enskilda individer sällan intressanta. Men om man jobbar med kända analysenheter, till exempel världens länder, kan det vara intressant att veta vad gissningarna är för enskilda länder.

Med kommandot predict kan vi lätt göra detta i Stata. Vi måste då göra en regressionsanalys, och direkt efter den skriver vi kommandot predict, följt av namnet på den nya variabel som ska spara våra gissningar, en för varje person. Låt oss kalla den nya variabeln "gissad_inkomst". Nedan görs det, med kommandot quietly först, för att undvika att få ut regressionstabellen här. Vi kör också predict en gång till, med option ,r för att få residualerna för varje person.

In [12]:
quietly reg realrinc degree sex
predict gissad_inkomst
predict felterm, r

(option xb assumed; fitted values)
(8 missing values generated)

(1,236 missing values generated)

Det har nu skapats två nya variabler, "gissad_inkomst" och "felterm". Låt oss nu kolla hur det ser ut för de första fem personerna i datamängden, med hjälp av kommandot list.

In [13]:
list degree sex gissad_inkomst realrinc felterm in 1/5
     +--------------------------------------------------------+
     |   degree      sex   gissad~t      realrinc     felterm |
     |--------------------------------------------------------|
  1. | bachelor     male   38640.42   164382.0376    125741.6 |
  2. | high sch     male   22363.22         25740    3376.782 |
  3. | bachelor     male   38640.42           IAP           . |
  4. | high sch   female   11713.65          5265   -6448.647 |
  5. | graduate   female   36129.45           936   -35193.45 |
     +--------------------------------------------------------+

Den första personen är en man med kandidatexamen (bachelor). Han förväntas tjäna en hel del - vi gissade på 38640 dollar per år. Men I själva verket tjänar han hela 164382 dollar! Vi gissade alltså på alldeles för lite. Feltermen, felgissningen, blir alltså 125742. Det verkliga värdet ligger 125742 dollar högre än vår gissning.

Den andra personen är en man med examen från high school. Vi gissade att han skulle tjäna 22363 dollar per år, men i verkligheten var det 25740. Ganska nära alltså - det verkliga värdet ligger 3374 högre.

Person nummer 3 hade inget värde på inkomstvariabeln.

Personer nummer 4 är en kvinna med examen från high school. Vi gissade att hon inte skulle tjäna så mycket - 11714 dollar per år. I verkligheten tjänar hon ännu mindre, 5265 dollar. Feltermen vblir alltså -6449. Det verkliga värdet låg 6449 dollar under vår gissning.

Vi ser alltså att det ofta blir lite (eller mycket) fel i våra gissningar. Alla personer som har samma egenskaper kommer få samma gissning. Vill vi göra bättre gissningar får vi lägga till fler variabler i modellen.

Jämförelse mellan värden framräknade för hand och automatiskt predicerade värden

Oavsett på vilket sätt man räknar fram de olika värdena ska det givetvis bli samma resultat. När vi räknade ut för hand såg vi att män med masterexamen förväntades tjäna 46780 dollar per år, och att kvinnor utan någon examen förväntades tjäna 3574. Vi kan nu jämföra dessa värden med dem vi räknat fram automatiskt. Vi räknar ut medelvärdet för vår gissning, för alla kombinationer av de två variablerna, med hjälp av kommandot table.

In [14]:
table degree sex, contents(mean gissad_inkomst)
-----------------------------------
r's highest    |  respondents sex  
degree         |     male    female
---------------+-------------------
lt high school | 14224.62  3575.047
   high school | 22363.22  11713.65
junior college | 30501.82  19852.25
      bachelor | 38640.42  27990.85
      graduate | 46779.02  36129.45
            NA |                   
-----------------------------------

Män med den högsta utbildningen förväntas alltså tjäna 46779 dollar per år - en dollar mindre än vad vi räknade ut för hand. Anledningen till att det inte blir exakt samma är att vi inte tog med alla decimaler när vi räknade för hand. Kvinnor med den lägsta utbildningsgraden gissar vi tjänar 3575 dollar, en dollar mer än gissningen vi tog fram för hand, återigen på grund av decimalerna.

Avslutning

Att predicera värden kan vara intressant för att se på substantiella skillnader utifrån analysen. Det kan till exempel vara mer pedagogiskt att visa hur mycket högutbildade och lågutbildade förväntas skilja sig åt, snarare än att säga "koefficienten för utbildning är 8139". Ibland är det också intressant att jämföra gissningen med verkligheten för att se vilka som så att säga över- respektive underpresterar.

Ekvationen utökas så mycket som behövs, beroende på hur många variabler man har. I det här exemplet hade vi två variabler, utbildning och kön. Om vi skulle lägga till också ålder skulle ekvationen bara bli lite längre:

$inkomst_i = \alpha+ \beta_1utbildning_i + \beta_2kon_i + \beta_3alder_i + \epsilon_i$

En regressionsanalys går alltså ut på att försöka uppskatta (estimera) vad de bästa värdena på $\alpha$, $\beta_1$, $\beta_2$ och $\beta_3$ är, och det är (bland annat) vad som visas i resultaten när vi kör regressionskommandot.

Slutligen kan ekvationen också användas för att gissa där vi inte har facit. Till exempel kan man göra en regressionsanalys där man ser hur resultatet i amerikanska presidentval påverkas av ekonomins tillväxt, presidentens opinionsstöd, och så vidare. Då utgår man givetvis ifrån historiska data. Men sedan kan man sätta in nuvarande värden i ekvationen, och få en gissning på hur resultatet kommer bli i nästa val. Man går då tillväga på samma sätt som vi gjort här.