1 Pendahuluan

Sebuah bank asal portugal melakukan kampanye marketing dari Mei 2008 sampai November 2010 dengan menggunakan metode telemarketing, kampanye dilakukan dengan melakukan penggilan telepon ke nomor klien atau nasabah untuk menawarkan produk deposito berjangka.

Dari kampanye tersebut, menghasilkan sebuah dataset yang berisi tentang informasi klien selama kampanye berlangsung, dan hasil dari kampanye tersebut secara individual.

Dengan melakukan analisa menggunakan dataset tersebut, diharapkan hasil dari analisa ini mampu untuk menjawab pertanyaan berikut:

  1. Berapa tingkat kesuksesan dalam menawarkan produk kepada klien secara keseluruhan?

  2. Jumlah penawaran yang sukses terbanyak ada pada klien dengan pekerjaan apa?

  3. Tingkat kesuksesan penawaran yang terbanyak ada pada klien dengan tingkat pendidikkan apa?

  4. Berapa saldo rekening secara umum yang dimiliki oleh klien-klien yang penawarannya sukses?

  5. Untuk kampanye selanjutnya, sebaiknya apa yang perlu dilakukan agar bisa mendapatkan tingkat kesuksesan yang lebih baik?

2 Persiapan Data

Pada tahap ini akan dilakukan pembacaan data yang kemudian akan diberikan nama “bank”.

# read
bank <- read.csv2("data_input/bank-full.csv")

2.1 Inspeksi Data

# inspect
head(bank)
# inspect
tail(bank)
# inspect
dim(bank)
#> [1] 45211    17
# inspect
str(bank)
#> 'data.frame':    45211 obs. of  17 variables:
#>  $ age      : int  58 44 33 47 33 35 28 42 58 43 ...
#>  $ job      : chr  "management" "technician" "entrepreneur" "blue-collar" ...
#>  $ marital  : chr  "married" "single" "married" "married" ...
#>  $ education: chr  "tertiary" "secondary" "secondary" "unknown" ...
#>  $ default  : chr  "no" "no" "no" "no" ...
#>  $ balance  : int  2143 29 2 1506 1 231 447 2 121 593 ...
#>  $ housing  : chr  "yes" "yes" "yes" "yes" ...
#>  $ loan     : chr  "no" "no" "yes" "no" ...
#>  $ contact  : chr  "unknown" "unknown" "unknown" "unknown" ...
#>  $ day      : int  5 5 5 5 5 5 5 5 5 5 ...
#>  $ month    : chr  "may" "may" "may" "may" ...
#>  $ duration : int  261 151 76 92 198 139 217 380 50 55 ...
#>  $ campaign : int  1 1 1 1 1 1 1 1 1 1 ...
#>  $ pdays    : int  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
#>  $ previous : int  0 0 0 0 0 0 0 0 0 0 ...
#>  $ poutcome : chr  "unknown" "unknown" "unknown" "unknown" ...
#>  $ y        : chr  "no" "no" "no" "no" ...

Dari hasil inspeksi, dapat kita ketahui bahwa ada 45.211 baris data, dan 17 kolom data, kolom data tersebut meliputi:

  1. “age”, yaitu usia klien

  2. “job”, yaitu pekerjaan klien, meliputi “admin.”,“unknown”,“unemployed”,“management”,“housemaid”,“entrepreneur”,“student”,“blue-collar”,“self-employed”,“retired”,“technician”,“services”.

  3. “marital”, yaitu status pernikahan klien, meliputi “married”,“divorced”,“single”.

  4. “education”, yaitu tingkat pendidikan klien, meliputi “unknown”,“secondary”,“primary”,“tertiary”.

  5. “default”, yaitu apakah klien memiliki kartu kredit, meliputi “yes” dan “no”.

  6. “balance”, yaitu saldo rekening rata-rata tahunan yang dimiliki klien.

  7. “housing”, yaitu apakah klien memiliki cicilan rumah, meliputi “yes” dan “no”.

  8. “loan”, yaitu apakah klien memiliki pinjaman, meliputi “yes” dan “no”.

  9. “contact”, yaitu jenis kontak klien yang dimiliki dan dihubungi, meliputi “unknown”,“telephone”,“cellular”.

  10. “day”, yaitu kapan tanggal terakhir klien dihubungi pada “month”.

  11. “month”, yaitu kapan bulan terakhir klien di hubungi.

  12. “duration”, yaitu durasi panggilan/telepon terakhir.

  13. “campaign”, yaitu jumlah telepon atau upaya kontak pada klien selama kampanye berlangsung.

  14. “pdays”, yaitu sudah berapa hari sejak klien terakhir kali di kontak di kampanye sebelumnya, -1 artinya belum pernah dihubungi sejak kampanye sebelumnya.

  15. “previous”, yaitu jumlah kontak yang dilakukan sebelum kampanye mulai.

  16. “poutcome”, yaitu hasil dari penawaran/kampanye yang dilakukan pada klien ini, meliputi “unknown”,“other”,“failure”,“success”.

  17. “y”, yaitu apakah klien sudah pernah menggunakan deposit berjangka sebelumnya, meliputi “yes” dan “no”.

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 kode diatas diketahui bahwa tidak ada missing values pada dataset kita.

2.2 Pembersihan Data

Dari hasil inspeksi diatas kita mengetahui bahwa sebagian tipe data belum tepat, pada bagian ini kita akan mengoreksi tipe data dan membersihkan data.

#Konversi ke Data Categori
bank$job <- as.factor(bank$job)
bank$marital <- as.factor(bank$marital)
bank$education <- as.factor(bank$education)
bank$contact <- as.factor(bank$contact)
bank$month <- as.factor(bank$month)
bank$poutcome <- as.factor(bank$poutcome)
bank$default <- as.factor(bank$default)
bank$housing <- as.factor(bank$housing)
bank$loan <- as.factor(bank$loan)
bank$y <- as.factor(bank$y)

Sehingga hasilnya menjadi seperti ini:

str(bank)
#> 'data.frame':    45211 obs. of  17 variables:
#>  $ age      : int  58 44 33 47 33 35 28 42 58 43 ...
#>  $ job      : Factor w/ 12 levels "admin.","blue-collar",..: 5 10 3 2 12 5 5 3 6 10 ...
#>  $ marital  : Factor w/ 3 levels "divorced","married",..: 2 3 2 2 3 2 3 1 2 3 ...
#>  $ education: Factor w/ 4 levels "primary","secondary",..: 3 2 2 4 4 3 3 3 1 2 ...
#>  $ default  : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 2 1 1 ...
#>  $ balance  : int  2143 29 2 1506 1 231 447 2 121 593 ...
#>  $ housing  : Factor w/ 2 levels "no","yes": 2 2 2 2 1 2 2 2 2 2 ...
#>  $ loan     : Factor w/ 2 levels "no","yes": 1 1 2 1 1 1 2 1 1 1 ...
#>  $ contact  : Factor w/ 3 levels "cellular","telephone",..: 3 3 3 3 3 3 3 3 3 3 ...
#>  $ day      : int  5 5 5 5 5 5 5 5 5 5 ...
#>  $ month    : Factor w/ 12 levels "apr","aug","dec",..: 9 9 9 9 9 9 9 9 9 9 ...
#>  $ duration : int  261 151 76 92 198 139 217 380 50 55 ...
#>  $ campaign : int  1 1 1 1 1 1 1 1 1 1 ...
#>  $ pdays    : int  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
#>  $ previous : int  0 0 0 0 0 0 0 0 0 0 ...
#>  $ poutcome : Factor w/ 4 levels "failure","other",..: 4 4 4 4 4 4 4 4 4 4 ...
#>  $ y        : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...

3 Penjelasan Data

summary(bank)
#>       age                 job           marital          education    
#>  Min.   :18.00   blue-collar:9732   divorced: 5207   primary  : 6851  
#>  1st Qu.:33.00   management :9458   married :27214   secondary:23202  
#>  Median :39.00   technician :7597   single  :12790   tertiary :13301  
#>  Mean   :40.94   admin.     :5171                    unknown  : 1857  
#>  3rd Qu.:48.00   services   :4154                                     
#>  Max.   :95.00   retired    :2264                                     
#>                  (Other)    :6835                                     
#>  default        balance       housing      loan            contact     
#>  no :44396   Min.   : -8019   no :20081   no :37967   cellular :29285  
#>  yes:  815   1st Qu.:    72   yes:25130   yes: 7244   telephone: 2906  
#>              Median :   448                           unknown  :13020  
#>              Mean   :  1362                                            
#>              3rd Qu.:  1428                                            
#>              Max.   :102127                                            
#>                                                                        
#>       day            month          duration         campaign     
#>  Min.   : 1.00   may    :13766   Min.   :   0.0   Min.   : 1.000  
#>  1st Qu.: 8.00   jul    : 6895   1st Qu.: 103.0   1st Qu.: 1.000  
#>  Median :16.00   aug    : 6247   Median : 180.0   Median : 2.000  
#>  Mean   :15.81   jun    : 5341   Mean   : 258.2   Mean   : 2.764  
#>  3rd Qu.:21.00   nov    : 3970   3rd Qu.: 319.0   3rd Qu.: 3.000  
#>  Max.   :31.00   apr    : 2932   Max.   :4918.0   Max.   :63.000  
#>                  (Other): 6060                                    
#>      pdays          previous           poutcome       y        
#>  Min.   : -1.0   Min.   :  0.0000   failure: 4901   no :39922  
#>  1st Qu.: -1.0   1st Qu.:  0.0000   other  : 1840   yes: 5289  
#>  Median : -1.0   Median :  0.0000   success: 1511              
#>  Mean   : 40.2   Mean   :  0.5803   unknown:36959              
#>  3rd Qu.: -1.0   3rd Qu.:  0.0000                              
#>  Max.   :871.0   Max.   :275.0000                              
#> 

Dari summary di atas kita bisa memperoleh beberapa data sebagai berikut:

  1. Umur klien berkisar antara 18 tahun hingga 95 tahun, dengan mayoritas berkisar diantara umur 33 tahun hingga 48 tahun.
  2. Jenis pekerjaan klien paling banyak adalah jenis “blue-collar”, dan diikuti oleh jenis “management” dan “technician”.
  3. Dari segi status pernikahan, klien kebanyakan sudah menikah.
  4. Berdasarkan tingkat pendidikan, klien mayoritas adalah secondary dan disusul oleh tertiary
  5. Berdasarkan default, klien hampir semuanya tidak memiliki kartu kredit.
  6. Dari segi Balance, kebanyakan klien memiliki saldo rekening sekitar 448 euro.
  7. Lebih dari setengah dari klien kita, memiliki cicilan rumah.
  8. Sebagian besar dari klien kita, tidak memiliki pinjaman (loan).
  9. Metode telemarketing secara umum menggunakan nomor kontak seluler ketimbang telepon.
  10. Durasi ketika menghubungi klien secara umum berkisar di antara 180 detik, atau 3 menit.
  11. Dilihat dari campaign, semua klien sudah dicoba untuk dihubungi setidaknya sekali, dan kebanyakaan telah dicoba untuk dihubungi sebanyak 2 kali.
  12. Dilihat dari “pdays”, kebanyakan adalah -1, artinya kebanyakan klien belum pernah dihubungi sejak kampanye sebelumnya.
  13. Dilihat dari “previous”, secara garis besar nilainya adalah 0, artinya secara umum klien belum pernah dihubungi oleh marketing bahkan sebelum kampanye ini dimulai, artinya kebanyakan telepon yang dilakukan dalam kampanye ini merupakan yang perdana, atau upaya bank untuk menghubungi nasabah untuk pertama kalinya.
  14. Dilihat dari “poutcome”, didominasi oleh “unknown”, dan “success” adalah yang paling sedikit jumlahnya.
  15. Dilihat dari “y”, kebanyakan klien belum pernah menggunakan deposito berjangka.

4 Manipulasi Data dan Transformasi Data

  1. Berapa tingkat kesuksesan dalam menawarkan produk kepada klien secara keseluruhan?
round(prop.table(table(bank$poutcome))*100,2)
#> 
#> failure   other success unknown 
#>   10.84    4.07    3.34   81.75

Jawaban: Tingkat keberhasilan dalam menawarkan produk kampanye ini adalah 3.34%

  1. Jumlah penawaran yang sukses terbanyak ada pada klien dengan pekerjaan apa?
round(prop.table(table(bank$job, bank$poutcome), margin = 1)*100,2)
#>                
#>                 failure other success unknown
#>   admin.          12.43  4.66    3.95   78.96
#>   blue-collar     10.97  4.12    1.52   83.38
#>   entrepreneur    11.03  2.62    1.48   84.87
#>   housemaid        7.82  2.10    2.34   87.74
#>   management      11.04  4.16    4.09   80.71
#>   retired         10.16  3.67    7.69   78.49
#>   self-employed   10.45  3.86    3.48   82.20
#>   services        10.69  4.26    2.05   83.00
#>   student         12.47  8.64    9.28   69.62
#>   technician      10.49  3.94    3.22   82.35
#>   unemployed       8.60  2.84    4.91   83.65
#>   unknown          6.94  0.69    3.82   88.54
table(bank$job, bank$poutcome)
#>                
#>                 failure other success unknown
#>   admin.            643   241     204    4083
#>   blue-collar      1068   401     148    8115
#>   entrepreneur      164    39      22    1262
#>   housemaid          97    26      29    1088
#>   management       1044   393     387    7634
#>   retired           230    83     174    1777
#>   self-employed     165    61      55    1298
#>   services          444   177      85    3448
#>   student           117    81      87     653
#>   technician        797   299     245    6256
#>   unemployed        112    37      64    1090
#>   unknown            20     2      11     255

Jawaban: Jenis pekerjaan klien yang memiliki jumlah penawaran yang sukses terbanyak adalah Management, yaitu sebanyak 387 penawaran yang sukses, namun jika dilihat dari tingkat kesuksesan penawaran tertinggi ada pada kalangan student dengan tingkat keberhasilan penawaran sebesar 9.28% sedangkan management hanya memiliki tingkat keberhasilan sebesar 4.09%, dan sedangkan kalangan blue-collar yang merupakan mayoritas dari golongan klien-klien kita, justru memiliki tingkat kesuksesan yang lebih kecil, yaitu 1.52%, technician juga merupakan golongan yang perlu di pertimbangkan, karena golongannya adalah yang terbesar ketiga dengan tingkat kesuksesan 3.22%, sementara admin memiliki tingkat kesuksesan sebesar 3.95%.

  1. Tingkat kesuksesan penawaran yang terbanyak ada pada klien dengan tingkat pendidikkan apa?
round(prop.table(table(bank$education, bank$poutcome), margin = 1)*100,2)
#>            
#>             failure other success unknown
#>   primary      9.39  3.56    1.94   85.11
#>   secondary   11.16  4.25    2.91   81.68
#>   tertiary    11.22  4.09    4.68   80.02
#>   unknown      9.53  3.50    4.36   82.61

Jawaban: Tingkat kesuksesan penawaran yang tertinggi ada pada klien dengan tingkat pendidikan tertiary dengan tingkat kesuksesan sebesar 4.68%

  1. Berapa saldo rekening secara umum yang dimiliki oleh klien-klien yang penawarannya sukses?
bank_success <- bank[bank$poutcome == "success",]
ggplot(data = bank_success, mapping = aes(x = "Klien",  y = balance)) +
# Second layer
geom_boxplot()

# Third layer

Dari boxplot diatas dapat kita lihat bahwa saldo rekening klien-klien kita tidak tersebar secara merata dan terdapat beberapa klien dengan saldo rekening yang sangat menonjol, yaitu yang saldonya melebihi 20000 euro, sedangkan secara umumnya, klien kita memiliki saldo rekening di sekitar 2000 euro ke bawah, dalam menjelaskan ini, boxplot akan kita batasi sampai ke 5000 euro.

bank_success <- bank[bank$poutcome == "success",]
ggplot(data = bank_success, mapping = aes(x = "Klien",  y = balance)) +
geom_boxplot()+
coord_cartesian(ylim = c(0, 5000))

Dari boxplot diatas yang sudah kita batasi limitnya ke 5000 euro, baru terlihat bahwa saldo klien kita secara garis besarnya adalah berada di angka kurang dari 1000, sekitar 900 euro. untuk lebih detailnya kita bisa memeriksa dengan lebih teliti melalui median di summary di bawah ini.

summary(bank_success$balance)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>    -405     294     920    1939    2316   81204

Jawaban: Saldo rekening klien-klien yang penawarannya sukses, secara umum berada di kisaran 920 euro

summary(bank_success$housing)
#>   no  yes 
#> 1040  471
round(prop.table(summary(bank_success$housing))*100,2)
#>    no   yes 
#> 68.83 31.17

Dari summary housing di atas, klien-klien yang penawarannya sukses, cenderung tidak memiliki cicilan rumah, yakni sebesar 68.83%

summary(bank_success$loan)
#>   no  yes 
#> 1429   82

Dari summary loan di atas, klien-klien yang penawarannya sukses, cenderung tidak memiliki pinjaman/loan.

plot(bank$y)

round(prop.table(summary(bank$y))*100,2)
#>   no  yes 
#> 88.3 11.7

Sebanyak 88.3% klien kita belum pernah menggunakan deposito berjangka

5 Kesimpulan dan Rekomendasi Bisnis

5.1 Kesimpulan

  1. Umur klien berkisar antara 18 tahun hingga 95 tahun, dengan mayoritas berkisar diantara umur 33 tahun hingga 48 tahun.
  2. Berdasarkan tingkat pendidikan, klien mayoritas adalah secondary dan disusul oleh tertiary, sedangkan tingkat kesuksesan penawaran tertinggi ada pada klien dengan tingkat pendidikan tertiary.
  3. Dari segi Balance, kebanyakan klien memiliki saldo rekening sekitar 448 euro., sedangkan saldo rekening dari klien-klien yang penawarannya sukses berada di kisaran 920 euro
  4. Lebih dari setengah dari klien kita, memiliki cicilan rumah, sedangkan klien-klien yang penawarannya sukses, cenderung tidak memiliki cicilan rumah., yakni sebesar 68.83%
  5. Sebagian besar dari klien kita, tidak memiliki pinjaman (loan).
  6. Dilihat dari campaign, semua klien sudah dicoba untuk dihubungi setidaknya sekali, dan kebanyakaan telah dicoba untuk dihubungi sebanyak 2 kali.
  7. Dilihat dari “pdays”, kebanyakan adalah -1, artinya sebagian besar klien belum pernah dihubungi sejak kampanye sebelumnya.
  8. Dilihat dari “previous”, secara garis besar nilainya adalah 0, artinya secara umum klien belum pernah dihubungi oleh marketing bahkan sebelum kampanye ini dimulai, artinya kebanyakan telepon yang dilakukan dalam kampanye ini merupakan yang perdana, atau upaya bank untuk menghubungi nasabah untuk pertama kalinya.
  9. Dilihat dari “poutcome”, didominasi oleh “unknown”, dan “success” adalah yang paling sedikit jumlahnya, yaitu 3.34%.
  10. Dilihat dari “y”, kebanyakan klien belum pernah menggunakan deposito berjangka, yakni sebesar 88.3% ini artinya masih terdapat peluang yang sangat besar dalam menawarkan deposito berjangka.

5.2 Rekomendasi Bisnis

Berdasarkan hasil analisis, terdapat beberapa rekomendasi bisnis yang dapat disampaikan dan sekaligus menjawab pertanyaan bisnis no. 5.

Meninjau Ulang Pemakaian Status Pada Poutcome Dalam Proses Gathering Data

Dari data diatas, sebagian besar hasil dari telemarketing adalah “unknown”, yang tidak dapat memberikan gambaran yang jelas dari hasil suatu penawaran telemarketing, dari status unknown seharusnya dapat dipisahkan lagi dengan status yang lebih menggambarkan hasil dari suatu penawaran, misalnya “Considering” untuk “klien yang sedang mempertimbangkan”, “Wrong Contact Number” untuk kasus salah nomor telepon, dan lain sebagainya, sangat disayangkan jika data-data yang telah dikumpulkan hanya disimpulkan dengan kata “unknown” dan “other”, ini perlu dilakukan agar di analisa masa mendatang bisa menghasilkan insight yang lebih bagus.

Memperkecil Ruang Lingkup Kampanye Telemarketing

Untuk kampanye di masa mendatang, sebaiknya lebih memprioritaskan klien dengan jenis pekerjaan management, teknisi, dan admin yang saldo rata-rata tahunannya di atas 600 euro, dan sebaiknya memprioritaskan klien yang tidak memiliki cicilan rumah. Selain dapat menghemat sumber daya kampanye, kampanye yang memiliki target yang terarah dapat menghasilkan performa yang lebih optimal. Jika memiliki sumber daya extra, cobalah untuk melakukan kampanye di golongan retired dan self-employed dengan syarat yang sama.

Kampanye Akuisisi Klien Baru Khusus Untuk Golongan Student

Dari data bisa kita lihat bahwa tingkat kesuksesan penawaran tertinggi ada di kalangan Student dengan angka 9.28%, namun sangat disayangkan bahwa populasi klien-klien di golongan Student ini sangat kecil, jadi dengan program akuisisi klien baru yang menargetkan Student/pelajar, diharapkan agar populasi Student dapat bertambah dan turut meningkatkan performa kampanye di masa mendatang.