Pourquoi utiliser la régression logistique

Introduction à la régression en R

Richie Cotton

Data Evangelist at DataCamp

Jeu de données de désabonnement bancaire

has_churned time_since_first_purchase time_since_last_purchase
0 0.3993247 -0.5158691
1 -0.4297957 0.6780654
0 3.7383122 0.4082544
0 0.6032289 -0.6990435
... ... ...
response length of relationship recency of activity
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Introduction à la régression en R

Désabonnement vs. récence : modèle linéaire

mdl_churn_vs_recency_lm <- lm(has_churned ~ time_since_last_purchase, data = churn)
Call:
lm(formula = has_churned ~ time_since_last_purchase, data = churn)

Coefficients:
             (Intercept)  time_since_last_purchase  
                 0.49078                   0.06378 
coeffs <- coefficients(mdl_churn_vs_recency_lm)
intercept <- coeffs[1]
slope <- coeffs[2]
Introduction à la régression en R

Visualiser le modèle linéaire

ggplot(
  churn, 
  aes(time_since_last_purchase, has_churned)
) +
  geom_point() +
  geom_abline(intercept = intercept, slope = slope)

Les prédictions sont des probabilités de désabonnement, pas des quantités de désabonnement.

Nuage de points indiquant si la clientèle s'est désabonnée selon le temps depuis le dernier achat. Tous les points sont à y = 0 ou y = 1. Une tendance linéaire montre une probabilité de désabonnement croissante avec le temps depuis le dernier achat.

Introduction à la régression en R

Dézoomer

ggplot(
  churn, 
  aes(days_since_last_purchase, has_churned)
) +
  geom_point() +
  geom_abline(intercept = intercept, slope = slope) +
  xlim(-10, 10) +
  ylim(-0.2, 1.2)

Le même nuage de points selon le temps depuis le dernier achat. Les axes sont dézoomés : la droite de tendance passe sous y = 0 et au‑dessus de y = 1, ce qui est impossible.

Introduction à la régression en R

Qu'est-ce que la régression logistique ?

  • Un autre type de modèle linéaire généralisé.
  • À utiliser quand la variable réponse est logique.
  • Les réponses suivent une courbe logistique (en S).
Introduction à la régression en R

Régression linéaire avec glm()

glm(has_churned ~ time_since_last_purchase, data = churn, family = gaussian)
Call:  glm(formula = has_churned ~ time_since_last_purchase, family = gaussian, 
    data = churn)

Coefficients:
             (Intercept)  time_since_last_purchase  
                 0.49078                   0.06378  

Degrees of Freedom: 399 Total (i.e. Null);  398 Residual
Null Deviance:        100 
Residual Deviance: 98.02     AIC: 578.7
Introduction à la régression en R

Régression logistique : glm() avec famille binomiale

mdl_recency_glm <- glm(has_churned ~ time_since_last_purchase, data = churn, family = binomial)
Call:  glm(formula = has_churned ~ time_since_last_purchase, family = binomial, 
    data = churn)

Coefficients:
             (Intercept)  time_since_last_purchase  
                -0.03502                   0.26921  

Degrees of Freedom: 399 Total (i.e. Null);  398 Residual
Null Deviance:        554.5 
Residual Deviance: 546.4     AIC: 550.4
Introduction à la régression en R

Visualiser le modèle logistique

ggplot(
  churn, 
  aes(time_since_last_purchase, has_churned)
) +
  geom_point() +
  geom_abline(
    intercept = intercept, slope = slope
  ) +
  geom_smooth(
    method = "glm", 
    se = FALSE, 
    method.args = list(family = binomial)
  )

Nuage de points indiquant le désabonnement selon le temps depuis le dernier achat. Des tendances linéaire et logistique sont tracées ; toutes deux augmentent avec le temps depuis le dernier achat. Elles se suivent de près sauf pour des valeurs élevées du temps depuis le dernier achat.

Introduction à la régression en R

Dézoomer

Le nuage de points du désabonnement selon le temps depuis le dernier achat, avec les deux courbes de tendance. Les axes sont dézoomés : la courbe logistique demeure toujours entre 0 et 1.

Introduction à la régression en R

Passons à la pratique !

Introduction à la régression en R

Preparing Video For Download...