Berikut adalah data mengenai telemarketing dari sebuah bank di Portugal. Pada LBB P4DS ini, kita dapat belajar cara membuat report/laporan menggunakan R Markdown yang akan dipublish ke rpubs.com.
Kita akan menganalisis data bank.csv yang terdapat pada folder data. Kita menggunakan fungsi read.csv() untuk membaca file CSV ke R, lalu simpanlah ke sebuah object dengan nama bank.
# code here
bank <- read.csv("data/bank.csv", sep = ";")
bank# code here
head(bank)# code here
tail(bank)# code here
dim(bank)#> [1] 45211 17
Terdapat 45.211 baris dan 17 kolom.
# code here
names(bank)#> [1] "age" "job" "marital" "education" "default" "balance"
#> [7] "housing" "loan" "contact" "day" "month" "duration"
#> [13] "campaign" "pdays" "previous" "poutcome" "y"
Deskripsi kolom di atas adalah sebagai berikut:
age = Usiajob = Pekerjaanmarital = Status kawineducation = Pendidikandefault = Apakah mempunyai kredit yang defaultbalance = Balancehousing = Apakah mempunyai KPRloan = Apakah mempunyai pinjamancontact = Jenis komunikasi yang digunakanday = Tanggal kontak terakhirmonth = Bulan kontak terakhirduration = Durasi kontak terakhir (dalam detik)campaign = Jumlah kontak yang dilakukan termasuk kontak
terakhirpdays = Jumlah hari berlalu setelah kontak
terakhirprevious = Jumlah kontak yang dilakukan sebelumnyapoutcome = hasil sebelumnyay = Apakah sudah menggunakan deposito berjangkaExplicit Coercion adalah proses mengubah tipe data ke dalam tipe data yang tepat.
# cek kembali struktur data bank
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" ...
Kita perlu mengubah tipe kolom job, marital, education, default, housing, loan, poutcome, dan y menjadi tipe factor.
# explicit coercion
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$poutcome <- as.factor(bank$poutcome)
bank$y <- as.factor(bank$y)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 : 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 : 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 ...
anyNA(bank)#> [1] FALSE
Rata- rata durasi percakapan adalah 4 menit.
mean(bank$duration) / 60#> [1] 4.302718
Terdapat 2 orang yang sukses mendapat pinjaman padahal mempunyai kredit default
table(bank$default, bank$poutcome == "success")#>
#> FALSE TRUE
#> no 42887 1509
#> yes 813 2
Pemohon kredit mayoritas dari jenjang pendidikan secondary dan tertiary
table(bank$education, bank$poutcome)#>
#> failure other success unknown
#> primary 643 244 133 5831
#> secondary 2589 987 675 18951
#> tertiary 1492 544 622 10643
#> unknown 177 65 81 1534
Pemohon kredit mayoritas dari status menikah 60%
prop.table(table(bank$marital))#>
#> divorced married single
#> 0.1151711 0.6019332 0.2828958
Pengangguran dan Pensiunan mempunyai durasi percakapan paling tinggi pada telemarketing.
result_duration <- aggregate(x = duration ~ job,
data = bank,
FUN = mean)
result_duration[order(result_duration$duration, decreasing = T),]Dari data telemarketing(bank), berapa peluang (proporsi)
calon peminjam dengan status single untuk mendapatkan pinjaman ?
prop.table(table(bank$marital))#>
#> divorced married single
#> 0.1151711 0.6019332 0.2828958
Peluang peminjam status single untuk mendapatkan pinjaman adalah sebesar 0.2828