Comment calculer le R-carré ajusté en Python
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 aller de 0 à 1. Une valeur de 0 indique que la variable de réponse ne peut pas du tout être expliquée par la variable prédictive, tandis qu’une valeur de 1 indique que la variable de réponse peut être parfaitement expliquée sans erreur par le prédicteur. variables.
Le R-carré ajusté est une version modifiée du R-carré qui s’ajuste au nombre de prédicteurs dans un modèle de régression. Il est calculé comme suit :
R 2 ajusté = 1 – [(1-R 2 )*(n-1)/(nk-1)]
où:
- R 2 : Le R 2 du modèle
- n : Le nombre d’observations
- k : Le nombre de variables prédictives
Étant donné que R 2 augmente toujours à mesure que vous ajoutez des prédicteurs à un modèle, le R 2 ajusté peut servir de métrique qui vous indique l’utilité d’un modèle, ajusté en fonction du nombre de prédicteurs dans un modèle .
Ce didacticiel montre deux exemples de calcul du R 2 ajusté pour un modèle de régression en Python.
Connexes :Qu’est-ce qu’une bonne valeur R au carré ?
Exemple 1 : calculer le R-carré ajusté avec sklearn
Le code suivant montre comment ajuster un modèle de régression linéaire multiple et calculer le R-carré ajusté du modèle à l’aide de sklearn :
from sklearn.linear_model import LinearRegression import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/mtcars.csv" #read in data data = pd.read_csv(url) #fit regression model model = LinearRegression() X, y = data[["mpg", "wt", "drat", "qsec"]], data.hp model.fit(X, y) #display adjusted R-squared 1 - (1-model.score(X, y))*(len(y)-1)/(len(y)-X.shape[1]-1) 0.7787005290062521
Le R-carré ajusté du modèle s’avère être de 0,7787 .
Exemple 2 : calculer le R-carré ajusté avec des modèles de statistiques
Le code suivant montre comment ajuster un modèle de régression linéaire multiple et calculer le R-carré ajusté du modèle à l’aide de statsmodels :
import statsmodels.api as sm import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/mtcars.csv" #read in data data = pd.read_csv(url) #fit regression model X, y = data[["mpg", "wt", "drat", "qsec"]], data.hp X = sm.add_constant(X) model = sm.OLS(y, X).fit() #display adjusted R-squared print(model.rsquared_adj) 0.7787005290062521
Le R-carré ajusté du modèle s’avère être de 0,7787 , ce qui correspond au résultat de l’exemple précédent.
Ressources additionnelles
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