Як обчислити скоригований 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