Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

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 *