De ce ai nevoie de regresia logistică

Introducere în regresia cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

Setul de date privind churn-ul bancar

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
... ... ...
răspuns durata relației recentitatea activității
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Introducere în regresia cu statsmodels în Python

Churn față de recentitate: model liniar

mdl_churn_vs_recency_lm = ols("has_churned ~ time_since_last_purchase",
                              data=churn).fit()

print(mdl_churn_vs_recency_lm.params)
Intercept                   0.490780
time_since_last_purchase    0.063783
dtype: float64
intercept, slope = mdl_churn_vs_recency_lm.params
Introducere în regresia cu statsmodels în Python

Vizualizarea modelului liniar

sns.scatterplot(x="time_since_last_purchase",
                y="has_churned",
                data=churn)

plt.axline(xy1=(0, intercept), slope=slope) plt.show()

Un grafic de dispersie al probabilității de churn față de timpul de la ultima achiziție. Toate punctele sunt pe liniile y=0 sau y=1. O linie de tendință liniară arată că probabilitatea de churn crește pe măsură ce timpul de la ultima achiziție crește.

Introducere în regresia cu statsmodels în Python

Zoom out

sns.scatterplot(x="time_since_last_purchase",
                y="has_churned",
                data=churn)

plt.axline(xy1=(0,intercept),
           slope=slope)

plt.xlim(-10, 10) plt.ylim(-0.2, 1.2)
plt.show()

Graficul de dispersie al probabilității de churn față de timpul de la ultima achiziție. Axele sunt mai depărtate față de graficul anterior, arătând că linia de tendință depășește valorile 0 și 1, ceea ce nu ar trebui să fie posibil.

Introducere în regresia cu statsmodels în Python

Ce este regresia logistică?

  • Alt tip de model liniar generalizat.
  • Folosit când variabila răspuns este logică.
  • Răspunsurile urmează o curbă logistică (în formă de S).
Introducere în regresia cu statsmodels în Python

Regresie logistică cu logit()

from statsmodels.formula.api import logit
mdl_churn_vs_recency_logit = logit("has_churned ~ time_since_last_purchase",
                                   data=churn).fit()

print(mdl_churn_vs_recency_logit.params)
Intercept                  -0.035019
time_since_last_purchase    0.269215
dtype: float64
Introducere în regresia cu statsmodels în Python

Vizualizarea modelului logistic

sns.regplot(x="time_since_last_purchase",
            y="has_churned",
            data=churn,
            ci=None,
            logistic=True)
plt.axline(xy1=(0,intercept),
           slope=slope,
           color="black")

plt.show()

Un grafic de dispersie al probabilității de churn față de timpul de la ultima achiziție. Sunt afișate linii de tendință liniară și logistică, ambele indicând creșterea probabilității de churn pe măsură ce timpul de la ultima achiziție crește. Cele două linii sunt foarte apropiate, cu excepția valorilor mari ale timpului de la ultima achiziție.

Introducere în regresia cu statsmodels în Python

Zoom out

Graficul de dispersie al probabilității de churn față de timpul de la ultima achiziție, cu ambele linii de tendință. Axele sunt mai depărtate față de graficul anterior, arătând că linia logistică nu depășește intervalul zero-unu al churn-ului.

Introducere în regresia cu statsmodels în Python

Să exersăm!

Introducere în regresia cu statsmodels în Python

Preparing Video For Download...