Регрессия к среднему

Введение в регрессию на R

Richie Cotton

Data Evangelist

Концепция

  • Значение отклика = подогнанное значение + остаток
  • «То, что объяснила модель» + «то, что не удалось объяснить»
  • Остатки возникают из-за недостатков модели и случайности
  • Крайние значения часто обусловлены случайностью
  • Регрессия к среднему означает, что крайние значения не сохраняются со временем
Введение в регрессию на 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 Адаптировано из https://www.rdocumentation.org/packages/UsingR/topics/father.son
Введение в регрессию на 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()

Диаграмма рассеяния роста сыновей относительно роста отцов с линией равенства роста отца и сына. С увеличением роста отцов растёт и рост сыновей.

Введение в регрессию на R

Добавление линии регрессии

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

Диаграмма рассеяния роста сыновей относительно роста отцов с нанесённой линией линейного тренда. Линия тренда менее крутая, чем линия равенства роста отца и сына.

Введение в регрессию на 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
Введение в регрессию на 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
Введение в регрессию на R

Давайте потренируемся!

Введение в регрессию на R

Preparing Video For Download...