Jak obliczyć skorygowany r-kwadrat w pythonie


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 przedstawiono dwa przykłady obliczania skorygowanego R2 dla modelu regresji w języku Python.

Powiązane: Jaka jest dobra wartość R-kwadrat?

Przykład 1: oblicz skorygowany R-kwadrat za pomocą sklearn

Poniższy kod pokazuje, jak dopasować model regresji liniowej i obliczyć dopasowany współczynnik R-kwadrat modelu za pomocą sklearn:

 from sklearn. linear_model import LinearRegression
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#fit regression model
model = LinearRegression ()
x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp
model. fit (x,y)

#display adjusted R-squared
1 - (1-model. score (X, y))*( len (y)-1)/( len (y)-X. shape [1]-1)

0.7787005290062521

Skorygowany kwadrat R modelu wynosi 0,7787 .

Przykład 2: Oblicz skorygowany współczynnik R-kwadrat za pomocą modeli statystycznych

Poniższy kod pokazuje, jak dopasować model regresji liniowej wielokrotnej i obliczyć dopasowany R-kwadrat modelu za pomocą statsmodels:

 import statsmodels. api as sm
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#fit regression model
x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp
X = sm. add_constant (X)
model = sm. OLS (y,x). fit ()

#display adjusted R-squared
print ( model.rsquared_adj )

0.7787005290062521

Skorygowany kwadrat R modelu wynosi 0,7787 , co odpowiada wynikowi z poprzedniego przykładu.

Dodatkowe zasoby

Jak wykonać prostą regresję liniową w Pythonie
Jak wykonać wielokrotną regresję liniową w Pythonie
Jak obliczyć AIC modeli regresji w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *