R -квадрат , часто обозначаемый как R2, представляет собой долю дисперсии переменной отклика , которая может быть объяснена переменными-предикторами в модели линейной регрессии .
Значение для R-квадрата может варьироваться от 0 до 1. Значение 0 указывает, что переменная отклика вообще не может быть объяснена предикторной переменной, в то время как значение 1 указывает, что переменная отклика может быть полностью объяснена предиктором без ошибок. переменные.
Скорректированный R-квадрат — это модифицированная версия R-квадрата, которая корректирует количество предикторов в регрессионной модели. Он рассчитывается как:
Скорректированный R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]
куда:
- R 2 : R 2 модели
- n : количество наблюдений
- k : Количество переменных-предикторов
Поскольку R 2 всегда увеличивается по мере того, как вы добавляете в модель больше предикторов, скорректированный R 2 может служить метрикой, которая говорит вам, насколько полезна модель, с поправкой на количество предикторов в модели .
В этом руководстве объясняется, как рассчитать скорректированный R 2 для регрессионной модели в R.
Связанный:Что такое хорошее значение R-квадрата?
Пример: как рассчитать скорректированный R-квадрат в R
Мы можем использовать следующий код для построения модели множественной линейной регрессии в R, используя встроенный набор данных под названием mtcars :
model <- lm (hp ~ mpg + wt + drat + qsec, data=mtcars)
И мы можем использовать один из следующих трех методов, чтобы найти скорректированный R-квадрат модели:
Способ 1: используйте функцию summary()
Мы можем просмотреть как R-квадрат, так и скорректированный R-квадрат модели, просто используя функцию summary() :
summary (model)
Call:
lm(formula = hp ~ mpg + wt + drat + qsec, data = mtcars)
Residuals:
Min 1Q Median 3Q Max
-48.801 -16.007 -5.482 11.614 97.338
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 473.779 105.213 4.503 0.000116 \*\*\*
mpg -2.877 2.381 -1.209 0.237319
wt 26.037 13.514 1.927 0.064600.
drat 4.819 15.952 0.302 0.764910
qsec -20.751 3.993 -5.197 1.79e-05 \*\*\*
---
Signif. codes: 0 '\*\*\*' 0.001 '\*\*' 0.01 '\*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 32.25 on 27 degrees of freedom
Multiple R-squared: 0.8073, Adjusted R-squared: 0.7787
F-statistic: 28.27 on 4 and 27 DF, p-value: 2.647e-09
В нижней части вывода мы видим следующее:
- Множественный R-квадрат: 0,8073
- Скорректированный R-квадрат: 0,7787
Способ 2. Используйте сводку (модель) $adj.r.squared
Если бы мы просто хотели получить скорректированный R-квадрат модели, мы могли бы использовать следующую функцию:
summary (model)$adj.r.squared
[1] 0.7787005
Способ 3: используйте пользовательскую функцию
Еще один способ найти скорректированный R-квадрат модели — написать пользовательскую функцию:
#define function to calculate adjusted R-squared
adj_r2 <- function (x) {
return (1 - ((1-x$adj.r.squared)\*( nobs (x)-1)/( nobs (x)- length (x$coefficients)-1)))
}
#use function to calculate adjusted R-squared of the model
adj_r2(model)
[1] 0.7787005
numeric(0)
Обратите внимание, что каждый из трех описанных здесь методов дает одно и то же значение скорректированного R-квадрата.
Дополнительные ресурсы
Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как выполнить полиномиальную регрессию в R