Hoe r-kwadraat in python te berekenen (met voorbeeld)
R-kwadraat , vaak geschreven als R2 , is het deel van de variantie in de responsvariabele dat kan worden verklaard door de voorspellende variabelen in een lineair regressiemodel .
De waarde van R kwadraat kan variëren van 0 tot 1 waarbij:
- 0 geeft aan dat de responsvariabele helemaal niet kan worden verklaard door de voorspellende variabele.
- 1 geeft aan dat de responsvariabele perfect foutloos kan worden verklaard door de voorspellende variabelen.
In het volgende voorbeeld ziet u hoe u R 2 berekent voor een regressiemodel in Python.
Voorbeeld: bereken R-kwadraat in Python
Stel dat we de volgende panda’s DataFrame hebben:
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
We kunnen de functie LinearRegression() van sklearn gebruiken om een regressiemodel aan te passen en de functie score() om de R-kwadraatwaarde van het model te berekenen:
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
Het R-kwadraat van het model blijkt 0,7176 te zijn.
Dit betekent dat 71,76% van de variatie in examenscores kan worden verklaard door het aantal gestudeerde uren en het aantal afgelegde oefenexamens.
Als we dat zouden willen, zouden we deze R-kwadraatwaarde kunnen vergelijken met een ander regressiemodel met een andere set voorspellende variabelen.
Over het algemeen hebben modellen met hogere R-kwadraatwaarden de voorkeur omdat dit betekent dat de set voorspellende variabelen in het model de variatie in de responsvariabele goed kan verklaren.
Gerelateerd: Wat is een goede R-kwadraatwaarde?
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in Python uitvoert:
Hoe eenvoudige lineaire regressie uit te voeren in Python
Hoe u meerdere lineaire regressies uitvoert in Python
Hoe AIC van regressiemodellen in Python te berekenen