Formulas i R

Generaliserade linjära modeller i R

Richard Erickson

Instructor

Varför är formulas viktiga för multipel logistisk regression?

  • Formulas är grunden för regression
  • Kan vara svåra att förstå
  • model.matrix() är nyckeln
Generaliserade linjära modeller i R

Lutningar

  • Skattar koefficienten för en kontinuerlig variabel
    • t.ex. height = c(72.3, 21.1, 3.7, 1.0)
  • Formeln kräver också ett globalt intercept
  • Flera lutningar: en lutning per prediktor
Generaliserade linjära modeller i R

Intercept

  • Diskreta grupper används för att prediktera
  • faktor eller character i R: fish = c("red", "blue")
  • Ett intercept med två alternativ:
    • Referensintercept + kontrast: y ~ x
    • Intercept per grupp: y ~ x -1
Generaliserade linjära modeller i R

Flera intercept

  • Skattar effekten av varje grupp jämfört med referensgruppen
  • Den första gruppen i faktorn, i alfabetisk ordning
  • Som standard finns en referensgrupp per variabel
    • y ~ x1 + x2
  • Kan ange en grupp för att skatta ett intercept för alla grupper
    • y ~ x1+ x2 - 1
  • Den första variabeln får ett intercept skattat för varje grupp
Generaliserade linjära modeller i R

Dummyvariabler

  • Kodar gruppmedlemskap
  • Används internt (dvs. model.matrix())
  • 0:or och 1:or för varje grupp
  • Exempelindata: color = c("red", "blue")
  • Dummyvariabler för y ~ colors:
    • intercept = c(1, 1)
    • blue = c(0, 1)
  • Dummyvariabler för y ~ colors - 1 :
    • red = c(1, 0)
    • blue = c(0, 1)
Generaliserade linjära modeller i R

model.matrix()

  • model.matrix() gör grovjobbet åt oss
  • Grunden för formulas i R
model.matrix( ~ colors)
  (Intercept) colorsred
1           1         1
2           1         0
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$colors
"contr.treatment"
  • Ordningen bestäms av faktorns ordning
  • Ändra ordning med Tidyverse eller factor()
Generaliserade linjära modeller i R

Faktor kontra numerisk – en viktig skillnad

  • R tolkar variabeln som numerisk
    • t.ex. month = c(1, 2, 3)
month <- c( 1, 2, 3)
model.matrix( ~ month)
  (Intercept) month
1           1     1
2           1     2
3           1     3
attr(,"assign")
0 1
  • Ange faktor eller character explicit
    • t.ex. month = factor(c( 1, 2, 3))
model.matrix( ~ month)
  (Intercept) month2 month3
1           1      0      0
2           1      1      0
3           1      0      1
attr(,"assign")
0 1 1
attr(,"contrasts")$month
"contr.treatment"
Generaliserade linjära modeller i R

Nu kör vi en övning!

Generaliserade linjära modeller i R

Preparing Video For Download...