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

Dodaj komentarz

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