Prediksi dan odds ratio

Pengantar Regresi di R

Richie Cotton

Data Evangelist at DataCamp

Prediksi 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)
  )

Plot sebar churn vs waktu sejak pembelian terakhir, dengan garis tren logistik.

Pengantar Regresi di R

Membuat prediksi

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")
  )
Pengantar Regresi di R

Menambahkan prediksi titik

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

Plot sebar churn vs waktu sejak pembelian terakhir, dengan garis tren logistik. Plot dianotasi dengan hasil dari predict(), yang mengikuti garis tren persis.

Pengantar Regresi di R

Mendapatkan hasil paling mungkin

prediction_data <- explanatory_data %>% 
  mutate(
    has_churned = predict(mdl_recency, explanatory_data, type = "response"),
    most_likely_outcome = round(has_churned)
  )
Pengantar Regresi di R

Memvisualisasikan hasil paling mungkin

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

Plot sebar churn vs waktu sejak pembelian terakhir, dengan garis tren logistik. Plot dianotasi dengan hasil paling mungkin. Untuk waktu rendah sejak pembelian terakhir, hasil paling mungkin adalah tidak churn. Untuk waktu tinggi, hasil paling mungkin adalah churn.

Pengantar Regresi di R

Odds ratio

Odds ratio adalah probabilitas suatu kejadian dibagi probabilitas tidak terjadinya.

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

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

Plot garis odds ratio vs probabilitas. Kurva naik mendekati tak hingga saat probabilitas mendekati satu.

Pengantar Regresi di R

Menghitung odds ratio

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)
  )
Pengantar Regresi di R

Memvisualisasikan odds ratio

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

Plot garis odds ratio vs waktu sejak pembelian terakhir, dengan garis pada odds ratio sama dengan satu. Untuk waktu rendah sejak pembelian terakhir, hasil paling mungkin adalah tidak churn. Odds churn meningkat seiring bertambahnya waktu, hingga lima kali odds tidak churn.

Pengantar Regresi di R

Memvisualisasikan log odds ratio

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

Plot garis odds ratio vs waktu sejak pembelian terakhir, dengan garis pada odds ratio sama dengan satu. Sumbu-y logaritmik membuat garis odds ratio menjadi linear.

Pengantar Regresi di R

Menghitung log odds ratio

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)
  )
Pengantar Regresi di R

Semua prediksi bersama

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
... ... ... ... ... ...
Pengantar Regresi di R

Membandingkan skala

Skala Mudah ditafsir? Perubahan mudah ditafsir? Presisi?
Probabilitas
Hasil paling mungkin ✔✔
Odds ratio
Log odds ratio
Pengantar Regresi di R

Ayo berlatih!

Pengantar Regresi di R

Preparing Video For Download...