Jak obliczyć r-kwadrat w pythonie (z przykładem)
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 do kwadratu może zmieniać się od 0 do 1, gdzie:
- Wartość 0 wskazuje, że zmienna odpowiedzi nie może być w ogóle wyjaśniona przez zmienną predykcyjną.
- 1 wskazuje, że zmienną odpowiedzi można doskonale i bezbłędnie wyjaśnić za pomocą zmiennych predykcyjnych.
Poniższy przykład pokazuje, jak obliczyć R 2 dla modelu regresji w Pythonie.
Przykład: oblicz R-kwadrat w Pythonie
Załóżmy, że mamy następującą ramkę DataFrame pand:
import pandas as pd #createDataFrame df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6], ' prep_exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2], ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]}) #view DataFrame print (df) hours prep_exams score 0 1 1 76 1 2 3 78 2 2 3 85 3 4 5 88 4 2 2 72 5 1 2 69 6 5 1 94 7 4 1 94 8 2 0 88 9 4 3 92 10 4 4 90 11 3 3 75 12 6 2 96
Możemy użyć funkcji LinearRegression() sklearn , aby dopasować model regresji, oraz funkcji score() do obliczenia wartości R-kwadrat modelu:
from sklearn.linear_model import LinearRegression
#initiate linear regression model
model = LinearRegression()
#define predictor and response variables
x, y = df[[" hours ", " prep_exams "]], df. score
#fit regression model
model. fit (x,y)
#calculate R-squared of regression model
r_squared = model. score (x,y)
#view R-squared value
print (r_squared)
0.7175541714105901
Okazuje się, że kwadrat R modelu wynosi 0,7176 .
Oznacza to, że 71,76% różnic w wynikach egzaminów można wytłumaczyć liczbą przepracowanych godzin i liczbą zdanych egzaminów praktycznych.
Gdybyśmy chcieli, moglibyśmy następnie porównać tę wartość R-kwadrat z innym modelem regresji z innym zestawem zmiennych predykcyjnych.
Ogólnie rzecz biorąc, preferowane są modele o wyższych wartościach R-kwadrat, ponieważ oznacza to, że zestaw zmiennych predykcyjnych w modelu jest w stanie dobrze wyjaśnić zmienność zmiennej odpowiedzi.
Powiązane: Jaka jest dobra wartość R-kwadrat?
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w Pythonie:
Jak wykonać prostą regresję liniową w Pythonie
Jak wykonać wielokrotną regresję liniową w Pythonie
Jak obliczyć AIC modeli regresji w Pythonie