Kvantifiera modellens anpassning

Introduktion till regression i R

Richie Cotton

Data Evangelist at DataCamp

Modeller för braxen och abborre

Braxen

Spridningsdiagrammet över braxens massa mot längd, med en trendlinje, som visats tidigare.

Abborre

Spridningsdiagrammet över abborrens massa mot längd, med en trendlinje, som visats tidigare.

Introduktion till regression i R

Determinationskoefficienten

Kallas ibland "r-kvadrat" eller "R-kvadrat".

andelen av variansen i responsvariabeln som kan förutsägas från förklaringsvariabeln

  • 1 innebär perfekt anpassning
  • 0 innebär sämsta möjliga anpassning
Introduktion till regression i R

summary()

Titta på värdet "Multiple R-Squared"

mdl_bream <- lm(mass_g ~ length_cm, data = bream)
summary(mdl_bream)
# Some lines of output omitted

Residual standard error: 74.15 on 33 degrees of freedom
Multiple R-squared:  0.8781,    Adjusted R-squared:  0.8744 
F-statistic: 237.6 on 1 and 33 DF,  p-value: < 2.2e-16
Introduktion till regression i R

glance()

library(broom)
library(dplyr)
mdl_bream %>% 
  glance()
# A tibble: 1 × 12
  r.squared adj.r.squared sigma statistic  p.value    df logLik   AIC   BIC
      <dbl>         <dbl> <dbl>     <dbl>    <dbl> <dbl>  <dbl> <dbl> <dbl>
1     0.878         0.874  74.2      238. 1.22e-16     1  -199.  405.  409.
# ... with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
mdl_bream %>% 
  glance() %>% 
  pull(r.squared)
0.8780627
Introduktion till regression i R

Det är bara korrelationen i kvadrat

bream %>% 
  summarize(
    coeff_determination = cor(length_cm, mass_g) ^ 2
  )
  coeff_determination
1           0.8780627
Introduktion till regression i R

Residualstandardfel (RSE)

en "typisk" skillnad mellan en prediktion och ett observerat utfall

Den har samma enhet som responsvariabeln.

Introduktion till regression i R

summary() igen

Titta på värdet "Residual standard error"

summary(mdl_bream)
# Some lines of output omitted

Residual standard error: 74.15 on 33 degrees of freedom
Multiple R-squared:  0.8781,    Adjusted R-squared:  0.8744 
F-statistic: 237.6 on 1 and 33 DF,  p-value: < 2.2e-16
Introduktion till regression i R

glance() igen

library(broom)
library(dplyr)
mdl_bream %>% 
  glance()
# A tibble: 1 x 11
  r.squared adj.r.squared sigma statistic  p.value    df logLik   AIC   BIC deviance df.residual
      <dbl>         <dbl> <dbl>     <dbl>    <dbl> <int>  <dbl> <dbl> <dbl>    <dbl>       <int>
1     0.878         0.874  74.2      238. 1.22e-16     2  -199.  405.  409.  181452.          33
mdl_bream %>% 
  glance() %>% 
  pull(sigma)
74.15224
Introduktion till regression i R

Beräkna RSE: residualer i kvadrat

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  )
  species mass_g length_cm residuals_sq
1   Bream    242      23.2     138.9571
2   Bream    290      24.0     260.7586
3   Bream    340      23.9    5126.9926
4   Bream    363      26.3    1318.9197
5   Bream    430      26.5     390.9743
6   Bream    450      26.8     547.9380
...
Introduktion till regression i R

Beräkna RSE: summan av residualerna i kvadrat

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq)
  )
  resid_sum_of_sq
1        181452.3
Introduktion till regression i R

Beräkna RSE: frihetsgrader

Frihetsgrader är antalet observationer minus antalet modellkoefficienter.

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    deg_freedom = n() - 2
  )
  resid_sum_of_sq deg_freedom
1        181452.3          33
Introduktion till regression i R

Beräkna RSE: kvadratroten av kvoten

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    deg_freedom = n() - 2,
    rse = sqrt(resid_sum_of_sq / deg_freedom)
  )
  resid_sum_of_sq deg_freedom      rse
1        181452.3          33 74.15224
Introduktion till regression i R

Tolka RSE

mdl_bream har ett RSE på 74.

Skillnaden mellan predikterad och observerad massa för braxen är typiskt sett ungefär 74 g.

Introduktion till regression i R

Rotmedelkvadratfel (RMSE)

Residualstandardfel

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    deg_freedom = n() - 2,
    rse = sqrt(resid_sum_of_sq / deg_freedom)
  )

Rotmedelkvadratfel

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    n_obs = n(),
    rmse = sqrt(resid_sum_of_sq / n_obs)
  )
Introduktion till regression i R

Nu kör vi en övning!

Introduktion till regression i R

Preparing Video For Download...