Visualisasi data bank disini adalah visualisasi dari variabel pinjaman dengan variabel bulan dan variabel pekerjaan dengan variabel pinjaman yang berasal dari data survei pelanggan untuk pemasaran deposito berjangka. Berikut hasilnya. Membaca data dari file csv.
bank <- read.csv("D:/dataset/dataset/bank customer survey/bank_customer_survey.csv", header = T, sep=",")
Memanggil data dan deskripsis statistik data.
## age job marital education default balance housing loan contact
## 1 58 management married tertiary no 2143 yes no unknown
## 2 44 technician single secondary no 29 yes no unknown
## 3 33 entrepreneur married secondary no 2 yes yes unknown
## 4 47 blue married unknown no 1506 yes no unknown
## 5 33 unknown single unknown no 1 no no unknown
## 6 35 management married tertiary no 231 yes no unknown
## day month duration campaign pdays previous poutcome y
## 1 5 may 261 1 -1 0 unknown 0
## 2 5 may 151 1 -1 0 unknown 0
## 3 5 may 76 1 -1 0 unknown 0
## 4 5 may 92 1 -1 0 unknown 0
## 5 5 may 198 1 -1 0 unknown 0
## 6 5 may 139 1 -1 0 unknown 0
## age job marital education
## Min. :18.00 blue :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 Min. :0.000
## 1st Qu.: -1.0 1st Qu.: 0.0000 other : 1840 1st Qu.:0.000
## Median : -1.0 Median : 0.0000 success: 1511 Median :0.000
## Mean : 40.2 Mean : 0.5803 unknown:36959 Mean :0.117
## 3rd Qu.: -1.0 3rd Qu.: 0.0000 3rd Qu.:0.000
## Max. :871.0 Max. :275.0000 Max. :1.000
##
Dataset ini berisi memiliki variabel yang menjadikan data ini memiliki dua set pelanggan, pelanggan yang merupakan bagian dari iklan sebelumnya dan pelanggan yang dihubungi untuk pertama kalinya. Akan dibuat 2 data yang berbeda pelanggan lama dan pelanggan baru.
pelanggan_lama<-subset(bank, bank$poutcome != "nonexistent")
str(pelanggan_lama)
## '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",..: 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 : int 0 0 0 0 0 0 0 0 0 0 ...
Hasil yang didapat terdapat 8252 data pelanggan pada hasil iklan sebelumnya atau pelanggan lama.
pelanggan_baru<-subset(bank, bank$poutcome == "nonexistent")
Hasil yang didapat terdapat 0 data pelanggan pada hasil iklan yang baru. Sehingga data yang digunakan pada data pelanggan_lama.
library(reshape2)
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.5.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Membuat data dari model long ke wide
wide.df.old = dcast(pelanggan_lama, job ~ loan)
## Using y as value column: use value.var to override.
## Aggregation function missing: defaulting to length
head(wide.df.old)
## job no yes
## 1 admin 4180 991
## 2 blue 8048 1684
## 3 entrepreneur 1131 356
## 4 housemaid 1088 152
## 5 management 8205 1253
## 6 retired 1955 309
Membuat kolom baru untuk total no dan yes
wide.df.old$total= wide.df.old$no+wide.df.old$yes
wide.df.old
## job no yes total
## 1 admin 4180 991 5171
## 2 blue 8048 1684 9732
## 3 entrepreneur 1131 356 1487
## 4 housemaid 1088 152 1240
## 5 management 8205 1253 9458
## 6 retired 1955 309 2264
## 7 self 1350 229 1579
## 8 services 3318 836 4154
## 9 student 926 12 938
## 10 technician 6288 1309 7597
## 11 unemployed 1194 109 1303
## 12 unknown 284 4 288
Visualisasi
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.5.3
ggplot(data=wide.df.old, aes(x=job, y=total, fill=job))+geom_bar(stat="identity",position=position_dodge()) +
xlab("Pekerjaan") + ylab("Total Pekerjaan") + ggtitle("Jenis Pekerjaan Yang Sudah Mendapatkan Iklan") +
geom_text(aes(y=total/2, label=total), position=position_dodge(width = 1))+
coord_flip()
ggplot(data=wide.df.old, aes(x=job, y=yes, fill=job))+geom_bar(stat="identity",position=position_dodge()) +
xlab("Pekerjaan") + ylab("Total Yang Telah Memiliki Pinjaman") + ggtitle("Jenis Pekerjaan Yang Sudah Memiliki Pinjaman") +
geom_text(aes(y=yes/2, label=yes), position=position_dodge(width = 1))+
coord_flip()
Hasil yang didapat dalam pemasaran deposito berjangka bank adalah status pekerjaan pengusaha(entrepreneur) yang sudah melakukan pinjaman paling banyak.Jadi rekomendasi kedepannya untuk target pemasaran diutamakan adalah status perkerjaan pengusaha karena pada pekerjaan pengusaha lebih banyak dalam melakukan peminjaman uang.
Analisis bulan terhadap peminjaman uang
wide.df.old = dcast(pelanggan_lama, month ~ loan)
## Using y as value column: use value.var to override.
## Aggregation function missing: defaulting to length
head(wide.df.old)
## month no yes
## 1 apr 2574 358
## 2 aug 5643 604
## 3 dec 203 11
## 4 feb 2259 390
## 5 jan 1191 212
## 6 jul 4790 2105
Membuat kolom baru untuk total no dan yes
wide.df.old$total= wide.df.old$no+wide.df.old$yes
wide.df.old
## month no yes total
## 1 apr 2574 358 2932
## 2 aug 5643 604 6247
## 3 dec 203 11 214
## 4 feb 2259 390 2649
## 5 jan 1191 212 1403
## 6 jul 4790 2105 6895
## 7 jun 4607 734 5341
## 8 mar 451 26 477
## 9 may 11773 1993 13766
## 10 nov 3244 726 3970
## 11 oct 683 55 738
## 12 sep 549 30 579
Visualisasi
#Visualisasi
library(ggplot2)
ggplot(data=wide.df.old, aes(x=month, y=total, fill=month))+geom_bar(stat="identity",position=position_dodge()) +
xlab("Bulan") + ylab("Total Pelanggan Yang Sudah Mendapatkan iklan") + ggtitle("Total iklan Dalam Bulan") +
geom_text(aes(y=total/2, label=total), position=position_dodge(width = 1))+
coord_flip()
ggplot(data=wide.df.old, aes(x=month, y=yes, fill=month))+geom_bar(stat="identity",position=position_dodge()) +
xlab("Bulan") + ylab("Pinjaman") + ggtitle("Jumlah Yang Memiliki Pinjaman Dalam Bulan") +
geom_text(aes(y=yes/2, label=yes), position=position_dodge(width = 1))+
coord_flip()
Hasil yang didapat dari pemasaran deposito berjangka bank adalah pada bulan mei respon dari terhadapa penawaran bank paling banyak dan bulan mei mendapatkan pelanggan yang memiliki pinjaman paling banyak. Jadi rekomendasi kedepannya untuk target pemasaran adalah diutamakan pada bulan mei karena paling banyak respon pelanggan.