Как рассчитать скорректированный r-квадрат в r
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 : Количество переменных-предсказателей
Поскольку R2 всегда увеличивается по мере добавления предикторов в модель, скорректированный R2 может служить метрикой, показывающей, насколько полезна модель, скорректированной на основе количества предикторов в модели .
В этом руководстве объясняется, как рассчитать скорректированный R2 для регрессионной модели в 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 ***
---
Significant. 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. Используйте summary(model)$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-summary(x)$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