Predicciones y razones de momios

Introducción a la regresión en R

Richie Cotton

Data Evangelist at DataCamp

Predicciones con 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)
  )

Diagrama de dispersión de churn frente al tiempo desde la última compra, con una curva logística.

Introducción a la regresión en R

Hacer predicciones

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")
  )
Introducción a la regresión en R

Añadir predicciones puntuales

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

Diagrama de dispersión de churn frente al tiempo desde la última compra, con una curva logística. El gráfico está anotado con los resultados de predict(), que siguen exactamente la curva.

Introducción a la regresión en R

Obtener el resultado más probable

prediction_data <- explanatory_data %>% 
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response"),
    most_likely_outcome = round(has_churned)
  )
Introducción a la regresión en R

Visualizar el resultado más probable

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

Diagrama de dispersión de churn frente al tiempo desde la última compra, con una curva logística. El gráfico está anotado con los resultados más probables. Con poco tiempo desde la última compra, lo más probable es no churn. Con mucho tiempo, lo más probable es churn.

Introducción a la regresión en R

Razones de momios (odds)

La razón de momios es la probabilidad de que pase algo dividida por la probabilidad de que no pase.

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

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

Gráfico de línea de la razón de momios frente a la probabilidad. La curva crece asintóticamente hasta infinito cuando la probabilidad tiende a 1.

Introducción a la regresión en R

Calcular la razón de momios

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)
  )
Introducción a la regresión en R

Visualizar la razón de momios

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

Gráfico de línea de la razón de momios frente al tiempo desde la última compra, con una línea en razón de momios = 1. Con poco tiempo, lo más probable es no churn. Las probabilidades de churn aumentan con el tiempo hasta cinco veces las de no churn.

Introducción a la regresión en R

Visualizar log-odds (logit)

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

El gráfico de línea de la razón de momios frente al tiempo desde la última compra, con una línea en razón de momios = 1. El eje Y usa escala logarítmica, lo que hace que la línea de momios sea lineal.

Introducción a la regresión en R

Calcular log-odds (logit)

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)
  )
Introducción a la regresión en R

Todas las predicciones juntas

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
... ... ... ... ... ...
Introducción a la regresión en R

Comparar escalas

Escala ¿Fácil de interpretar valores? ¿Fácil de interpretar cambios? ¿Precisa?
Probabilidad
Resultado más probable ✔✔
Razón de momios
Log-odds
Introducción a la regresión en R

¡Vamos a practicar!

Introducción a la regresión en R

Preparing Video For Download...