Регресія до середнього

Вступ до Regression у R

Richie Cotton

Data Evangelist

Концепція

  • Значення відповіді = підігнане значення + залишок
  • «Те, що ви пояснили» + «те, що ви не змогли пояснити»
  • Залишки виникають через проблеми моделі та базову випадковість
  • Екстремальні випадки часто зумовлені випадковістю
  • «Регресія до середнього» означає, що екстремальні випадки не зберігаються з часом
Вступ до Regression у R

Набір даних Пірсона про батьків і синів

  • 1078 пар батько/син
  • Чи високі батьки мають високих синів?
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 Adapted from https://www.rdocumentation.org/packages/UsingR/topics/father.son
Вступ до Regression у R

Точкова діаграма

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

Точкова діаграма зросту синів проти зросту батьків, з лінією, де батько й син мали б однаковий зріст. Із зростом батька зріст сина теж зростає.

Вступ до Regression у R

Додаємо регресійну лінію

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

Точкова діаграма зросту синів проти зросту батьків із лінійним трендом. Лінія тренду менш стрімка за лінію рівного зросту батька й сина.

Вступ до Regression у R

Запуск регресії

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
Вступ до Regression у R

Створення прогнозів

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
Вступ до Regression у R

Давайте потренуємось!

Вступ до Regression у R

Preparing Video For Download...