Comment calculer R-carré en Python (avec exemple)
R-carré , souvent écrit R 2 , est la proportion de la variance de la variable de réponse qui peut être expliquée par les variables prédictives dans un modèle de régression linéaire .
La valeur du R au carré peut varier de 0 à 1 où :
- 0 indique que la variable de réponse ne peut pas du tout être expliquée par la variable prédictive.
- 1 indique que la variable réponse peut être parfaitement expliquée sans erreur par les variables prédictives.
L’exemple suivant montre comment calculer R 2 pour un modèle de régression en Python.
Exemple : calculer R-carré en Python
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame 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
Nous pouvons utiliser la fonction LinearRegression() de sklearn pour ajuster un modèle de régression et la fonction score() pour calculer la valeur R au carré du modèle :
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
Le R carré du modèle s’avère être 0,7176 .
Cela signifie que 71,76 % de la variation des résultats aux examens peut s’expliquer par le nombre d’heures étudiées et le nombre d’examens préparatoires passés.
Si nous le souhaitons, nous pourrions alors comparer cette valeur R au carré à un autre modèle de régression avec un ensemble différent de variables prédictives.
En général, les modèles avec des valeurs R au carré plus élevées sont préférés car cela signifie que l’ensemble de variables prédictives du modèle est capable d’expliquer bien la variation de la variable de réponse.
Connexes :Qu’est-ce qu’une bonne valeur R au carré ?
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes en Python :
Comment effectuer une régression linéaire simple en Python
Comment effectuer une régression linéaire multiple en Python
Comment calculer l’AIC des modèles de régression en Python