data = read.csv("project.csv")
Membaca
> #set library
Data External > library(ggplot2)
> library(RColorBrewer)
> colnames(data)
[1] "X" "NAMA_NASABAH"
[3] "NOMOR_KONTRAK" "DOMISILI"
[5] "KARAKTER" "PROFESI"
[7] "KONDISI_USAHA" "KONDISI_JAMINAN"
[9] "STATUS" "PRODUK"
[11] "PYD" "TENOR"
[13] "OSL" "KEWAJIBAN"
[15] "KOLEKTIBILITAS" "COUNT_SURVEY"
[17] "REKOMENDASI_TINDAK_LANJUT"
summary(data$OSL)
Membaca
#colnames(data)
Data 2 str(data)
Subbab Kode
> summary(data$OSL)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 3999950 8687350 26562373 32082900 440932336
> #colnames(data)
> str(data)
'data.frame': 1000 obs. of 17 variables:
$ X : int 0 1 2 3 4 5 6 7 8 9 ...
$ NAMA_NASABAH : chr "YOLI SEPINA NAINGGOLAN" "ERWIN NASUTION"
"HUSIN" "HARITSYAH" ...
$ NOMOR_KONTRAK : int 0 1 2 3 4 5 6 7 8 9 ...
$ DOMISILI : chr "MASIH TETAP" "MASIH TETAP" "MASIH TETAP"
"PINDAH PERMANEN" ...
$ KARAKTER : chr "KOOPERATIF" "TIDAK KOOPERATIF" "TIDAK
KOOPERATIF" "KOOPERATIF" ...
$ PROFESI : chr "IBU RUMAH TANGGA" "NELAYAN" "LAINNYA"
"PNS" ...
$ KONDISI_USAHA : int 2 3 3 1 1 1 3 2 2 3 ...
$ KONDISI_JAMINAN : chr "Baik" "Rusak" "Baik" "Rusak" ...
$ STATUS : int 2 8 8 7 8 7 7 7 7 3 ...
$ PRODUK : int 3 3 3 3 3 3 3 3 3 3 ...
$ PYD : int 30000000 10000000 60000000 90000000
150000000 40000000 60000000 7500000 45000000 50000000 ...
$ TENOR : int 24 12 24 18 18 36 36 4 24 36 ...
$ OSL : int 28750000 2040693 0 0 19844807 27298726
19999200 7500000 45000000 6944100 ...
$ KEWAJIBAN : int 4896841 0 0 0 0 2208516 6946592 0 0
7730984 ...
$ KOLEKTIBILITAS : chr "DALAM PENGAWASAN KHUSUS" "MACET" "MACET"
"MACET" ...
$ COUNT_SURVEY : int 1 1 1 1 1 1 2 2 1 1 ...
$ REKOMENDASI_TINDAK_LANJUT: chr "Angsuran Biasa" "Penarikan" "Penarikan"
"Angsuran Biasa" ...
data_reduce = data[-c(1,2)]
Membaca
Data 3 > data_reduce = data[-c(1,2)]
data_kategorik =
data_reduce[,c("KONDISI_USAHA","KONDISI_JAMINAN","REKOMENDASI_TINDAK_LANJUT")]
chisq.test(data_kategorik$KONDISI_JAMINAN, data_kategorik$KONDISI_USAHA)
par(mfrow=c(2,2))
data_reduce$REKOMENDASI_TINDAK_LANJUT =
as.factor(data_reduce$REKOMENDASI_TINDAK_LANJUT)
> chisq.test(data_kategorik$KONDISI_JAMINAN, data_kategorik$KONDISI_USAHA)
> par(mfrow=c(2,2))
> data_reduce$REKOMENDASI_TINDAK_LANJUT =
as.factor(data_reduce$REKOMENDASI_TINDAK_LANJUT)
Subbab Kode
library(corrplot)
M = cor(data_reduce[,8:11])
corrplot(M, type="upper", order="hclust")
corrplot(M,
method='number',
type="lower")
colnames(data_reduce)
data_select =
data_reduce[,c("KARAKTER","KONDISI_USAHA","KONDISI_JAMINAN","STATUS","KEWAJIBAN
Pendahuluan ","OSL","KOLEKTIBILITAS","REKOMENDASI_TINDAK_LANJUT")]
data_non_na = na.omit(data_select)
Subbab Kode
> colnames(data_reduce)
[1] "NOMOR_KONTRAK" "DOMISILI"
[3] "KARAKTER" "PROFESI"
[5] "KONDISI_USAHA" "KONDISI_JAMINAN"
[7] "STATUS" "PRODUK"
[9] "PYD" "TENOR"
[11] "OSL" "KEWAJIBAN"
[13] "KOLEKTIBILITAS" "COUNT_SURVEY"
[15] "REKOMENDASI_TINDAK_LANJUT"
> data_select =
+
data_reduce[,c("KARAKTER","KONDISI_USAHA","KONDISI_JAMINAN","STATUS","KEWAJIBAN
","OSL","KOLEKTIBILITAS","REKOMENDASI_TINDAK_LANJUT")]
train = data_select_new[index,]
test = data_select_new[-index,]
Training Data > library(caret)
summary(multinom_model)
exp(coef(multinom_model))
head(round(fitted(multinom_model),2))
train2$ClassPredicted = predict(multinom_model, newdata = train2, "class")
> require(nnet)
> summary(multinom_model)
Call:
multinom(formula = REKOMENDASI_TINDAK_LANJUT ~ ., data = train2)
Coefficients:
(Intercept) KARAKTERTIDAK KOOPERATIF KONDISI_USAHA
Diskon Pelunasan -3.324257 1.891718 -0.7383018
Penarikan -7.251101 3.916988 0.6791476
Restrukturisasi -4.173932 -2.135538 0.9961923
KONDISI_JAMINANHilang KONDISI_JAMINANPindah Tangan
Diskon Pelunasan -22.6176453 -24.9113561
Penarikan 0.7461125 0.2961668
Restrukturisasi 0.5024383 -13.2427492
KONDISI_JAMINANRusak STATUS KEWAJIBAN(5,15]
Diskon Pelunasan -23.6135378 0.1083507 0
Penarikan -1.1669910 0.1247397 0
Restrukturisasi 0.1430118 0.3273114 0
KEWAJIBAN(15,30] OSL(3,10] OSL(10,15]
Diskon Pelunasan -3.571247 2.9537695 0
Penarikan 0.942512 -22.0680565 0
Restrukturisasi 24.843835 0.3507391 0
KOLEKTIBILITASDIRAGUKAN KOLEKTIBILITASKURANG LANCAR
Diskon Pelunasan 2.7448985 0.2678781
Penarikan 4.2241086 0.8638934
Restrukturisasi -0.2650776 -0.1955865
KOLEKTIBILITASLANCAR KOLEKTIBILITASMACET
Diskon Pelunasan 0.1152006 0.5904995
Penarikan -27.4208540 1.5800785
Restrukturisasi 0.8538697 -3.3199930
Std. Errors:
(Intercept) KARAKTERTIDAK KOOPERATIF KONDISI_USAHA
Diskon Pelunasan 0.4286027 NaN NaN
Penarikan 1.0503544 NaN 0.8998869
Restrukturisasi NaN NaN 0.7659660
KONDISI_JAMINANHilang KONDISI_JAMINANPindah Tangan
Diskon Pelunasan 0.08120852 NaN
Penarikan NaN NaN
Restrukturisasi NaN 3.660919e-06
KONDISI_JAMINANRusak STATUS KEWAJIBAN(5,15] KEWAJIBAN(15,30]
Diskon Pelunasan 0.466017002 NaN NaN NaN
Penarikan 0.883358164 NaN NaN 1.263938
Restrukturisasi 0.004955741 NaN 8.147288e-20 NaN
OSL(3,10] OSL(10,15] KOLEKTIBILITASDIRAGUKAN
Subbab Kode
Diskon Pelunasan 0.3245671 NaN 0.6319447
Penarikan 1.0508316 NaN NaN
Restrukturisasi 0.2874094 NaN NaN
KOLEKTIBILITASKURANG LANCAR KOLEKTIBILITASLANCAR
Diskon Pelunasan 0.9680766 NaN
Penarikan 1.1676764 1.4194791
Restrukturisasi 0.1607224 0.1195614
KOLEKTIBILITASMACET
Diskon Pelunasan 0.1129287
Penarikan 1.0126723
Restrukturisasi NaN
> exp(coef(multinom_model))
(Intercept) KARAKTERTIDAK KOOPERATIF KONDISI_USAHA
Diskon Pelunasan 0.0359992493 6.630750 0.4779248
Penarikan 0.0007093927 50.248881 1.9721959
Restrukturisasi 0.0153916206 0.118181 2.7079510
KONDISI_JAMINANHilang KONDISI_JAMINANPindah Tangan
Diskon Pelunasan 1.504116e-10 1.517524e-11
Penarikan 2.108786e+00 1.344694e+00
Restrukturisasi 1.652746e+00 1.773157e-06
KONDISI_JAMINANRusak STATUS KEWAJIBAN(5,15] KEWAJIBAN(15,30]
Diskon Pelunasan 5.556110e-11 1.114439 1 2.812077e-02
Penarikan 3.113022e-01 1.132854 1 2.566420e+00
Restrukturisasi 1.153743e+00 1.387233 1 6.159430e+10
OSL(3,10] OSL(10,15] KOLEKTIBILITASDIRAGUKAN
Diskon Pelunasan 1.917811e+01 1 15.5630337
Penarikan 2.605943e-10 1 68.3135791
Restrukturisasi 1.420117e+00 1 0.7671464
KOLEKTIBILITASKURANG LANCAR KOLEKTIBILITASLANCAR
Diskon Pelunasan 1.3071878 1.122098e+00
Penarikan 2.3723793 1.233884e-12
Restrukturisasi 0.8223522 2.348718e+00
KOLEKTIBILITASMACET
Diskon Pelunasan 1.80488967
Penarikan 4.85533700
Restrukturisasi 0.03615309
> head(round(fitted(multinom_model),2))
Angsuran Biasa Diskon Pelunasan Penarikan Restrukturisasi
2 0.47 0.00 0.52 0.01
3 0.21 0.02 0.76 0.00
4 0.98 0.00 0.00 0.02
5 0.41 0.20 0.38 0.00
6 0.69 0.03 0.00 0.28
7 0.25 0.00 0.00 0.75
> df = train_prob
> round((sum(diag(tab_train))/sum(tab_train))*100,4)
[1] 68.3824
> round((sum(diag(tab_test))/sum(tab_test))*100,4)
[1] 70.8333