Mengapa perlu regresi logistik

Pengantar Regresi dengan statsmodels di Python

Maarten Van den Broeck

Content Developer at DataCamp

Dataset churn bank

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
... ... ...
respons lama hubungan kebaruan aktivitas
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Pengantar Regresi dengan statsmodels di Python

Churn vs. recency: model linear

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
Pengantar Regresi dengan statsmodels di Python

Memvisualisasikan model linear

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

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

Scatter plot churn (0/1) vs. waktu sejak pembelian terakhir. Semua titik pada y=0 atau y=1. Garis tren linear menunjukkan probabilitas churn naik saat waktu meningkat.

Pengantar Regresi dengan statsmodels di Python

Perbesar tampilan

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

Scatter plot churn vs. waktu sejak pembelian terakhir. Sumbu diperlebar, menunjukkan garis tren turun di bawah y=0 dan naik di atas y=1, yang seharusnya tidak mungkin.

Pengantar Regresi dengan statsmodels di Python

Apa itu regresi logistik?

  • Jenis lain dari generalized linear model.
  • Digunakan saat variabel respons bersifat logis.
  • Respons mengikuti kurva logistik (berbentuk S).
Pengantar Regresi dengan statsmodels di Python

Regresi logistik dengan 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
Pengantar Regresi dengan statsmodels di Python

Memvisualisasikan model logistik

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

Scatter plot churn (ya/tidak) vs. waktu sejak pembelian terakhir. Garis tren linear dan logistik ditampilkan; keduanya menunjukkan probabilitas churn naik saat waktu sejak pembelian terakhir meningkat. Kedua garis berdekatan kecuali pada nilai waktu yang tinggi.

Pengantar Regresi dengan statsmodels di Python

Perbesar tampilan

Scatter plot churn vs. waktu sejak pembelian terakhir, dengan kedua garis tren. Sumbu diperlebar, menunjukkan garis logistik tetap dalam rentang churn 0–1.

Pengantar Regresi dengan statsmodels di Python

Ayo berlatih!

Pengantar Regresi dengan statsmodels di Python

Preparing Video For Download...