Jak obliczyć skorygowany r-kwadrat w r
R-kwadrat , często zapisywany jako R2 , to proporcja wariancji zmiennej odpowiedzi , którą można wyjaśnić za pomocą zmiennych predykcyjnych w modelu regresji liniowej .
Wartość R kwadrat może mieścić się w zakresie od 0 do 1. Wartość 0 oznacza, że zmiennej odpowiedzi w ogóle nie można wyjaśnić zmienną predykcyjną, natomiast wartość 1 oznacza, że zmienną odpowiedzi można wyjaśnić za pomocą zmiennej predykcyjnej. doskonale wyjaśnione bez błędu przez predyktora. zmienne.
Skorygowane R-kwadrat to zmodyfikowana wersja R-kwadrat, która dostosowuje liczbę predyktorów w modelu regresji. Oblicza się go w następujący sposób:
Skorygowany R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]
Złoto:
- R 2 : R 2 modelu
- n : Liczba obserwacji
- k : Liczba zmiennych predykcyjnych
Ponieważ współczynnik R2 zawsze wzrasta w miarę dodawania predyktorów do modelu, skorygowany współczynnik R2 może służyć jako metryka informująca o przydatności modelu, skorygowany na podstawie liczby predyktorów w modelu .
W tym samouczku wyjaśniono, jak obliczyć skorygowany R2 dla modelu regresji w R.
Powiązane: Jaka jest dobra wartość R-kwadrat?
Przykład: Jak obliczyć skorygowany R-kwadrat w R
Możemy użyć poniższego kodu, aby utworzyć model regresji liniowej w R, korzystając z wbudowanego zbioru danych o nazwie mtcars :
model <- lm (hp ~ mpg + wt + drat + qsec, data=mtcars)
Możemy użyć jednej z trzech metod, aby znaleźć skorygowany R-kwadrat modelu:
Metoda 1: Użyj funkcji podsumowania().
Możemy wizualizować zarówno R-kwadrat, jak i skorygowany R-kwadrat modelu, po prostu używając funkcji podsumowania() :
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
Na dole danych wyjściowych możemy zobaczyć, co następuje:
- Wielokrotne R do kwadratu: 0,8073
- Skorygowany R-kwadrat: 0,7787
Metoda 2: Użyj podsumowania(model)$adj.r.squared
Gdybyśmy po prostu chcieli uzyskać skorygowany kwadrat R modelu, moglibyśmy użyć następującej funkcji:
summary (model)$adj.r.squared
[1] 0.7787005
Metoda 3: Użyj funkcji niestandardowej
Innym sposobem znalezienia dopasowanego kwadratu R modelu jest napisanie niestandardowej funkcji:
#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)
Należy zauważyć, że każda z trzech udostępnionych tutaj metod daje tę samą wartość skorygowanego R-kwadrat.
Dodatkowe zasoby
Jak wykonać prostą regresję liniową w R
Jak wykonać wielokrotną regresję liniową w R
Jak wykonać regresję wielomianową w R