Prédictions et rapports de cotes

Introduction à la régression en R

Richie Cotton

Data Evangelist at DataCamp

Les prédictions de ggplot

plt_churn_vs_recency_base <- ggplot(
  churn, 
  aes(time_since_last_purchase, has_churned)
) +
  geom_point() +
  geom_smooth(
    method = "glm", 
    se = FALSE, 
    method.args = list(family = binomial)
  )

Nuage de points du taux de désabonnement selon le temps depuis le dernier achat, avec une courbe logistique.

Introduction à la régression en R

Faire des prédictions

mdl_recency <- glm(
  has_churned ~ time_since_last_purchase, data = churn, family = "binomial"
)
explanatory_data <- tibble(
  time_since_last_purchase = seq(-1, 6, 0.25)
)
prediction_data <- explanatory_data %>% 
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response")
  )
Introduction à la régression en R

Ajouter des prédictions ponctuelles

plt_churn_vs_recency_base +
  geom_point(
    data = prediction_data, 
    color = "blue"
  )

Le nuage de points du taux de désabonnement selon le temps depuis le dernier achat, avec une courbe logistique. Le graphique est annoté avec les résultats de predict(), qui suivent exactement la courbe.

Introduction à la régression en R

Obtenir l'issue la plus probable

prediction_data <- explanatory_data %>% 
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response"),
    most_likely_outcome = round(has_churned)
  )
Introduction à la régression en R

Visualiser l'issue la plus probable

plt_churn_vs_recency_base +
  geom_point(
    aes(y = most_likely_outcome),
    data = prediction_data,
    color = "green"
  )

Le nuage de points du taux de désabonnement selon le temps depuis le dernier achat, avec une courbe logistique. Le graphique est annoté avec les issues les plus probables. Pour un temps faible depuis le dernier achat, l'issue la plus probable est de ne pas se désabonner. Pour un temps élevé, l'issue la plus probable est le désabonnement.

Introduction à la régression en R

Rapports de cotes

Le « rapport de cotes » est la probabilité qu'un événement survienne divisée par la probabilité qu'il ne survienne pas.

$$ odds\_ratio = \frac{probability}{(1 - probability)} $$

$$ odds\_ratio = \frac{0.25}{(1 - 0.25)} = \frac{1}{3} $$

Courbe du rapport de cotes selon la probabilité. La courbe croît asymptotiquement vers l'infini quand la probabilité tend vers un.

Introduction à la régression en R

Calculer le rapport de cotes

prediction_data <- explanatory_data %>%
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response"),
    most_likely_response = round(has_churned),
    odds_ratio = has_churned / (1 - has_churned)
  )
Introduction à la régression en R

Visualiser le rapport de cotes

ggplot(
  prediction_data, 
  aes(time_since_last_purchase, odds_ratio)
) +
  geom_line() +
  geom_hline(yintercept = 1, linetype = "dotted")

Courbe du rapport de cotes selon le temps depuis le dernier achat, avec une ligne au rapport de cotes égal à un. Pour un temps faible, l'issue la plus probable est l'absence de désabonnement. Les cotes de désabonnement augmentent avec le temps, jusqu'à cinq fois celles de l'absence de désabonnement.

Introduction à la régression en R

Visualiser le logarithme du rapport de cotes

ggplot(
  prediction_data, 
  aes(time_since_last_purchase, odds_ratio)
) +
  geom_line() +
  geom_hline(yintercept = 1, linetype = "dotted") +
  scale_y_log10()

La même courbe du rapport de cotes selon le temps depuis le dernier achat, avec une ligne au rapport de cotes égal à un. L'axe des y est logarithmique, ce qui rend la courbe linéaire.

Introduction à la régression en R

Calculer le logarithme du rapport de cotes

prediction_data <- explanatory_data %>%
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response"),
    most_likely_response = round(has_churned),
    odds_ratio = has_churned / (1 - has_churned),
    log_odds_ratio = log(odds_ratio),
    log_odds_ratio2 = predict(mdl_recency, explanatory_data)
  )
Introduction à la régression en R

Toutes les prédictions ensemble

tm_snc_lst_prch has_churned most_lkly_rspns odds_ratio log_odds_ratio log_odds_ratio2
0 0.491 0 0.966 -0.035 -0.035
2 0.623 1 1.654 0.503 0.503
4 0.739 1 2.834 1.042 1.042
6 0.829 1 4.856 1.580 1.580
... ... ... ... ... ...
Introduction à la régression en R

Comparer les échelles

Échelle Valeurs faciles à interpréter ? Variations faciles à interpréter ? Précise ?
Probabilité
Issue la plus probable ✔✔
Rapport de cotes
Log du rapport de cotes
Introduction à la régression en R

Passons à la pratique !

Introduction à la régression en R

Preparing Video For Download...