Régression vers la moyenne

Introduction à la régression dans R

Richie Cotton

Data Evangelist

Le concept

  • Valeur de réponse = valeur ajustée + résidu
  • « Ce que vous avez expliqué » + « ce que vous n'avez pas pu expliquer »
  • Les résidus sont présents en raison de problèmes dans le modèle et du caractère aléatoire fondamental.
  • Les cas extrêmes sont souvent dus au hasard.
  • La régression vers la moyenne implique que les cas extrêmes ne persistent pas dans le temps.
Introduction à la régression dans R

Ensemble de données père-fils de Pearson

  • 1 078 paires père/fils
  • Les pères de grande taille ont-ils des fils de grande taille ?
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 Adapté de https://www.rdocumentation.org/packages/UsingR/topics/father.son
Introduction à la régression dans R

Diagramme en nuage de points

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

Un diagramme en nuage de points représentant la taille des fils par rapport à celle des pères, avec une ligne indiquant les cas où le père et le fils auraient la même taille. Plus les pères sont grands, plus les fils le sont aussi.

Introduction à la régression dans R

Ajout d'une ligne de régression

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

Le diagramme en nuage de points représentant la taille des fils par rapport à celle des pères, accompagné d'une courbe de tendance linéaire. La courbe est moins pentue que celle où les pères et les fils auraient la même taille.

Introduction à la régression dans R

Effectuer une régression

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
Introduction à la régression dans R

Faire des prévisions

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
Introduction à la régression dans R

Passons à la pratique !

Introduction à la régression dans R

Preparing Video For Download...