Comment tracer une courbe de régression logistique dans R



Souvent, vous souhaiterez peut-être tracer la courbe d’un modèle de régression logistique ajusté dans R.

Heureusement, c’est assez facile à faire et ce tutoriel explique comment le faire à la fois en base R et en ggplot2.

Exemple : tracer une courbe de régression logistique en base R

Le code suivant montre comment ajuster un modèle de régression logistique à l’aide de variables de l’ensemble de données mtcars intégré dans R, puis comment tracer la courbe de régression logistique :

#fit logistic regression model
model <- glm(vs ~ hp, data=mtcars, family=binomial)

#define new data frame that contains predictor variable
newdata <- data.frame(hp=seq(min(mtcars$hp), max(mtcars$hp),len=500))

#use fitted model to predict values of vs
newdata$vs = predict(model, newdata, type="response")

#plot logistic regression curve
plot(vs ~ hp, data=mtcars, col="steelblue")
lines(vs ~ hp, newdata, lwd=2)

Courbe de régression logistique en base R

L’axe des x affiche les valeurs de la variable prédictive hp et l’axe des y affiche la probabilité prédite de la variable de réponse am .

Nous pouvons clairement voir que des valeurs plus élevées de la variable prédictive hp sont associées à des probabilités plus faibles que la variable de réponse vs soit égale à 1.

Exemple : tracer une courbe de régression logistique dans ggplot2

Le code suivant montre comment ajuster le même modèle de régression logistique et comment tracer la courbe de régression logistique à l’aide de la bibliothèque de visualisation de données ggplot2 :

library(ggplot2)

#plot logistic regression curve
ggplot(mtcars, aes(x=hp, y=vs)) + 
  geom_point(alpha=.5) +
  stat_smooth(method="glm", se=FALSE, method.args = list(family=binomial))

Courbe de régression logistique dans ggplot2

Notez qu’il s’agit exactement de la même courbe produite dans l’exemple précédent en utilisant la base R.

N’hésitez pas à modifier également le style de la courbe. Par exemple, nous pourrions transformer la courbe en une ligne pointillée rouge :

library(ggplot2)

#plot logistic regression curve
ggplot(mtcars, aes(x=hp, y=vs)) + 
  geom_point(alpha=.5) +
  stat_smooth(method="glm", se=FALSE, method.args = list(family=binomial),
              col="red", lty=2)

Ressources additionnelles

Introduction à la régression logistique
Comment effectuer une régression logistique dans R (étape par étape)
Comment effectuer une régression logistique en Python (étape par étape)
Comment utiliser la fonction seq dans R

Ajouter un commentaire

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