Lalui lah setiap fase belajar,
1. Membaca dikit selesai jadi macam sok tahu
berjalan lah sedikit lagi untuk belajar
2. Membaca banyak selesai jadi merasa masih jauh dari pintar
berjalan lah jauh lagi untuk belajar
3. Membaca semakin banyak lebih banyak dari biasa nya menjadikan kita tahu kita tidak ada apa-apanya.
intinya ingin mengatakan mari belajar dan berbagi, karena hidup cuman setipis kertas waktunya. bayangkan kalau kita bisa kasih orang lain pintar maka indonesia jauh lebih baik perkembangan.
ahhahahaha.
langsung aja kita belajar okay.
Gambaran Umum
Customer churn adalah sebuah istilah yang digunakan untuk mengatakan atau menjelaskan bahwa pelanggan telah menghentikan layanan provider tertentu bahkan hingga pindah ke layanan provider lain. Salah satu contoh perusahaan yang melakukan penelitian customer churn adalah perusahaan telekomunikasi dan bank. Dataset yang digunakan dalam penelitian ini adalah data customer churn dari sebuah perusahaan telekomunikasi yang diperoleh dari www.bigml.com. Variabel-variabel yang ada di dalam dataset tersebut adalah sebagai berikut:
Variabel dalam dataset
State : Kode negara bagian saat customer melakukan registrasi
Account length : lama waktu sebuah akun aktif sejak customer melakukan register
Area code : kode area customer
International plan : Yes ketika melakukan dan No ketika tidak melakukan
Voice mail plan : Yes ketika melakukan dan No ketika tidak melakukan
Number vmail messages : jumlah voice mail customer sejak melakukan register
Total day minutes : jumlah menit saat melakukan panggilan di siang hari
Total day calls : jumlah panggilan di siang hari
Total day charge : jumlah biaya panggilan di siang hari
Total eve minutes : jumlah menit saat melakukan panggilan di sore hari
Total eve calls : jumlah panggilan di sore hari
Total eve charge : jumlah biaya panggilan di sore hari
Total night minutes : jumlah menit saat panggilan di malam hari
Total night calls : jumlah panggilan saat malam hari
Total night charge : jumlah biaya panggilan di malam hari
Total intl minutes : Total menit saat panggilan internasional
Total intl calls : Total panggilan internasional
Total intl charge : Total biaya panggilan internasional
Customer service calls : Jumlah panggilan ke layanan customer service
Churn : Indikasi churn dan tidak churn (true and false)
Dalam dataset yang digunakan, churn bernilai false mempunyai arti bahwa customer belum berhenti atau berpindah menggunakan layanan dari provider tersebut hingga pada saat data customer churn ini diperoleh. Sedangkan churn bernilai false mengindikasikan bahwa customer telah berhenti bahkan berpindah ke layanan provider lain pada saat data customer churn diperoleh. Dari data terebut ingin diketahui berapa peluang suatu customer akan churn. Selain itu, jumlah customer churn dapat mempengaruhi jumlah pendapatan suatu perusahaan.
Dari ulasan mengenai churn, maka akan dilakukan analisis dengan tahapan sebagai berikut:
Tahapan Analisis
- Tahapan awal akan analisis deskriptif untuk mengetahui gambaran umum dari beberapa variabel yaitu, Account length, Total.day.minutes, Total.day.charge, Total.eve.minutes, Total.eve.charge, Total.night.minutes, Total.night.charge, Total.lntl.minutes, Total.intl.charge, dan Churn.
- Tahapan kedua akan dilakukan analisis hubungan untuk mengetahui hubungan antar variabel dalam dataset customer churn.
- Tahapan ketiga akan dilakukan analisis pengaruh untuk mengetahui variabel apa saja yang dapat mempengaruhi churn atau tidaknya seorang customer.
- Tahapan keempat akan dilakukan analisis peluang untuk mengetahui berapa peluang atau probabilitas seorang konsumen akan melakukan churn.
- Tahapan terakhir akan dilakukan analisis perhitungan pendapatan untuk mengetahui pendapatan akibat terjadinya churn.
Sebelum melakukan analisis perlu dilakukan persiapan data sebagai berikut:
Persiapan Data
library (caret)
library (rpart)
library (C50)
library (rattle)
library (party)
library (partykit)
library (randomForest)
library (ROCR)
library (ggplot2)
library (reshape2)
library (car)
library (corrplot)
library (e1071)
#Input data
mydata = read.csv("D:/Churn.csv")
Deskriptif
Deskriptif merupakan langkah awal dalam melakukan analisis ini. Dari hasil deskriptif dapat dikehui gambaran data yang digunakan yang dapat diketahui dari nilai mean, median, dan juga grafik histogram.
summary(mydata)
## State Account.length Area.code International.plan
## WV : 88 Min. : 1.0 Min. :408.0 No :2396
## MN : 70 1st Qu.: 73.0 1st Qu.:408.0 Yes: 270
## NY : 68 Median :100.0 Median :415.0
## VA : 67 Mean :100.6 Mean :437.4
## AL : 66 3rd Qu.:127.0 3rd Qu.:510.0
## OH : 66 Max. :243.0 Max. :510.0
## (Other):2241
## Voice.mail.plan Number.vmail.messages Total.day.minutes Total.day.calls
## No :1933 Min. : 0.000 Min. : 0.0 Min. : 0.0
## Yes: 733 1st Qu.: 0.000 1st Qu.:143.4 1st Qu.: 87.0
## Median : 0.000 Median :179.9 Median :101.0
## Mean : 8.022 Mean :179.5 Mean :100.3
## 3rd Qu.:19.000 3rd Qu.:215.9 3rd Qu.:114.0
## Max. :50.000 Max. :350.8 Max. :160.0
##
## Total.day.charge Total.eve.minutes Total.eve.calls Total.eve.charge
## Min. : 0.00 Min. : 0.0 Min. : 0 Min. : 0.00
## 1st Qu.:24.38 1st Qu.:165.3 1st Qu.: 87 1st Qu.:14.05
## Median :30.59 Median :200.9 Median :100 Median :17.08
## Mean :30.51 Mean :200.4 Mean :100 Mean :17.03
## 3rd Qu.:36.70 3rd Qu.:235.1 3rd Qu.:114 3rd Qu.:19.98
## Max. :59.64 Max. :363.7 Max. :170 Max. :30.91
##
## Total.night.minutes Total.night.calls Total.night.charge
## Min. : 43.7 Min. : 33.0 Min. : 1.970
## 1st Qu.:166.9 1st Qu.: 87.0 1st Qu.: 7.513
## Median :201.2 Median :100.0 Median : 9.050
## Mean :201.2 Mean :100.1 Mean : 9.053
## 3rd Qu.:236.5 3rd Qu.:113.0 3rd Qu.:10.640
## Max. :395.0 Max. :166.0 Max. :17.770
##
## Total.intl.minutes Total.intl.calls Total.intl.charge
## Min. : 0.00 Min. : 0.000 Min. :0.000
## 1st Qu.: 8.50 1st Qu.: 3.000 1st Qu.:2.300
## Median :10.20 Median : 4.000 Median :2.750
## Mean :10.24 Mean : 4.467 Mean :2.764
## 3rd Qu.:12.10 3rd Qu.: 6.000 3rd Qu.:3.270
## Max. :20.00 Max. :20.000 Max. :5.400
##
## Customer.service.calls Churn
## Min. :0.000 False:2278
## 1st Qu.:1.000 True : 388
## Median :1.000
## Mean :1.563
## 3rd Qu.:2.000
## Max. :9.000
##
Berdasarkan hasil analisis deskriptif diperoleh nilai rata-rata lama waktu sebuah akun aktif adalah 100.6, rata-rata panggilan di pagi hari selama 179.9 menit dengan rata-rata biaya panggilan sebesar 30.51. Rata-rata panggilan sore hari selama 200.4 menit dengan rata-rata biaya panggilan sebesar 100. Sedangkan rata-rata lama panggilan di malam hari sebesar 100.1 menit dengan rata-rata biaya panggilan malam hari sebesar 9.053. Jumlah customer yang melakukan perpindahan layanan ke provider lain sebanyak 388 customer dan yang tidak melakukan perpindahan layanan ke provider lain sebanyak 2278.
plot.new()
hist(mydata$Account.length)
plot.new()
hist(mydata$Total.day.minutes)
plot.new()
hist(mydata$Total.day.charge)
Sebelum lanjut ke analisis berikutnya, perlu dilakukan perubahan nilai data dari kategorik menjadi nominal.
#merubah nilai data dari pada variabel yang mempunyai nilai kategorik
mydata$Churn <- as.integer(mydata$Churn)
mydata$International.plan <- as.integer(mydata$International.plan)
mydata$Voice.mail.plan <- as.integer (mydata$Voice.mail.plan)
mydata$Churn[mydata$Churn=="1"] <- 0
mydata$Churn[mydata$Churn=="2"] <- 1
mydata$International.plan[mydata$International.plan =="1"] <- 0
mydata$International.plan [mydata$International.plan =="2"] <- 1
mydata$Voice.mail.plan[mydata$Voice.mail.plan =="1"] <- 0
mydata$Voice.mail.plan[mydata$Voice.mail.plan =="2"] <- 1
Kemudian dilakukan pengeluaran beberapa variabel yang tidak digunakan
#mengeluarkan variabel yang tidak digunakan
mydata$State <- NULL
mydata$Area.code <- NULL
Dilanjutkan dengan penghapusan beberapa observasi dalam dataset yang terjadi missing
#menangani data mising
na.omit(mydata)
Analisis Hubungan
Analisis hubungan merupakan analisis kedua yang dilakukan pada data ini untuk mengetahui hubungan antar variabel yang ada pada dataset.
#Korelasi matriks
cormatrix <- round(cor(mydata), digits=2)
cormatrix
# Korelasi menggunakan ggplot2
qplot(x=Var1, y=Var2, data=melt(cor(mydata)),
fill=value, geom="tile")+ scale_fill_gradient2(limits=c(-1,1))+
theme(axis.text.x = element_text(angle = 45, vjust = 1,
size = 8, hjust = 1))+
coord_fixed()
Dari hasil plot korelasi antar variabel diperoleh beberapa variabel yang mempunyai hubungan dengan variabel Churn yaitu variabel International.plan, Total.day.minutes, Total.day.charge, Total.eve.minutes, Total.eve.charge, Total.night.minutes, Total.night.charge, Total.intl.minutes, Total.intl.charge, dan Customer.service.calls.
Analisis Pengaruh
Berdasarkan hasil anakisis korelasi maka dilanjutjan dengan analisis pengaruh dengan tujuan untuk mengetahui variabel apa saja yang dapat mempengaruhi variabel Churn.
# membagi data menjadi data training dan data test.
# 70% data sebagai data training dan 30% data sebagai data test (probabilitas (0.7, 0.3))
set.seed(1234)
ind <- sample(2, nrow(mydata), replace=TRUE, prob=c(0.7, 0.3))
trainData <- mydata[ind==1,]
testData <- mydata[ind==2,]
#Regresi logistik berdasarkan hasil korelasi
mylogit <- glm(Churn ~ International.plan + Total.day.minutes + Total.day.charge + Total.eve.minutes + Total.eve.charge + Total.night.minutes + Total.night.charge + Total.intl.minutes + Total.intl.charge + Customer.service.calls, data=testData, family = "binomial")
summary(mylogit)
##
## Call:
## glm(formula = Churn ~ International.plan + Total.day.minutes +
## Total.day.charge + Total.eve.minutes + Total.eve.charge +
## Total.night.minutes + Total.night.charge + Total.intl.minutes +
## Total.intl.charge + Customer.service.calls, family = "binomial",
## data = testData)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.0925 -0.5112 -0.3552 -0.2160 3.0074
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.00704 1.10219 -8.172 3.04e-16 ***
## International.plan 1.97340 0.29754 6.632 3.30e-11 ***
## Total.day.minutes -0.87543 6.71217 -0.130 0.896
## Total.day.charge 5.23411 39.48377 0.133 0.895
## Total.eve.minutes 1.02130 3.45180 0.296 0.767
## Total.eve.charge -11.95400 40.60942 -0.294 0.768
## Total.night.minutes 1.50953 1.87444 0.805 0.421
## Total.night.charge -33.41417 41.65441 -0.802 0.422
## Total.intl.minutes 3.58528 10.94665 0.328 0.743
## Total.intl.charge -12.95026 40.52708 -0.320 0.749
## Customer.service.calls 0.54803 0.07981 6.867 6.56e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 645.10 on 767 degrees of freedom
## Residual deviance: 509.81 on 757 degrees of freedom
## AIC: 531.81
##
## Number of Fisher Scoring iterations: 5
Hasil analisis pengaruh dapat diketahui bahwa keadaan dimana seorang customer akan melakuka churn atau tidak dipengaruhi oleh variabel International.plan dan customer.service.call. Sehingga dapat dikatakan bahwa dala kasus ini rencana internasional dan banyaknya customer melakukan panggilan layanan mempengaruhi keputusan seseorang tetap menggunakan layanan providernya atau pindah. Kemudian diperoleh model yang dapat digunakan untuk menghitung peluang customer akan melakukan churn sebagai berikut:
Peluang(Churn=1)=((exp(-9.00704+1.97340International.plan+ 0.54803Customer.srvice.calls))/(1+exp(-9.00704+1.97340International.plan+ 0.54803Customer.srvice.calls)))
Analisis Peluang
Dari model yang diperoleh pada analisis pengaruh maka akan dihitung nilai peluang sebagai berikut: Misalkan seorang customer berencana melakukan panggilan internasional dan menggunakan panggilan layanan service sebanyak 5 kali, maka peluang cutomer tersebut melakukan Churn adalah sebagai berikut:
x1 : International.plan (Yes or No)
x2 : Customer.service.calls (jumlah panggilan layanan)
#fungsi menghitung nilai peluang
prob.churn.true<-function(x1,x2){
((exp(-9.00704 + 1.97340*x1 + 0.54803*x2)) / (1+exp(exp(-9.00704 + 1.97340*x1 + 0.54803*x2))))
}
prob.churn.false<-function(x1,x2){
(1- ((exp(-9.00704 + 1.97340*x1 + 0.54803*x2)) / (1+exp(exp(-9.00704 + 1.97340*x1 + 0.54803*x2)))))
}
prob.churn.true(1,5)
## [1] 0.00678196
prob.churn.false(1,5)
## [1] 0.993218
Dari hasil analisis peluang diperoleh peluang seorang Customer akan berpindah ke layanan provider lain sebesar 0.00678196 dan peluang seseorang akan tetap mengggunkan layanan provider yang telah digunakan sebesar 0.993218
Analisis Lanjutan
Dari nilai peluang yang diperoleh, maka dapat digunakan untuk menghitung banyaknya jumlah customer yang akan melakukan churn adalah sebagai berikut:
Berdasarkan dataset yang digunakan diperoleh jumlah customer sebanyak 2666 orang
#fungsi jumlah customer melakukan churn
jumlah.customer.churn<-function(z){ (prob.churn.true(1,5))*2666}
Dari data dan kriteria yang digunakan diperoleh jumlah customer yang melakukan churn ebanyak 18.08071 ~ 18 orang customer.
Kemudian dari dapat dihitung jumlah pendapatan yang akan berkurang dikarenakan jumlah customer yang melakukan churn adalah sebagai berikut:
w = jumlah customer yang melakukan churn
100 = permisalan biaya yang harus dikeluarkan seorang customer untuk membayar layanan yang digunakan ($)
#fungsi menghitung pendapatan dari customer yangg melakukan churn
pendapatan.churn<-function(w){
w*100
}
jumlah.customer.churn(1)
## [1] 18.08071
pendapatan.churn(18)
## [1] 1800
Hasil perhitungan di atas menjelaskan bahwa sebuah perusahaan layanan telekomunikasi akan mengalami pengurangan pendapatan sebesar $1800 jika terdapat 18 orang customer melakukan perpindahan layanan ke provider lain.
Kesimpulan
Berdasarkan analisis yang dilakukan pada kasus ini, maka diperoleh beberapa kesimpulan, yaitu:
- Beberapa variabel yang mempengaruhi variabel Churn adalah variabel International.plan, Total.day.minutes, Total.day.charge, Total.eve.minutes, Total.eve.charge, Total.night.minutes, Total.night.charge, Total.intl.minutes, Total.intl.charge, dan Customer.service.calls.
- Variabel yang berpengaruh terhadap Churn adalah variabel International.plan dan Custommer.service.call.
- Peluang seorang Customer akan berpindah ke layanan provider lain dengan ketentuan akan melakukan international.plan dan 5 kali melakukan panggilan layanan adalah sebesar 0.00678196 dan peluang seseorang akan tetap mengggunkan layanan provider yang telah digunakan sebesar 0.993218.
- Jumlah customer yang melakukan perpindahan layanan provider sebanyak 18 orang.
- Jumlah pendapatan yang akan berkurang dengan jumlah customer yang melakukan churn adalah $1800.
selamat belajar
semoga bermanfaat
salam hormat
Tags:
#Artikel Statistik#R
0 komentar