Как рассчитать скорректированный 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