Perkembangan layanan pesan-antar makanan online di Indonesia mengalami peningkatan pesat dalam beberapa tahun terakhir. Pada tahun 2018, sektor ini menyumbang 27,85% dari total penjualan e-commerce, menjadikannya sebagai kategori terbesar dalam perdagangan berbasis elektronik (Aprilianti & Amanta, 2020). Berbagai platform seperti ShopeeFood, GoFood, dan GrabFood saling berkompetisi menawarkan kemudahan pemesanan, harga promosi, serta kecepatan layanan untuk menarik perhatian pelanggan. Di tengah persaingan tersebut, perusahaan menghadapi tantangan besar berupa churn pelanggan, yaitu kondisi ketika pengguna berhenti melakukan transaksi atau tidak lagi aktif menggunakan layanan dalam periode tertentu (Kulkarni et al., 2023).
Salah satu platform (fiktif) yang beroperasi dalam industri ini adalah FoodRush (digunakan semata-mata untuk melatih keterampilan analisis data agar nanti memudahkan interpretasi). Tingkat churn yang tinggi akan berdampak langsung pada penurunan pendapatan perusahaan. Untuk mengatasi masalah tersebut, diperlukan pemahaman mendalam mengenai faktor-faktor yang memengaruhi churn pengguna aplikasi FoodRush. Data perilaku pelanggan dapat memberikan informasi penting, seperti lama penggunaan akun (tenure), frekuensi pemesanan, jumlah keluhan kepada customer service, keterlambatan pembayaran, total pengeluaran selama menggunakan aplikasi, serta waktu terakhir pelanggan melakukan transaksi. Variabel-variabel ini dapat menggambarkan kecenderungan perilaku pelanggan dalam menggunakan layanan.
Salah satu metode statistik yang dapat digunakan untuk membedakan pelanggan yang churn dan tidak churn adalah Analisis Diskriminan. Metode ini memanfaatkan kombinasi variabel numerik untuk memprediksi kelompok pelanggan (Churn atau tidak) berdasarkan pola perilaku pelanggan saat menggunakan aplikasi. Dengan melakukan analisis tersebut, perusahaan FoodRush dapat mengidentifikasi pelanggan yang memiliki risiko tinggi untuk churn, sehingga strategi retensi seperti penawaran voucher, perbaikan pengalaman aplikasi, dan peningkatan kualitas pelayanan dapat dilakukan secara lebih tepat sasaran.
Berdasarkan uraian latar belakang di atas, maka rumusan masalah dalam project ini adalah sebagai berikut: 1. Faktor-faktor perilaku pelanggan apa saja yang berpengaruh terhadap terjadinya churn pada pengguna layanan FoodRush? 2. Bagaimana perbedaan karakteristik antara pelanggan yang churn dan tidak churn berdasarkan variabel Age, Tenure, Usage Frequency, Support Calls, Payment Delay, Total Spend, dan Last Interaction? 3. Bagaimana membentuk model analisis diskriminan yang dapat mengklasifikasikan pelanggan FoodRush ke dalam kategori churn atau tidak churn? 4. Seberapa besar tingkat akurasi model analisis diskriminan dalam memprediksi churn pelanggan FoodRush?
Tujuan yang ingin dicapai dalam project ini adalah sebagai berikut: 1. Mengidentifikasi faktor-faktor perilaku pelanggan yang memengaruhi terjadinya churn pada pengguna layanan FoodRush. 2. Menganalisis perbedaan karakteristik antara pelanggan churn dan tidak churn berdasarkan variabel Age, Tenure, Usage Frequency, Support Calls, Payment Delay, Total Spend, dan Last Interaction. 3. Membangun model analisis diskriminan yang dapat digunakan untuk mengklasifikasikan pelanggan FoodRush ke dalam kategori churn dan tidak churn. 4. Menilai tingkat akurasi model analisis diskriminan dalam memprediksi churn pelanggan sehingga dapat menjadi dasar pengambilan keputusan bagi strategi retensi pelanggan.
Analisis diskriminan adalah metode statistik yang digunakan untuk mengelompokkan observasi ke dalam dua atau lebih kelompok berdasarkan variabel predictor (Rumeon et al., 2022). Analisis diskriminan bertujuan membentuk fungsi linear yang memaksimalkan perbedaan antar kelompok.
Model diskriminan menggunakan fungsi linear: Model diskriminan menggunakan fungsi linear:
\[ D = a_0 + a_1X_1 + \cdots + a_pX_p \]
di mana:
Multivariate Analysis of Variance (MANOVA) merupakan perluasan dari ANOVA yang digunakan untuk menguji perbedaan rata-rata lebih dari satu variabel dependen secara bersamaan. MANOVA tepat digunakan ketika variabel-variabel dependen memiliki korelasi satu sama lain sehingga tidak dianalisis secara terpisah (Vol et al., 2018).
Dalam MANOVA, beberapa statistik uji digunakan untuk mengukur apakah terdapat perbedaan rata-rata multivariat antar kelompok, antara lain Wilks’ Lambda, Pillai’s Trace, Hotelling’s Trace, dan Roy’s Largest Root. Dalam analisis diskriminan, MANOVA sering digunakan sebagai langkah awal untuk memastikan bahwa kelompok memang memiliki perbedaan mean multivariat sebelum dilakukan pembentukan fungsi diskriminan. Jika hasil MANOVA signifikan, hal tersebut mengindikasikan bahwa variabel-variabel prediktor secara bersama-sama mampu membedakan kelompok, sehingga analisis diskriminan layak untuk dilanjutkan (Carl J et al., 2005). Dengan demikian, MANOVA menjadi dasar yang penting dalam menentukan keberlanjutan dan validitas proses klasifikasi menggunakan analisis diskriminan.
Fungsi diskriminan kanonik merupakan tahapan lanjutan dalam analisis diskriminan yang bertujuan merangkum sekumpulan variabel prediktor ke dalam satu fungsi linear yang paling efektif membedakan kelompok. Setelah model diskriminan terbentuk, fungsi kanonik ini memberikan informasi mengenai sejauh mana variabel-variabel prediktor mampu memisahkan kelompok respon, seperti kelompok churn dan tidak churn.
Salah satu ukuran utama pada fungsi ini adalah canonical correlation (CanR), yaitu besarnya hubungan antara fungsi diskriminan dengan keanggotaan kelompok. Nilai CanR yang tinggi menunjukkan bahwa fungsi diskriminan memiliki kemampuan yang kuat dalam menjelaskan perbedaan antara kelompok, sedangkan nilai yang rendah mengindikasikan bahwa fungsi tersebut hanya sedikit mampu membedakan kelompok.
Selain itu, fungsi diskriminan kanonik juga menghasilkan eigenvalue, yang menggambarkan kekuatan relatif fungsi diskriminan dalam memisahkan kelompok. Semakin besar nilai eigenvalue, semakin besar pula kemampuan fungsi tersebut dalam memberikan pemisahan yang jelas antara kelompok respon. Eigenvalue inilah yang secara tidak langsung menunjukkan seberapa besar “jarak” antarkelompok pada ruang multivariat yang dibentuk oleh variabel prediktor. Dalam praktiknya, nilai eigenvalue sering diinterpretasikan bersamaan dengan canonical correlation untuk memperoleh gambaran yang lebih lengkap mengenai kualitas pemisahan yang dihasilkan model.
Komponen penting lainnya adalah standardized canonical discriminant coefficients, yang menunjukkan besarnya kontribusi relatif masing-masing variabel prediktor terhadap fungsi diskriminan setelah variabel tersebut distandarisasi. Nilai koefisien ini membantu mengidentifikasi variabel mana yang paling dominan dalam membedakan kelompok. Variabel dengan nilai koefisien absolut yang tinggi merupakan variabel yang paling banyak mempengaruhi pembentukan fungsi diskriminan, baik dalam arah positif maupun negatif. Dengan demikian, koefisien standar ini memberikan pemahaman lebih mendalam mengenai peran masing-masing variabel dalam struktur diskriminan dan membantu menjelaskan variabel mana yang menjadi pendorong utama dalam pemisahan kelompok.
Tabel klasifikasi merupakan alat evaluasi utama dalam analisis diskriminan karena menunjukkan seberapa baik model mampu mengalokasikan setiap observasi ke dalam kelompok yang benar. Menurut Hosmer dan Lemeshow (2013), akurasi keseluruhan dihitung sebagai proporsi data yang berhasil diprediksi dengan benar dibandingkan jumlah seluruh observasi. Nilai akurasi ini memberikan gambaran umum tentang kemampuan model dalam membedakan kelompok berdasarkan variabel-variabel prediktor yang digunakan. Semakin tinggi akurasi, semakin baik model dalam melakukan klasifikasi. Dalam konteks analisis churn, akurasi membantu menilai apakah fungsi diskriminan yang dihasilkan cukup efektif dalam memisahkan pelanggan yang churn dan tidak churn. Dengan demikian, tabel klasifikasi dan nilai akurasi yang menyertainya berperan penting sebagai indikator kinerja awal bagi model diskriminan sebelum dilakukan interpretasi lebih lanjut terhadap kontribusi variabel atau struktur fungsi diskriminannya.
#DATA Data yang digunakan dalam analisis ini merupakan Customer Churn Dataset, yaitu kumpulan data pelanggan yang memuat informasi terkait kebiasaan penggunaan layanan, interaksi pelanggan, dan status churn. Dataset ini diperoleh dari platform Kaggle dan dapat diakses melalui tautan berikut: https://www.kaggle.com/datasets/muhammadshahidazeem/customer-churn-dataset
Dataset ini terdiri dari beberapa variabel prediktor seperti usia pelanggan, lama berlangganan, frekuensi penggunaan layanan, jumlah panggilan ke layanan pelanggan, keterlambatan pembayaran, total pengeluaran, serta hari terakhir pelanggan berinteraksi dengan layanan. Selain itu, terdapat satu variabel respon yaitu Churn, yang menunjukkan apakah pelanggan berhenti berlangganan atau tetap menggunakan layanan.
Cuplikan sebagian data dapat dilihat pada output berikut:
> library(readxl)
> diskriminan = read_excel("C:/Users/ASUS/Documents/dataset_churn.xlsx")
> head(diskriminan)
# A tibble: 6 × 9
CustomerID `Age (X1)` `Tenure (bulan) (X2)` `Usage Frequency (bulan) (X3)`
<dbl> <dbl> <dbl> <dbl>
1 1 22 25 14
2 2 41 28 28
3 3 47 27 10
4 4 35 9 12
5 5 53 58 24
6 6 30 41 14
# ℹ 5 more variables: `Support Calls (X4)` <dbl>,
# `Payment Delay (hari) (X5)` <dbl>, `Total Spend ($) (X6)` <dbl>,
# `Last Interaction (day) (X7)` <dbl>, `Churn (Y)` <dbl>
> library(readxl)
> diskriminan = read_excel("C:/Users/ASUS/Documents/dataset_churn.xlsx")
> diskriminan
# A tibble: 21,901 × 9
CustomerID `Age (X1)` `Tenure (bulan) (X2)` `Usage Frequency (bulan) (X3)`
<dbl> <dbl> <dbl> <dbl>
1 1 22 25 14
2 2 41 28 28
3 3 47 27 10
4 4 35 9 12
5 5 53 58 24
6 6 30 41 14
7 7 47 37 15
8 8 54 36 11
9 9 36 20 5
10 10 65 8 4
# ℹ 21,891 more rows
# ℹ 5 more variables: `Support Calls (X4)` <dbl>,
# `Payment Delay (hari) (X5)` <dbl>, `Total Spend ($) (X6)` <dbl>,
# `Last Interaction (day) (X7)` <dbl>, `Churn (Y)` <dbl>
> colnames(diskriminan)[2:8] = c("Age","Tenure","UsageFreq",
+ "Calls","PaymentDelay",
+ "TotalSpend","LastInteraction")
> head(diskriminan)
# A tibble: 6 × 9
CustomerID Age Tenure UsageFreq Calls PaymentDelay TotalSpend
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 22 25 14 4 27 598
2 2 41 28 28 7 13 584
3 3 47 27 10 2 29 757
4 4 35 9 12 5 17 232
5 5 53 58 24 9 2 533
6 6 30 41 14 10 10 500
# ℹ 2 more variables: LastInteraction <dbl>, `Churn (Y)` <dbl>
> diskriminan$Churn = factor(diskriminan$`Churn (Y)`,
+ levels = c(0,1),
+ labels = c("TidakChurn","Churn"))
>
> head(diskriminan$Churn)
[1] Churn TidakChurn TidakChurn TidakChurn TidakChurn TidakChurn
Levels: TidakChurn Churn
Berikut merupakan sintax yang digunakan untuk mengidentifikasi normalitas data
> library(MVN)
> cek_normalitas <- mvn(
+ data = diskriminan[, 2:8],
+ multivariate_outlier_method = "adj",
+ show_new_data = TRUE
+ )
R Markdown tidak mampu mengeksekusi fungsi mvn() untuk
seluruh 21.901 observasi karena keterbatasan memori. Oleh karena itu,
sintaks berikut dijalankan di Console R (saat eksplorasi),
sedangkan di laporan hanya ditampilkan kodenya dan ringkasan
hasilnya.
Berikut merupakan hasil lengkap dari uji normalitas menggunakan
fungsi mvn() yang dijalankan melalui Console
R.
> library(MVN)
> #(Menggunakan log X+1 karena banyak nilai 0) pada variabel prediktor
> disk_log = diskriminan
> disk_log[, 2:8] = log(disk_log[, 2:8] + 1)
> disk_log
# A tibble: 21,901 × 10
CustomerID Age Tenure UsageFreq Calls PaymentDelay TotalSpend
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 3.14 3.26 2.71 1.61 3.33 6.40
2 2 3.74 3.37 3.37 2.08 2.64 6.37
3 3 3.87 3.33 2.40 1.10 3.40 6.63
4 4 3.58 2.30 2.56 1.79 2.89 5.45
5 5 3.99 4.08 3.22 2.30 1.10 6.28
6 6 3.43 3.74 2.71 2.40 2.40 6.22
7 7 3.87 3.64 2.77 2.30 3.37 6.35
8 8 4.01 3.61 2.48 0 2.94 5.78
9 9 3.61 3.04 1.79 2.40 2.20 6.53
10 10 4.19 2.20 1.61 1.10 3.18 6.90
# ℹ 21,891 more rows
# ℹ 3 more variables: LastInteraction <dbl>, `Churn (Y)` <dbl>, Churn <fct>
Berikut merupakan sintaks yang digunakan untuk mengidentifikasi normalitas data
> #(Menggunakan log X+1 karena banyak nilai 0) pada variabel prediktor
> library(MVN)
> cek_normalitas2 = mvn(data = disk_log[, 2:8],
+ multivariate_outlier_method = "adj",
+ show_new_data = TRUE)
>
R Markdown tidak mampu mengeksekusi fungsi mvn() untuk
seluruh 21.901 observasi karena keterbatasan memori. Oleh karena itu,
sintaks berikut dijalankan di Console R (saat eksplorasi),
sedangkan di laporan hanya ditampilkan kodenya dan ringkasan
hasilnya.
Berikut merupakan hasil lengkap dari uji normalitas menggunakan
fungsi mvn() yang dijalankan melalui Console
R.
> X = as.matrix(diskriminan[, 2:8])
> Y = diskriminan$Churn
> #MANOVA
> manova_model = manova(X ~ Y)
> #Uji Wilks’ Lambda
> hasil_wilks = summary(manova_model, test = "Wilks")
> hasil_wilks
Df Wilks approx F num Df den Df Pr(>F)
Y 1 0.64762 1701.7 7 21893 < 2.2e-16 ***
Residuals 21899
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> library(candisc)
> cc = candisc(manova_model)
> cc
Canonical Discriminant Analysis for Y:
CanRsq Eigenvalue Difference Percent Cumulative
1 0.35238 0.54411 100 100
Test of H0: The canonical correlations in the
current row and all that follow are zero
LR test stat approx F numDF denDF Pr(> F)
1 0.64762 1701.7 7 21893 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> library(MASS)
> library(caret)
> X = diskriminan[,2:8]
> Y = diskriminan$Churn
> data_akhir = data.frame(Y,X)
> model_diskriminan = lda(Y ~ ., data = data_akhir)
> model_diskriminan
Call:
lda(Y ~ ., data = data_akhir)
Prior probabilities of groups:
TidakChurn Churn
0.7406511 0.2593489
Group means:
Age Tenure UsageFreq Calls PaymentDelay TotalSpend
TidakChurn 41.13328 28.88490 16.11442 4.466741 12.51927 558.1332
Churn 42.48169 35.36866 13.92518 6.400000 22.37482 516.1891
LastInteraction
TidakChurn 15.52851
Churn 15.40035
Coefficients of linear discriminants:
LD1
Age 0.0080601677
Tenure 0.0205937140
UsageFreq -0.0257156478
Calls 0.1763022492
PaymentDelay 0.1135720266
TotalSpend -0.0005262919
LastInteraction -0.0003207492
> prediksi_diskriminan = predict(model_diskriminan, data_akhir)
> table(actual = data_akhir$Y,
+ predicted = prediksi_diskriminan$class)
predicted
actual TidakChurn Churn
TidakChurn 14882 1339
Churn 2129 3551
>
> Akurasi = ((14882+3551)/21901) *100
> Akurasi
[1] 84.16511
> diskriminan
# A tibble: 21,901 × 10
CustomerID Age Tenure UsageFreq Calls PaymentDelay TotalSpend
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 22 25 14 4 27 598
2 2 41 28 28 7 13 584
3 3 47 27 10 2 29 757
4 4 35 9 12 5 17 232
5 5 53 58 24 9 2 533
6 6 30 41 14 10 10 500
7 7 47 37 15 9 28 574
8 8 54 36 11 0 18 323
9 9 36 20 5 10 8 687
10 10 65 8 4 2 23 995
# ℹ 21,891 more rows
# ℹ 3 more variables: LastInteraction <dbl>, `Churn (Y)` <dbl>, Churn <fct>
Pada tahap awal, data diimpor dari file Excel menggunakan fungsi read_excel() dari package readxl dan disimpan ke dalam objek bernama diskriminan. Output yang ditampilkan menunjukkan beberapa baris pertama dari total 21.901 observasi dengan sembilan variabel, yaitu CustomerID, Age (X1), Tenure (X2), Usage Frequency (X3), Support Calls (X4), Payment Delay (X5), Total Spend (X6), Last Interaction (X7), dan Churn (Y). Tampilan ini memastikan bahwa data telah berhasil terbaca dengan benar.
Uji normalitas dilakukan menggunakan fungsi mvn() dari package MVN untuk mengevaluasi apakah variabel‐variabel prediktor (Age, Tenure, UsageFreq, Calls, PaymentDelay, TotalSpend, dan LastInteraction) mengikuti distribusi normal, baik secara multivariat maupun univariat. Berdasarkan output, uji Henze–Zirkler menunjukkan nilai p-value < 0.001, sehingga data tidak memenuhi asumsi normalitas multivariat. Selain itu, seluruh uji normalitas univariat menggunakan Anderson–Darling juga menghasilkan p-value < 0.001, yang berarti setiap variabel prediktor tidak berdistribusi normal. Kondisi ini wajar untuk dataset besar seperti data perilaku pelanggan, yang biasanya memiliki distribusi skewed.
Kemudian, transformasi logaritma dilakukan pada seluruh variabel prediktor (Age, Tenure, UsageFreq, Calls, PaymentDelay, TotalSpend, dan LastInteraction) untuk mengurangi skewness dan mencoba memperbaiki asumsi normalitas. Transformasi ini menggunakan fungsi log(X + 1) karena beberapa variabel memiliki nilai 0 sehingga tidak dapat langsung dilakukan logaritma. Setelah transformasi diterapkan, data ditampilkan ulang dan nilai-nilai setiap variabel berubah mengikuti skala logaritmik. Namun, hasil uji normalitas menggunakan fungsi mvn() menunjukkan bahwa seluruh variabel prediktor masih tidak memenuhi asumsi normalitas, baik secara univariat (Anderson–Darling) maupun secara multivariat (Henze–Zirkler), yang ditunjukkan oleh p-value < 0.001 pada seluruh pengujian. Dengan demikian, transformasi log tidak berhasil memperbaiki distribusi data. Meski begitu, analisis diskriminan tetap dapat dilanjutkan karena teknik ini masih cukup robust terhadap pelanggaran asumsi normalitas, terutama pada dataset besar seperti yang digunakan dalam penelitian ini.
> hasil_wilks
Df Wilks approx F num Df den Df Pr(>F)
Y 1 0.64762 1701.7 7 21893 < 2.2e-16 ***
Residuals 21899
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Berdasarkan hasil MANOVA menggunakan Wilks’ Lambda, diperoleh nilai p-value < 2.2e-16 yang jauh lebih kecil dari alpha (0,05). Hasil ini menunjukkan bahwa terdapat perbedaan yang signifikan secara multivariat antara dua kelompok pelanggan, yaitu kelompok yang churn dan tidak churn, berdasarkan kombinasi tujuh variabel prediktor yang digunakan (Age, Tenure, UsageFreq, Calls, PaymentDelay, TotalSpend, dan LastInteraction). Dengan kata lain, secara keseluruhan, pola rata-rata dari variabel-variabel tersebut berbeda secara signifikan antara pelanggan yang berhenti menggunakan layanan dan yang tetap aktif, sehingga model diskriminan layak untuk dilanjutkan.
> cc
Canonical Discriminant Analysis for Y:
CanRsq Eigenvalue Difference Percent Cumulative
1 0.35238 0.54411 100 100
Test of H0: The canonical correlations in the
current row and all that follow are zero
LR test stat approx F numDF denDF Pr(> F)
1 0.64762 1701.7 7 21893 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> model_diskriminan
Call:
lda(Y ~ ., data = data_akhir)
Prior probabilities of groups:
TidakChurn Churn
0.7406511 0.2593489
Group means:
Age Tenure UsageFreq Calls PaymentDelay TotalSpend
TidakChurn 41.13328 28.88490 16.11442 4.466741 12.51927 558.1332
Churn 42.48169 35.36866 13.92518 6.400000 22.37482 516.1891
LastInteraction
TidakChurn 15.52851
Churn 15.40035
Coefficients of linear discriminants:
LD1
Age 0.0080601677
Tenure 0.0205937140
UsageFreq -0.0257156478
Calls 0.1763022492
PaymentDelay 0.1135720266
TotalSpend -0.0005262919
LastInteraction -0.0003207492
Pada output lda() ditampilkan prior probabilities, yaitu proporsi awal setiap kelompok sebelum model dijalankan. Nilai 0,7407 untuk TidakChurn menunjukkan bahwa sekitar 74,07% pelanggan berada pada kelompok tersebut, sedangkan 0,2593 atau 25,93% berada pada kelompok Churn.
Bagian group means menunjukkan rata-rata masing-masing variabel prediktor di dalam setiap kelompok. Terlihat bahwa rata-ratanya bervariasi (berbeda-beda), misalnya, pelanggan Churn rata-rata memiliki Tenure dan UsageFreq lebih rendah dibanding pelanggan TidakChurn, sementara Calls dan PaymentDelay lebih tinggi. Perbedaan rata-rata inilah yang menjadi dasar pemisahan kelompok oleh fungsi diskriminan.
Selanjutnya, koefisien pada kolom LD1 menggambarkan kontribusi setiap variabel dalam membentuk fungsi diskriminan.
Calls (0.1763) memiliki pengaruh positif paling kuat, yang artinya semakin sering pelanggan mengajukan komplain, semakin cenderung pelanggan masuk kelompok Churn.
UsageFreq (-0.0257) memiliki pengaruh negatif terbesar, yang artinya semakin besar (sering) penggunaan aplikasi, semakin kecil peluang Churn.
Dari koefisien tersebut, fungsi diskriminan (LD1) dapat dituliskan sebagai berikut: \[ \text{LD1} = 0.00806(\text{Age}) + 0.02059(\text{Tenure}) - 0.02572(\text{UsageFreq}) + 0.17630(\text{Calls}) + 0.11357(\text{PaymentDelay}) - 0.00050(\text{TotalSpend}) - 0.00030(\text{LastInteraction}) \]
> prediksi_diskriminan = predict(model_diskriminan, data_akhir)
> table(actual = data_akhir$Y,
+ predicted = prediksi_diskriminan$class)
predicted
actual TidakChurn Churn
TidakChurn 14882 1339
Churn 2129 3551
>
> Akurasi = ((14882+3551)/21901) *100
> Akurasi
[1] 84.16511
Berdasarkan tabel klasifikasi, model diskriminan dapat mengidentifikasi 14.882 data Tidak Churn dengan benar dari total 16.221 data aktual, serta mengklasifikasikan 3.551 data Churn dengan benar dari total 5.660 data aktual. Hal ini menunjukkan bahwa model memiliki kemampuan yang cukup baik dalam membedakan pelanggan yang churn dan tidak churn. Nilai akurasi keseluruhan sebesar 84,16% mengindikasikan bahwa model dapat memberikan prediksi yang tepat pada sebagian besar data. Dengan demikian, model diskriminan yang dibangun dapat dianggap memiliki performa yang baik dan layak digunakan untuk analisis lebih lanjut, terutama dalam memetakan pola perilaku pelanggan berdasarkan variabel-variabel prediktor.
Berdasarkan hasil analisis diskriminan terhadap 21.901 data pelanggan menggunakan tujuh variabel prediktor (Age, Tenure, Usage Frequency, Support Calls, Payment Delay, Total Spend, dan Last Interaction), diperoleh beberapa kesimpulan sebagai berikut:
Asumsi normalitas multivariat dan univariat tidak terpenuhi, baik sebelum maupun setelah transformasi log. Namun, dengan jumlah data yang besar, pelanggaran asumsi ini masih dapat ditoleransi pada analisis diskriminan karena Teorema Limit Pusat membuat estimasi tetap stabil.
Hasil MANOVA menunjukkan nilai Wilks’ Lambda yang signifikan (p < 0,001). Artinya, terdapat perbedaan yang signifikan antara kelompok Churn dan Tidak Churn berdasarkan variabel prediktor yang digunakan.
Analisis kanonik menghasilkan nilai Canonical R² sebesar 0,352, yang berarti sekitar 35,2% variasi dalam keanggotaan kelompok dapat dijelaskan oleh kombinasi linear variabel prediktor. Nilai eigenvalue sebesar 0,544 menunjukkan bahwa fungsi diskriminan memiliki kemampuan pemisahan yang cukup kuat terhadap dua kelompok.
Fungsi diskriminan yang terbentuk menunjukkan bahwa Support Calls dan Payment Delay menjadi variabel dengan kontribusi paling besar terhadap pemisahan kelompok.
Model menghasilkan akurasi klasifikasi sebesar 84,16%, yang menunjukkan bahwa model cukup baik dalam memprediksi apakah seorang pelanggan akan churn atau tidak.
Aprilianti, I., & Amanta, F. (2020). Memajukan Keamanan Pangan pada Layanan Pesan Antar Makanan Daring di Indonesia. Center for Indonesian Policy Studies, 28, 7. https://repository.cips-indonesia.org/publications/324009/memajukan-keamanan-pangan-pada-layanan-pesan-antar-makanan-daring-di-indonesia
Huberty, C. J., & Olejnik, S. (2005). Applied MANOVA and discriminant analysis (2nd ed.). John Wiley & Sons. https://doi.org/10.1002/0471718947X
Hosmer, D. W., & Lemeshow, S. (2013). Applied logistic regression (3rd ed.). Wiley. https://doi.org/10.1002/9781118548387
Kulkarni, S. A., Upadhyay, Y. D., Shah, N., & Nair, S. (2023). Customer Churn Prediction using Customer Data and Reviews. Proceedings of 3rd International Conference on Advanced Computing Technologies and Applications, ICACTA 2023, 1–6. https://doi.org/10.1109/ICACTA58201.2023.10393246
Rumeon, R., Talakua, M. W., & Persulessy, E. R. (2022). Penggunaan Analisis Diskriminan Dalam Menentukan Tingkat Kemiskinan Di Provinsi Maluku Tahun 2015. PARAMETER: Jurnal Matematika, Statistika Dan Terapannya, 1(1), 15–28. https://doi.org/10.30598/parameterv1i1pp15-28