Как рассчитать скорректированный 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 : Количество переменных-предикторов

Поскольку 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.