Data Analysis Challenge PESTA 2026
Understanding the patterns behind customer churn through machine learning.
01
Customer churn merupakan salah satu tantangan terbesar dalam industri telekomunikasi. Setiap pelanggan yang berhenti berlangganan berarti hilangnya pendapatan berulang dan biaya akuisisi yang jauh lebih besar daripada biaya retensi. Analisis ini menggunakan dataset IBM Telco Customer Churn, yang terdiri dari 7.043 pelanggan dengan informasi demografi, layanan yang digunakan, dan status langganan. Tujuannya adalah membangun model machine learning yang dapat mengidentifikasi pelanggan berisiko churn sebelum mereka benar-benar pergi, menggunakan dua pendekatan: Logistic Regression dan Random Forest.
02
Sebelum membangun model, penting untuk memahami struktur dan karakteristik dataset yang kita gunakan.
Dataset ini memiliki 23 variabel prediktif: 2 variabel numerik (tenure_months, monthly_charges) dan 21 variabel biner yang sudah di-one-hot encoding. Tidak ada missing value atau data duplikat.
03
Tidak semua pelanggan memiliki risiko churn yang sama. Dari 7.043 pelanggan, 1.869 di antaranya churn, atau sekitar seperempat dari total pelanggan.
Rasio 2.77:1 antara pelanggan tidak churn dan churn menunjukkan ketidakseimbangan kelas yang perlu ditangani. Model menggunakan class_weight='balanced' untuk mengatasi masalah ini tanpa oversampling atau undersampling.
Namun, apa yang membedakan pelanggan yang bertahan dengan pelanggan yang pergi? Untuk menjawab itu, kita perlu melihat hubungan antara setiap fitur dengan keputusan churn.
04
Untuk memahami apa yang mendorong churn, kita perlu melihat bagaimana setiap variabel berkorelasi dengan keputusan pelanggan.
Empat fitur memiliki korelasi terkuat dengan churn: tenure_months (-0.35), internet_fiber_optic (+0.31), contract_two_year (-0.30), dan payment_electronic_check (+0.30). Pelanggan baru, pengguna fiber optic, kontrak month-to-month, dan pembayaran electronic check memiliki risiko churn tertinggi.
Sebelum melangkah ke pemodelan, kita juga perlu memeriksa apakah ada fitur yang redundan karena multikolinearitas.
total_charges memiliki VIF 8.08 dan korelasi 0.826 dengan tenure_months. Korelasi dengan perkalian tenure x monthly mencapai 0.9996, membuktikan bahwa fitur ini benar-benar redundan.
05
Dari 23 fitur awal, 5 fitur dihapus berdasarkan analisis multikolinearitas dan korelasi dengan target. Hasilnya: 19 fitur digunakan untuk pemodelan.
Fitur yang dihapus: customer_id (bukan prediktif), total_charges (redundan), gender_female (korelasi 0.009), has_phone_service (korelasi 0.012), has_multiple_lines (korelasi 0.040). Semua fitur yang tersisa memiliki korelasi yang bermakna dengan churn atau memberikan informasi unik.
06
Dua model klasifikasi dibangun untuk memprediksi churn: Logistic Regression sebagai model interpretabel dan Random Forest sebagai model ensemble yang robust.
Model linear yang menghitung probabilitas churn melalui fungsi sigmoid. Interpretabel melalui koefisien regresi.
Ensemble dari banyak decision tree. Robust terhadap multikolinearitas dan menghasilkan feature importance.
Kedua model menggunakan class_weight='balanced' dan di-tuning menggunakan GridSearchCV dengan 5-fold cross-validation dan scoring F1-score. Split data: 80% train (5.634), 20% test (1.409), dengan stratifikasi proporsi churn.
07
Kedua model dievaluasi menggunakan F1-score sebagai metrik utama, didukung oleh precision, recall, dan confusion matrix.
| Metrik | Logistic Regression | Random Forest |
|---|---|---|
| F1-Score | 0.6149 | 0.6147 |
| Precision | 0.5060 | 0.5382 |
| Recall | 0.7834 | 0.7166 |
| Accuracy | 0.7395 | 0.7615 |
Kedua model memiliki F1-score hampir identik (~0.61). Logistic Regression memiliki recall lebih tinggi (0.78 vs 0.72), artinya lebih banyak pelanggan churn yang berhasil dideteksi. Random Forest memiliki precision lebih tinggi (0.54 vs 0.51), artinya lebih sedikit false alarm.
08
Memahami jenis kesalahan prediksi membantu kita menentukan strategi retensi yang tepat.
Pelanggan yang churn tetapi tidak terdeteksi. Rata-rata tenure 31 bulan, monthly charges $68.76. Karakteristik mereka tidak ekstrem, sehingga sulit dibedakan dari pelanggan non-churn. Ini adalah risiko terbesar karena pelanggan pergi tanpa intervensi.
Pelanggan tidak churn tetapi diprediksi churn. Rata-rata tenure 17.4 bulan, monthly charges $74.60. Tenure lebih pendek dan charges lebih tinggi, pola yang memang mirip dengan churn, namun ternyata loyal.
09
Koefisien +2.22 pada Logistic Regression. Pelanggan fiber optic memiliki risiko churn jauh lebih tinggi, kemungkinan karena persaingan ketat di segmen ini.
Kontrak 2 tahun (koefisien -1.46) dan 1 tahun (-0.76) secara signifikan menurunkan churn. Month-to-month adalah yang paling berisiko.
Tenure_months memiliki korelasi -0.35 dengan churn. Pelanggan yang sudah berlangganan lama sudah terikat secara psikologis dan finansial.
Recall 0.78 vs 0.72 pada Random Forest. Dalam churn prediction, mendeteksi pelanggan yang benar-benar pergi lebih berharga daripada mengurangi false alarm.
Penghapusan 5 fitur redundan tidak mengurangi performa signifikan, namun menghasilkan model yang lebih sederhana dan mudah dijelaskan kepada stakeholder bisnis.
10
Analisis ini menunjukkan bahwa churn dalam industri telekomunikasi dapat diprediksi menggunakan data demografis dan layanan pelanggan. Dari 7.043 pelanggan IBM Telco, 26.5% churn. Dua model klasifikasi dibangun: Logistic Regression (F1=0.616) dan Random Forest (F1=0.615). Logistic Regression dipilih sebagai model unggulan karena recall yang lebih tinggi (0.78), yang kritis dalam konteks churn prediction.
Fitur paling berpengaruh adalah internet fiber optic (risiko tinggi), kontrak jangka panjang (proteksi), dan tenure (proteksi). Rekomendasi retensi berfokus pada pelanggan baru, evaluasi layanan fiber optic, insentif kontrak panjang, dan migrasi ke auto-payment. Dataset yang terbatas pada data demografis dan layanan menjadi keterbatasan utama; data interaksi atau usage dapat meningkatkan performa model secara signifikan.
Analisis ini dibantu menggunakan opencode (AI coding assistant) untuk perencanaan struktur, analisis eksplorasi data, pembuatan kode preprocessing dan modeling, serta interpretasi hasil. Semua kode telah dieksekusi ulang dan diverifikasi secara manual.