Data tersebut merupakan data mengenai telemarketing dari sebuah bank di Portugal. Menggunakan data tersebut kita dapat memprediksi calon nasabah mana yang akan membeli product ketika di telepon oleh pihak bank.
Deskripsi dari dataset Bank marketing :
bank <- read.csv("bank.csv", sep = ";")head(bank)tail(bank)dim(bank)#> [1] 4521 17
names(bank)#> [1] "age" "job" "marital" "education" "default" "balance"
#> [7] "housing" "loan" "contact" "day" "month" "duration"
#> [13] "campaign" "pdays" "previous" "poutcome" "y"
Dari pemeriksaan data diatas didapatkan bahwa :
str(bank)#> 'data.frame': 4521 obs. of 17 variables:
#> $ age : int 30 33 35 30 59 35 36 39 41 43 ...
#> $ job : chr "unemployed" "services" "management" "management" ...
#> $ marital : chr "married" "married" "single" "married" ...
#> $ education: chr "primary" "secondary" "tertiary" "tertiary" ...
#> $ default : chr "no" "no" "no" "no" ...
#> $ balance : int 1787 4789 1350 1476 0 747 307 147 221 -88 ...
#> $ housing : chr "no" "yes" "yes" "yes" ...
#> $ loan : chr "no" "yes" "no" "yes" ...
#> $ contact : chr "cellular" "cellular" "cellular" "unknown" ...
#> $ day : int 19 11 16 3 5 23 14 6 14 17 ...
#> $ month : chr "oct" "may" "apr" "jun" ...
#> $ duration : int 79 220 185 199 226 141 341 151 57 313 ...
#> $ campaign : int 1 1 1 4 1 2 1 2 2 1 ...
#> $ pdays : int -1 339 330 -1 -1 176 330 -1 -1 147 ...
#> $ previous : int 0 4 1 0 0 3 2 0 0 2 ...
#> $ poutcome : chr "unknown" "failure" "failure" "unknown" ...
#> $ y : chr "no" "no" "no" "no" ...
Dari hasil diatas diketahui bahwa ada beberapa variabel memiliki tipe data yang tidak sesuai, sehingga kita perbaiki sebagai berikut :
bank$job <- as.factor(bank$job)
bank$marital <- as.factor(bank$marital)
bank$education <- as.factor(bank$education)
bank$default <- as.factor(bank$default)
bank$housing <- as.factor(bank$housing)
bank$loan <- as.factor(bank$loan)
bank$contact <- as.factor(bank$contact)
bank$day <- as.factor(bank$day)
bank$month <- as.factor(bank$month)
bank$poutcome <- as.factor(bank$poutcome)
bank$y <- as.factor(bank$y)
str(bank)#> 'data.frame': 4521 obs. of 17 variables:
#> $ age : int 30 33 35 30 59 35 36 39 41 43 ...
#> $ job : Factor w/ 12 levels "admin.","blue-collar",..: 11 8 5 5 2 5 7 10 3 8 ...
#> $ marital : Factor w/ 3 levels "divorced","married",..: 2 2 3 2 2 3 2 2 2 2 ...
#> $ education: Factor w/ 4 levels "primary","secondary",..: 1 2 3 3 2 3 3 2 3 1 ...
#> $ default : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
#> $ balance : int 1787 4789 1350 1476 0 747 307 147 221 -88 ...
#> $ housing : Factor w/ 2 levels "no","yes": 1 2 2 2 2 1 2 2 2 2 ...
#> $ loan : Factor w/ 2 levels "no","yes": 1 2 1 2 1 1 1 1 1 2 ...
#> $ contact : Factor w/ 3 levels "cellular","telephone",..: 1 1 1 3 3 1 1 1 3 1 ...
#> $ day : Factor w/ 31 levels "1","2","3","4",..: 19 11 16 3 5 23 14 6 14 17 ...
#> $ month : Factor w/ 12 levels "apr","aug","dec",..: 11 9 1 7 9 4 9 9 9 1 ...
#> $ duration : int 79 220 185 199 226 141 341 151 57 313 ...
#> $ campaign : int 1 1 1 4 1 2 1 2 2 1 ...
#> $ pdays : int -1 339 330 -1 -1 176 330 -1 -1 147 ...
#> $ previous : int 0 4 1 0 0 3 2 0 0 2 ...
#> $ poutcome : Factor w/ 4 levels "failure","other",..: 4 1 1 4 4 1 2 4 4 1 ...
#> $ y : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
colSums(is.na(bank))#> age job marital education default balance housing loan
#> 0 0 0 0 0 0 0 0
#> contact day month duration campaign pdays previous poutcome
#> 0 0 0 0 0 0 0 0
#> y
#> 0
Dari hasil diatas diketahui data tersebut tidak terdapat missing value dan dapat dibuktikan juga dengan fungsi dibawah ini :
anyNA(bank)#> [1] FALSE
Setelah membersihkan dataset bank marketing dan mengubah tipe data agar sesuai, data siap untuk diproses dan dianalisis.
summary(bank)#> age job marital education default
#> Min. :19.00 management :969 divorced: 528 primary : 678 no :4445
#> 1st Qu.:33.00 blue-collar:946 married :2797 secondary:2306 yes: 76
#> Median :39.00 technician :768 single :1196 tertiary :1350
#> Mean :41.17 admin. :478 unknown : 187
#> 3rd Qu.:49.00 services :417
#> Max. :87.00 retired :230
#> (Other) :713
#> balance housing loan contact day
#> Min. :-3313 no :1962 no :3830 cellular :2896 20 : 257
#> 1st Qu.: 69 yes:2559 yes: 691 telephone: 301 18 : 226
#> Median : 444 unknown :1324 19 : 201
#> Mean : 1423 21 : 198
#> 3rd Qu.: 1480 14 : 195
#> Max. :71188 17 : 191
#> (Other):3253
#> month duration campaign pdays
#> may :1398 Min. : 4 Min. : 1.000 Min. : -1.00
#> jul : 706 1st Qu.: 104 1st Qu.: 1.000 1st Qu.: -1.00
#> aug : 633 Median : 185 Median : 2.000 Median : -1.00
#> jun : 531 Mean : 264 Mean : 2.794 Mean : 39.77
#> nov : 389 3rd Qu.: 329 3rd Qu.: 3.000 3rd Qu.: -1.00
#> apr : 293 Max. :3025 Max. :50.000 Max. :871.00
#> (Other): 571
#> previous poutcome y
#> Min. : 0.0000 failure: 490 no :4000
#> 1st Qu.: 0.0000 other : 197 yes: 521
#> Median : 0.0000 success: 129
#> Mean : 0.5426 unknown:3705
#> 3rd Qu.: 0.0000
#> Max. :25.0000
#>
Insight
plot(bank$y)plot(bank$marital)plot(bank$education)plot(bank$default)plot(bank$month)
Insight dari Analisis variabel kategorik:
hist(bank$age)boxplot(bank$age)hist(bank$balance)boxplot(bank$balance)hist(bank$duration)boxplot(bank$duration)hist(bank$campaign)boxplot(bank$campaign)Insight Analisis variabel numerik:
- Berapa banyak nasabah dengan jenis pekerjaan, pendidikan, jenis komunikasi dan poutcome tidak diketahui/terdata?
bank[bank$job == "unknown" & bank$education == "unknown" & bank$contact == "unknown" & bank$poutcome == "unknown", ]Answer : Terdapat 5 nasabah dengan jenis pekerjaan, pendidikan, jenis komunikasi dan poutcome tidak diketahui/terdata.
- Apakah jumlah nasabah yang memiliki pendidikan secondary lebih banyak daripada jumlah nasabah yang memiliki pendidikan primary dan tertiary secara kombinasi?
jumlah_tertiary <- sum(bank$education == "tertiary")
jumlah_primary <- sum(bank$education == "primary")
jumlah_secondary <- sum(bank$education == "secondary")
jumlah_tertiary#> [1] 1350
jumlah_primary#> [1] 678
jumlah_secondary#> [1] 2306
jumlah_secondary > (jumlah_primary + jumlah_tertiary)#> [1] TRUE
Answer : Jumlah nasabah dengan pendidikan secondary lebih banyak daripada jumlah nasabah dengan pendidikan primary dan tertiary secara kombinasi.
- Jenis komunikasi apa yang paling sedikit digunakan nasabah?
table(bank$contact)#>
#> cellular telephone unknown
#> 2896 301 1324
Answer : Jenis komunikasi telephone adalah yang paling jarang digunakan oleh nasabah, dengan jumlah nasabah sebanyak 301 orang. Jumlah ini 9 kali lebih rendah daripada jumlah nasabah yang menggunakan jenis komunikasi cellular.
- Berapa nilai rata-rata saldo (balance) dari nasabah yang memiliki pendidikan secondary? Apakah nilai rata-rata saldo ini lebih tinggi daripada jenis pendidikan lainnya?
aggregate(balance ~ education + y, data = bank, FUN = "mean")Answer : Rata-rata saldo bank dari nasabah dengan pendidikan secondary adalah 1302.559. Meskipun pendidikan secondary diikuti oleh banyak nasabah, namun jenis pendidikan lainnya memiliki rata-rata saldo yang lebih tinggi.
- Jenis pekerjaan apa yang memiliki rata rata balance (saldo bank) yang paling besar?
aggregate(x = balance ~ job,
data = bank,
FUN = "mean")Answer : Jenis pekerjaan “retired” memiliki rata-rata saldo bank yang tertinggi.
- Apakah nasabah yang memiliki pekerjaan “retired” dan pinjaman pribadi memiliki rata-rata saldo bank yang lebih tinggi daripada nasabah yang memiliki pekerjaan “retired” tetapi tidak memiliki pinjaman pribadi?
sub1 <- bank[bank$job == "retired" ,]
aggregate(balance ~ loan , data = sub1, FUN = "mean")Answer : Rata-rata saldo bank nasabah yang memiliki pekerjaan “retired” dan tidak memiliki pinjaman pribadi adalah 2504.646, yang lebih tinggi dibandingkan dengan nasabah yang memiliki pekerjaan “retired” dan memiliki pinjaman pribadi.
Berdasarkan analisis yang dilakukan terhadap data nasabah bank, beberapa kesimpulan dapat diambil. Mayoritas nasabah bank memiliki rentang usia yang luas, namun rata-rata usia nasabah adalah 41 tahun. Pekerjaan yang paling umum di antara nasabah adalah “manajemen”, dan sebagian besar nasabah sudah menikah. Mayoritas nasabah memiliki pendidikan terakhir di tingkat sekolah menengah. Sebagian besar nasabah juga memiliki kartu kredit dengan status default, dan banyak hasil dari kampanye pemasaran sebelumnya tidak diketahui. Analisis juga menunjukkan bahwa jenis komunikasi yang paling umum digunakan oleh nasabah adalah melalui telepon seluler.
Bank perlu melakukan upaya yang lebih aktif untuk mengumpulkan data yang hilang atau tidak terdata dari nasabah. Hal ini bisa dilakukan melalui kampanye pemasaran yang cermat dan penggunaan formulir atau fitur aplikasi yang memastikan kelengkapan data nasabah. Data yang lengkap dan akurat sangat penting untuk analisis yang efektif dan pengambilan keputusan bisnis yang baik. Dengan mengumpulkan data yang hilang, bank dapat memperoleh pemahaman yang lebih komprehensif tentang nasabah, memungkinkan penyusunan strategi pemasaran yang lebih efektif, pengembangan produk yang tepat sasaran, dan peningkatan pengalaman nasabah secara keseluruhan.
Bank perlu mengalokasikan lebih banyak sumber daya untuk memperkuat kanal komunikasi seluler dengan nasabah, mengembangkan aplikasi mobile banking yang canggih, atau meningkatkan layanan pelanggan melalui pesan teks atau aplikasi perpesanan. Perilaku komunikasi nasabah telah bergeser menuju penggunaan perangkat seluler, dan dengan fokus pada kanal komunikasi seluler, bank dapat memenuhi preferensi dan kebiasaan komunikasi nasabah yang semakin berorientasi pada teknologi. Ini akan memperkuat hubungan bank dengan nasabah, meningkatkan interaksi, dan memberikan pelayanan yang lebih cepat dan efisien.
Bank dapat memperluas penawaran produk dan layanan yang ditujukan khusus untuk nasabah yang telah pensiun, seperti rencana pensiun, produk investasi jangka panjang, atau asuransi kesehatan tambahan. Nasabah yang telah pensiun memiliki kebutuhan dan tujuan keuangan yang berbeda, dan dengan menyediakan solusi yang sesuai, bank dapat membantu mereka merencanakan masa depan keuangan, mengelola aset dengan bijak, dan memberikan perlindungan yang dibutuhkan. Ini akan memperkuat hubungan jangka panjang dengan nasabah dan membangun citra bank sebagai mitra keuangan yang andal dalam perjalanan pensiun mereka.