Avancerade modeller

Rasmus Bååth
02/04/2014

Varför bygga statistiska modeller?

  • Prediktion. Hur kommer framtiden se ut?
  • Inferens. Vilken sorts process skapade denna data?
  • Ju mer avancerade samband vi är intresserade av att undersöka desto mer avancerade modeller måste vi använda oss av.

Modelleringsprocessen

  • Explorativ “modellering”.
    • Plottar!
  • Modellspecifikation
  • Modellanpassning
  • Resultatanalys

Idag

  • Kvantitativa förklarande variabler
    • Response-variabler and explanatory-variabler.
    • Explorativ “modellering” / visualisering.
    • Modellspecifikation.
    • På fredag, modellanpassning.

Respons-variabler

  • Variabeln som vi ser som resultatet av någon process.
  • Ofta det vi mäter i ett experiment.
  • Ofta det vi är intresserade av ultimat.
  • AKA dependend variable eller outcome variable.

Exempel på respons-variabler

  • Minnesförmåga
  • Minnesförmåga hos 12-åringar och 18-åringar
  • Minnesförmåga med åldern.
  • Minnesförmåga med åldern och beroende på kön.
  • Minnesförmåga med åldern och beroende på fysisk aktivitet.

Explanatory-variabler

  • Variabeln som vi ser som resultatet av någon process.
  • Ofta det vi kontrollerar i ett experiment.
  • Ofta inte det vi ultimat är intresserade av (men det beror på) .
  • AKA predictor variable

Exempel på explanatory-variabler

  • Minnesförmåga (ingen explanatory-variabel)
  • Minnesförmåga hos 12-åringar och 18-åringar (kategorisk)
  • Minnesförmåga med åldern. (kvantitativ)
  • Minnesförmåga med åldern och beroende på kön. (kvantitativ + kategorisk)
  • Minnesförmåga med åldern och beroende på fysisk aktivitet. (kvantitativ + kvantitativ)

plot of chunk unnamed-chunk-2

plot of chunk unnamed-chunk-3

plot of chunk unnamed-chunk-4

plot of chunk unnamed-chunk-5

Visualisera samband

  • Scatterplot! xyplot i R.
  • Responsvariabler på Y-axeln
  • Explanatory-variabler på X-axeln
  • Vid fler explanatory-variabler:
    • Dela upp i grupper med färg och form
    • Dela upp i fler plottar med en faktor per plot.

Exempel med GapMinder-data

head(d)
       country continent lifeExp gdpPercap
12 Afghanistan      Asia   43.83     974.6
24     Albania    Europe   76.42    5937.0
36     Algeria    Africa   72.30    6223.4
48      Angola    Africa   42.73    4797.2
60   Argentina  Americas   75.32   12779.4
84     Austria    Europe   79.83   36126.5

lifeExp ~ 1

ingen explonatory-variabel

densityplot(~ lifeExp, data=d)

plot of chunk unnamed-chunk-9

lifeExp ~ gdpPercap

kategorisk explanatory-variable

xyplot(lifeExp ~ continent, data=d)

plot of chunk unnamed-chunk-11

lifeExp ~ gdpPercap

kvantitativ explanatory-variable

xyplot(lifeExp ~ gdpPercap, data=d)

plot of chunk unnamed-chunk-13

lifeExp ~ gdpPercap + continent

kvantitativ + kategorisk explanatory-variable.

Med group = ...

xyplot(lifeExp ~ gdpPercap, group=continent, auto.key=TRUE, data=d)

plot of chunk unnamed-chunk-15

lifeExp ~ gdpPercap + continent

kvantitativ + kategorisk explanatory-variable.

Med |

xyplot(lifeExp ~ gdpPercap | continent, data=d)

plot of chunk unnamed-chunk-17

Modellspecifikation

  • Vi har redan kollat på modeller med kategoriska explanatory-variabler.
    • Exempelvis: Inkomst beror på jobbkategori -> varje kategori har ett eget medelvärde
  • Modeller med kvatitativa variabler är klurigare
    • Exempelvis: Inkomst beror på ålder -> ???

Ett halvtaskigt trick

  • Gör om en kvantitativ variabel till en kategorisk.
    • Ålder -> 18-30, 30-50, 50-65
    • Blodtryck -> lågt, normalt, högt
    • Minnesförmåga -> under medianen, över medianen
    • Personlighet -> Personlighetstyper
  • Problemet: vad vi vinner i hanterbarhet förlorar vi i upplösning / information.
  • För att slippa detta trick krävs något mer avancerat…
  • … höstadiematte.

Linjens ekvation

\[ \]

\[ \]

\[ \] \[ y = a + b * x \]

plot of chunk unnamed-chunk-18

Linjens ekvation

\[ \]

\[ \]

\[ \] \[ y = a + b * x \]

Online-app för equationer

Linjens ekvation

  • y = a + b * x
  • response = intercept + coefficient * explanatory
  • Med lm i R: lm( y ~ 1 + x, data=d)
  • y = a * 1 + b * x

De vanligaste modellerna

  • Kapitel 6 & 7 år igenom samma modeller från två olika vinklar
  • Exempelvis: s.113 kapitel 6 och s. 137 kapitel 7

y ~ 1

  • s. 113 <-> s. 137
  • \( y = 1 * intercept \)
lm(time ~ 1, data=swim)

Call:
lm(formula = time ~ 1, data = swim)

Coefficients:
(Intercept)  
       59.9  

y ~ 1 + x

  • s. 114 <-> s. 138
  • \( y = 1 * intercept + x * b \)
lm(time ~ year, data=swim)

Call:
lm(formula = time ~ year, data = swim)

Coefficients:
(Intercept)         year  
     567.24        -0.26  

y ~ 1 + cat

  • s. 115 <-> s. 136
  • \( y = 1 * intercept + cat * b \)
lm(time ~ sex, data=swim)

Call:
lm(formula = time ~ sex, data = swim)

Coefficients:
(Intercept)         sexM  
       65.2        -10.5  

Hur kodas kategoriska variabler?

  • S.k. dummy coding
  • time ~ 1 + sex
  • time = 1 * 65.2 + sexM * -10.5
  • lifeExp ~ 1 + continent
  • lifeExp = 1 * 50 + continentAmericas * 30 + continentAsia * 25

y ~ 1 + x + cat

  • s. 115 <-> s. 138
  • \( y = 1 * intercept + x * b1 + cat * b2 \)
lm(time ~ year + sex, data=swim)

Call:
lm(formula = time ~ year + sex, data = swim)

Coefficients:
(Intercept)         year         sexM  
    555.717       -0.251       -9.798  

y ~ 1 + x + cat + x:cat

  • s. 116 <-> s. 139
  • \( y = intcept + x * b1 + cat * b2 + x * cat * b3 \)
lm(time ~ year + sex + year:sex, data=swim)

Call:
lm(formula = time ~ year + sex + year:sex, data = swim)

Coefficients:
(Intercept)         year         sexM    year:sexM  
    697.301       -0.324     -302.464        0.150  

y ~ 1 + x + cat + x:cat

  • Kan också skrivas y ~ 1 + x * cat (men tydligare att skriva ut hela)

Kort blick framåt

  • Modellanpassning (fredag)
  • Modeller för inferens (nästa vecka)

plot of chunk unnamed-chunk-24

model1 <- lm(iq ~ rhythm, data=a_relation)
model1

Call:
lm(formula = iq ~ rhythm, data = a_relation)

Coefficients:
(Intercept)       rhythm  
     78.084        0.438  
confint(model1)
              2.5 %  97.5 %
(Intercept) 74.7149 81.4537
rhythm       0.3713  0.5054

plot of chunk unnamed-chunk-26

model2 <- lm(iq ~ length, data=no_relation)
model2

Call:
lm(formula = iq ~ length, data = no_relation)

Coefficients:
(Intercept)       length  
   101.8525      -0.0131  
confint(model2)
               2.5 %    97.5 %
(Intercept) 93.19284 110.51210
length      -0.06395   0.03774