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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *