Введение в регрессию на R
Richie Cotton
Data Evangelist at DataCamp
Лещ

Окунь

Иногда называют «r-squared» или «R-squared».
доля дисперсии переменной отклика, объясняемой объясняющей переменной
1 означает идеальное соответствие0 означает наихудшее соответствиеОбратите внимание на значение «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
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
bream %>%
summarize(
coeff_determination = cor(length_cm, mass_g) ^ 2
)
coeff_determination
1 0.8780627
«типичное» различие между предсказанным и наблюдаемым значением отклика
Единица измерения совпадает с единицей переменной отклика.
Обратите внимание на значение «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
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
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
...
bream %>%
mutate(
residuals_sq = residuals(mdl_bream) ^ 2
) %>%
summarize(
resid_sum_of_sq = sum(residuals_sq)
)
resid_sum_of_sq
1 181452.3
Число степеней свободы равно числу наблюдений минус число коэффициентов модели.
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
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
mdl_bream имеет RSE равный 74.
Разница между предсказанной и наблюдаемой массой леща составляет, как правило, около 74 г.
Стандартная ошибка остатков
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)
)
Среднеквадратичная ошибка
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)
)
Введение в регрессию на R