Prediktioner och oddskvot

Introduktion till regression i R

Richie Cotton

Data Evangelist at DataCamp

Prediktioner med 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)
  )

Ett spridningsdiagram över churn mot tid sedan senaste köp, med en logistisk trendlinje.

Introduktion till regression i R

Göra prediktioner

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")
  )
Introduktion till regression i R

Lägga till punktprediktioner

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

Spridningsdiagrammet över churn mot tid sedan senaste köp, med en logistisk trendlinje. Diagrammet är annoterat med resultaten från predict(), som följer trendlinjen exakt.

Introduktion till regression i R

Beräkna det mest sannolika utfallet

prediction_data <- explanatory_data %>% 
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response"),
    most_likely_outcome = round(has_churned)
  )
Introduktion till regression i R

Visualisera det mest sannolika utfallet

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

Spridningsdiagrammet över churn mot tid sedan senaste köp, med en logistisk trendlinje. Diagrammet är annoterat med de mest sannolika utfallen. Vid kort tid sedan senaste köp är det mest sannolika utfallet att kunden inte churnar. Vid lång tid sedan senaste köp är det mest sannolika utfallet att kunden churnar.

Introduktion till regression i R

Oddskvot

Oddskvot är sannolikheten att något inträffar dividerat med sannolikheten att det inte inträffar.

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

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

Ett linjediagram över oddskvot mot sannolikhet. Kurvan ökar asymptotiskt mot oändligheten när sannolikheten närmar sig ett.

Introduktion till regression i R

Beräkna oddskvot

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)
  )
Introduktion till regression i R

Visualisera oddskvot

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

Ett linjediagram över oddskvot mot tid sedan senaste köp, med en linje vid oddskvot lika med ett. Vid kort tid sedan senaste köp är det mest sannolika utfallet att kunden inte churnar. Oddset för churn ökar med ökad tid sedan senaste köp, upp till fem gånger oddset för att inte churna.

Introduktion till regression i R

Visualisera log-oddskvot

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

Linjediagrammet över oddskvot mot tid sedan senaste köp, med en linje vid oddskvot lika med ett. Y-axeln använder logaritmisk skala, vilket har gjort att oddskvotlinjen blivit linjär.

Introduktion till regression i R

Beräkna log-oddskvot

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)
  )
Introduktion till regression i R

Alla prediktioner samlat

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
... ... ... ... ... ...
Introduktion till regression i R

Jämföra skalor

Skala Lätta värden att tolka? Lätta förändringar att tolka? Precis?
Sannolikhet
Mest sannolikt utfall ✔✔
Oddskvot
Log-oddskvot
Introduktion till regression i R

Nu kör vi en övning!

Introduktion till regression i R

Preparing Video For Download...