1 Data Understanding

1.1 Latar Belakang

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.

1.2 Metadata

Deskripsi dari dataset Bank marketing :

  • age : umur klien.
  • job : jenis pekerjaan.
  • marital : status perkawinan.
  • education : ‘primary’, ‘secondary’, ‘tertiary’, ‘unknown’
  • default: memiliki kredit default?
  • housing: memiliki pinjaman perumahan?
  • balance: saldo bank.
  • loan: memiliki pinjaman pribadi?
  • contact: jenis komunikasi kontak (‘cellular’,‘telephone’)
  • month: bulan kontak terakhir dalam setahun.
  • day_of_week: hari kontak terakhir dalam seminggu.
  • duration: durasi kontak terakhir, dalam detik.
  • campaign: jumlah kontak yang dilakukan selama kampanye ini dan untuk klien ini (numeric, includes last contact).
  • pdays: jumlah hari yang berlalu setelah klien terakhir dihubungi dari kampanye sebelumnya.
  • previous: jumlah kontak yang dilakukan sebelum kampanye ini dan untuk klien ini.
  • poutcome: hasil dari kampanye pemasaran sebelumnya.
  • y : deposit

2 Exploratory Data Analysis (EDA)

2.1 Baca Data

bank <- read.csv("bank.csv", sep = ";")

2.2 Pemeriksaan Data

2.2.1 Menampilkan 5 data teratas dan terbawah

head(bank)
tail(bank)

2.2.2 Menampilkan Dimensi Data

dim(bank)
#> [1] 4521   17

2.2.3 Melihat variable Bank

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 :

  • Dataset Bank Marketing terdiri dari 4521 baris dan 17 kolom
  • Nama variabel dari dataset tersebut adalah “age”, “job”, “marital”, “education”, “default”, “balance”, “housing”, “loan”, “contact”, “day”, “month”, duration”, “campaign”, “pdays”, “previous”, “poutcome”, “y”

2.3 Pembersihan Data (Data Cleaning)

2.3.1 Melihat dan Memperbaiki Tipe Data

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 ...

2.3.2 Memeriksa Missing Value

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.


3 Penjelasan Data

3.1 Ringkasan Data

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

  • Usia nasabah bank memiliki rentang minimal 19 tahun dan maksimal 87 tahun, dengan rata-rata usia nasabah sebesar 41 tahun.
  • Pekerjaan yang paling banyak dimiliki oleh nasabah adalah “manajemen”. Mayoritas nasabah sudah menikah.
  • Sekolah menengah merupakan pendidikan terakhir yang paling banyak dimiliki oleh nasabah.
  • Sebagian besar nasabah sudah memiliki kartu kredit dengan status default.
  • Terdapat 2559 nasabah yang sudah memiliki pinjaman perumahan.
  • Mayoritas nasabah sudah memiliki pinjaman pribadi.
  • Jenis komunikasi yang paling banyak digunakan oleh nasabah adalah “seluler”.
  • Rata-rata durasi kontak dengan nasabah adalah 264 detik.
  • Banyak hasil dari kampanye pemasaran sebelumnya yang belum diketahui (unknown)

3.2 Analisis variabel Kategorik

plot(bank$y)

plot(bank$marital)

plot(bank$education)

plot(bank$default)

plot(bank$month)

Insight dari Analisis variabel kategorik:

  • Mayoritas nasabah tidak melakukan deposit (nilai “no”) daripada yang melakukan (nilai “yes”).
  • Mayoritas nasabah sudah menikah (nilai “married”) dibandingkan dengan single dan divorced.
  • Hampir semua nasabah tidak memiliki kredit default (nilai “no”) dibandingkan dengan yang memiliki (nilai “yes”).
  • Kontak terakhir paling banyak dilakukan pada bulan Mei dan jumlahnya sedikit pada bulan Desember.

3.3 Analisis Variabel Numerik

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:

  • Variabel “age” memiliki skewness positif, tidak berdistribusi normal, dan terdapat outlier di atas batas atasnya.
  • Variabel “balance” memiliki skewness positif, tidak berdistribusi normal, dan terdapat outliers.
  • Variabel “duration” memiliki skewness positif, tidak berdistribusi normal, dan terdapat outlier di atas batas atasnya dengan outliers terjauh di atas 3000.
  • Variabel “campaign” memiliki skewness positif, tidak berdistribusi normal, dan terdapat outlier di atas batas atasnya dengan outliers terjauh di atas 50.

4 Manipulasi dan Transformasi Data

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.


5 Kesimpulan dan Rekomendasi Bisnis

5.1 Kesimpulan

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.

5.2 Rekomendasi Bisnis

  1. 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.

  2. 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.

  3. 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.