Regressie naar het gemiddelde

Introductie tot regressie in R

Richie Cotton

Data Evangelist

Het concept

  • Respons = voorspelde waarde + residu
  • "Wat je verklaarde" + "wat je niet kon verklaren"
  • Residuen ontstaan door modelproblemen én fundamentele willekeur
  • Extreme gevallen komen vaak door toeval
  • Regressie naar het gemiddelde: extreme gevallen houden geen stand in de tijd
Introductie tot regressie in R

Pearsons vader-zoon-dataset

  • 1078 vader/zoon-paren
  • Hebben lange vaders lange zonen?
father_height_cm son_height_cm
165.2 151.8
160.7 160.6
165.0 160.9
167.0 159.5
155.3 163.3
... ...
1 Aangepast van https://www.rdocumentation.org/packages/UsingR/topics/father.son
Introductie tot regressie in R

Scatterplot

plt_son_vs_father <- ggplot(
  father_son, 
  aes(father_height_cm, son_height_cm)
) +
  geom_point() +
  geom_abline(color = "green", size = 1) +
  coord_fixed()

Een scatterplot van lengtes van zonen versus vaders, met een lijn waar vader en zoon even lang zijn. Naarmate vaders langer zijn, zijn zonen dat ook.

Introductie tot regressie in R

Een regressielijn toevoegen

plt_son_vs_father +
  geom_smooth(method = "lm", se = FALSE)

Een scatterplot van lengtes van zonen versus vaders, met een lineaire trendlijn. De trendlijn is minder steil dan de lijn waar vader en zoon even lang zijn.

Introductie tot regressie in R

Een regressie uitvoeren

mdl_son_vs_father <- lm(
  son_height_cm ~ father_height_cm, 
  data = father_son
)
Call:
lm(formula = son_height_cm ~ father_height_cm, data = father_son)

Coefficients:
     (Intercept)  father_height_cm  
          86.072             0.514
Introductie tot regressie in R

Voorspellingen maken

really_tall_father <- tibble(
  father_height_cm = 190
)
predict(mdl_son_vs_father, really_tall_father)
183.7
really_short_father <- tibble(
  father_height_cm = 150
)
predict(mdl_son_vs_father, really_short_father)
163.2
Introductie tot regressie in R

Laten we oefenen!

Introductie tot regressie in R

Preparing Video For Download...