Dlaczego potrzebna jest regresja logistyczna

Wprowadzenie do regresji w R

Richie Cotton

Data Evangelist at DataCamp

Zbiór danych: odejścia klientów banku

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
... ... ...
odpowiedź długość relacji ostatnia aktywność
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Wprowadzenie do regresji w R

Odejście a aktywność: model liniowy

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]
Wprowadzenie do regresji w R

Wizualizacja modelu liniowego

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

Prognozy to prawdopodobieństwa odejścia, nie jego wartości.

Wykres punktowy odejścia klienta w zależności od czasu od ostatniego zakupu. Wszystkie punkty leżą na liniach y=0 lub y=1. Liniowa linia trendu pokazuje wzrost prawdopodobieństwa odejścia wraz z upływem czasu.

Wprowadzenie do regresji w R

Powiększenie widoku

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)

Wykres punktowy odejścia klienta w zależności od czasu od ostatniego zakupu. Osie są bardziej oddalone, co pokazuje, że linia trendu wykracza poniżej y=0 i powyżej y=1, co jest niedopuszczalne.

Wprowadzenie do regresji w R

Czym jest regresja logistyczna?

  • Kolejny typ uogólnionego modelu liniowego.
  • Stosowana, gdy zmienna odpowiedzi jest logiczna.
  • Odpowiedzi mają kształt krzywej logistycznej (S-kształtnej).
Wprowadzenie do regresji w R

Regresja liniowa za pomocą 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
Wprowadzenie do regresji w R

Regresja logistyczna: glm() z rodziną dwumianową

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
Wprowadzenie do regresji w R

Wizualizacja modelu logistycznego

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

Wykres punktowy przedstawiający odejście klienta w zależności od czasu od ostatniego zakupu. Widoczne są linie trendu: liniowa i logistyczna — obie wskazują na wzrost prawdopodobieństwa odejścia wraz z upływem czasu. Linie są do siebie zbliżone, z wyjątkiem dużych wartości czasu.

Wprowadzenie do regresji w R

Powiększenie widoku

Wykres punktowy odejścia klienta w zależności od czasu od ostatniego zakupu, z obiema liniami trendu. Osie są bardziej oddalone, co pokazuje, że linia logistyczna nigdy nie wychodzi poza zakres od zera do jednego.

Wprowadzenie do regresji w R

Czas na ćwiczenia!

Wprowadzenie do regresji w R

Preparing Video For Download...