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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert