Regresja do średniej

Wprowadzenie do regresji w R

Richie Cotton

Data Evangelist

Pojęcie

  • Wartość odpowiedzi = wartość dopasowana + reszta
  • „To, co wyjaśniono" + „to, czego nie wyjaśniono"
  • Reszty wynikają z błędów modelu i losowości
  • Przypadki skrajne często są efektem losowości
  • Regresja do średniej oznacza, że przypadki skrajne nie utrzymują się w czasie
Wprowadzenie do regresji w R

Zbiór danych Pearsona: ojcowie i synowie

  • 1078 par ojciec–syn
  • Czy wysocy ojcowie mają wysokich synów?
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
Wprowadzenie do regresji w R

Wykres rozrzutu

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

Wykres rozrzutu wzrostu synów względem wzrostu ojców z linią równego wzrostu. Wraz ze wzrostem ojców rośnie też wzrost synów.

Wprowadzenie do regresji w R

Dodawanie linii regresji

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

Wykres rozrzutu wzrostu synów względem wzrostu ojców z naniesioną linią trendu liniowego. Linia trendu jest mniej stroma niż linia, na której ojciec i syn mieliby ten sam wzrost.

Wprowadzenie do regresji w R

Budowanie modelu regresji

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
Wprowadzenie do regresji w R

Prognozowanie

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
Wprowadzenie do regresji w R

Czas na ćwiczenia!

Wprowadzenie do regresji w R

Preparing Video For Download...