Einsatzzwecke logistischer Regression

Einführung in Regression mit statsmodels in Python

Maarten Van den Broeck

Content Developer at DataCamp

Daten zur Kundenabwanderung bei Banken

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
... ... ...
Antwort Dauer der Beziehung Aktualität der Aktivität
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Einführung in Regression mit statsmodels in Python

Abwanderung vs. Aktualität: ein lineares Modell

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
Einführung in Regression mit statsmodels in Python

Visualisierung des linearen Modells

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

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

Ein Streudiagramm, das zeigt, ob der Kunde abgewandert ist oder nicht, im Vergleich zur Zeit seit dem letzten Kauf. Alle Punkte liegen auf der Geraden y = 0 oder y = 1. Eine lineare Trendlinie zeigt, dass die Wahrscheinlichkeit einer Abwanderung mit zunehmender Zeit seit dem letzten Kauf steigt.

Einführung in Regression mit statsmodels in Python

Betrachtung des gesamten Graphs

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

Das Streudiagramm zeigt, ob der Kunde abgewandert ist oder nicht, im Vergleich zur Zeit seit dem letzten Kauf. Die Achsen sind im Vergleich zum letzten Mal verkleinert, was zeigt, dass die Trendlinie unterhalb von y = 0 und oberhalb von y = 1 verläuft, was eigentlich nicht sein kann.

Einführung in Regression mit statsmodels in Python

Was ist logistische Regression?

  • Eine andere Art verallgemeinertes lineares Modell.
  • Wird benutzt, wenn die Antwortvariable logisch ist.
  • Die Antworten folgen einer logistischen (S-förmigen) Kurve.
Einführung in Regression mit statsmodels in Python

Logistische Regression mit 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
Einführung in Regression mit statsmodels in Python

Das logistische Modell visualisieren

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

Ein Streudiagramm, das zeigt, ob der Kunde abgewandert ist oder nicht, im Vergleich zur Zeit seit dem letzten Kauf. Es werden lineare und logistische Trendlinien angezeigt, die beide zeigen, dass die Wahrscheinlichkeit einer Abwanderung mit zunehmender Zeit seit dem letzten Kauf steigt. Die beiden Trendlinien laufen ziemlich nah beieinander, außer seit dem letzten Kauf.

Einführung in Regression mit statsmodels in Python

Betrachtung des gesamten Graphs

Das Streudiagramm zeigt, ob der Kunde abgewandert ist oder nicht, im Vergleich zur Zeit seit dem letzten Kauf, mit beiden Trendlinien. Die Achsen sind im Vergleich zum letzten Mal verkleinert, was zeigt, dass die logistische Trendlinie nie außerhalb des Bereichs von null bis eins liegt.

Einführung in Regression mit statsmodels in Python

Lass uns üben!

Einführung in Regression mit statsmodels in Python

Preparing Video For Download...