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