German Credit Data bersumber dari UCI Repository of Machine Learning Databases tersedia untuk umum di disini. Dataset ini mengklasifikasikan orang-orang yang dijelaskan oleh serangkaian atribut atau peubah penjelas sebagai risiko kredit baik atau buruk. Terdapat 700 sampel yang tergolong risiko kredit baik dan 300 sampel tergolong risiko kredit macet. Terdapat 20 peubah penjelas yang diukur dalam German Credit Data, termasuk 7 peubah penjelas numerik dan 13 peubah penjelas kategorik. Atribut-atribut tersebut merupakan faktor risiko yang digunakan untuk membedakan antara kelompok berisiko tinggi dan kelompok berisiko rendah (Chen, 2018).
| Nama Variabel | Tipe Variabel | Deskripsi |
|---|---|---|
| Creditability | Kategorik | Status Kredit |
| Account Balance | Kategorik | Rekening Koran |
| Duration of Credit (month) | Numerik | Durasi Kredit |
| Payment Status of Previous Credit | Kategorik | Riwayat Kredit |
| Purpose | Kategorik | Tujuan Kredit |
| Credit Amount | Numerik | Jumlah Kredit |
| Value Savings/Stocks | Kategorik | Rekening Tabungan/Obligasi |
| Length of current employment | Kategorik | Lama Bekerja |
| Instalment per cent | Numerik | Tingkat angsuran dalam persentase pendapatan yang dapat disisihkan |
| Sex & Marital Status | Kategorik | Jenis Kelamin dan Status |
| Guarantors | Kategorik | Debitur Lain |
| Duration in Current address | Numerik | Lama tinggal di alamat sekarang |
| Most valuable available asset | Kategorik | Properti atau Aset Paling Berharga |
| Age (years) | Numerik | Usia |
| Concurrent Credits | Kategorik | Cicilan Lainnya |
| Type of apartment | Kategorik | Jenis tempat tinggal |
| No of Credits at this Bank | Numerik | Jumlah Kredit yang ada di Bank ini |
| Occupation | Kategorik | Pekerjaan |
| No of dependents | Numerik | Jumlah tanggungan |
| Telephone | Kategorik | Langganan Telepon |
| Foreign Worker | Kategorik | Status Pekerja Asing |
Sebelum melakukan analisis lebih lanjut perlu dilakukan pemanggilan
packages dan data. Dimana packages yang akan digunakan adalah
car, ResourceSelection, pscldan
aod. Untuk import data akan menggunakan
read.csv, data akan diimport dari link berikut
library(aod)
library(car)## Loading required package: carData
library(pscl)## Classes and Methods for R developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University
## Simon Jackman
## hurdle and zeroinfl functions by Achim Zeileis
library(ResourceSelection)## ResourceSelection 0.3-5 2019-07-22
german_credit<-read.csv("https://online.stat.psu.edu/stat857/sites/onlinecourses.science.psu.edu.stat857/files/german_credit/index.csv")
german_credit=german_credit[,c(1,2,3,6,7,8,9,10,12,14,15,17,18,4)]
head(german_credit,n=7)Sebelum data diproses menggunakan teknik data mining, data mentah perlu dipersiapkan terlebih dahulu. Pre-processing data merupakan proses yang dilakukan untuk meningkatkan kualitas data mentah, sehingga dapat meningkatkan akurasi serta efisiensi untuk proses data mining selanjutnya. Apabila input data berkualitas, maka akan menghasilkan analisis data yang berkualitas (Han dkk., 2012).
Pada pre-processing data ini dilakukan partisi pada dataset menjadi dua yaitu data latih dan data uji. Data latih merupakan data yang digunakan untuk membangun model sedangkan data uji digunakan untuk menguji model yang telah didapatkan. Adapun persentase partisi yang digunakan adalah 80% untuk data latih dan 20% untuk data uji.
Ilustrasi Partisi Data
set.seed(998)
kelas0<-subset(german_credit,german_credit$Creditability==0)
kelas1<-subset(german_credit,german_credit$Creditability==1)
k0_p<-sample(1:nrow(kelas0), size = round(0.8*nrow(kelas0)), replace=FALSE)
k1_p<-sample(1:nrow(kelas1), size = round(0.8*nrow(kelas1)), replace=FALSE)
latih<-rbind(kelas0[k0_p,],kelas1[k1_p,])
uji<-rbind(kelas0[-k0_p,],kelas1[-k1_p,])
f_data_asli<-as.vector(table(german_credit$Creditability))
f_data_latih<-as.vector(table(latih$Creditability))
f_data_uji<-as.vector(table(uji$Creditability))
nama_data<-c("Data Asli","Data Latih","Data Uji")
partisi_data<-data.frame(nama_data,rbind(f_data_asli,f_data_latih,f_data_uji))
rownames(partisi_data)<-NULL
colnames(partisi_data)<-c("Data","Kelas_0","Kelas_1")
partisi_dataSebelum melakukan pemodelan terlebih dahulu dilakukan pengubahan tipe variabel pada variabel kategorik ke factor.
cat_var=c(2,5,6,8,11,13,14)
for (i in cat_var){
latih[,i]<-as.factor(latih[,i])
uji[,i]<-as.factor(uji[,i])
}Sifat peubah data memiliki dua kriteria yaitu data kontinu dan data diskret, maka penanganan atau pendekatan yang dilakukan terhadap masing-masing kumpulan data akan berlainan. Pendekatan untuk variabel respons yang merupakan variabel kualitatif (dichotomy atau binary) dapat digunakan analisis regresi logistik. Regresi logistik biner adalah suatu model yang menggambarkan hubungan antara beberapa peubah penjelas dengan sebuah peubah respons biner (Sari, 2018).
Berikut adalah model awal regresi logistik biner. Model ini akan dilakukan pengujian asumsi yaitu Uji Multikolinieritas dan Uji Signifikasi Parameter yaitu Uji Serentak dengan Ratio Likelihood dan Uji Parsial dengan Uji Wald.
modelA<-glm(Creditability~.,data=latih,family="binomial")
summary(modelA)##
## Call:
## glm(formula = Creditability ~ ., family = "binomial", data = latih)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.7563 -0.7833 0.4095 0.7562 2.0970
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -6.345e-01 1.098e+00 -0.578 0.563503
## Account.Balance2 4.673e-01 2.281e-01 2.049 0.040509 *
## Account.Balance3 9.288e-01 4.007e-01 2.318 0.020436 *
## Account.Balance4 1.919e+00 2.498e-01 7.683 1.55e-14 ***
## Duration.of.Credit..month. -1.980e-02 9.722e-03 -2.037 0.041650 *
## Credit.Amount -1.364e-04 4.583e-05 -2.977 0.002912 **
## Value.Savings.Stocks2 9.107e-02 3.157e-01 0.288 0.773000
## Value.Savings.Stocks3 2.019e-01 4.489e-01 0.450 0.652873
## Value.Savings.Stocks4 1.647e+00 5.870e-01 2.806 0.005009 **
## Value.Savings.Stocks5 8.373e-01 2.740e-01 3.056 0.002243 **
## Length.of.current.employment2 -1.788e-01 4.609e-01 -0.388 0.698039
## Length.of.current.employment3 -1.138e-01 4.393e-01 -0.259 0.795541
## Length.of.current.employment4 5.649e-01 4.716e-01 1.198 0.231033
## Length.of.current.employment5 -3.578e-02 4.442e-01 -0.081 0.935789
## Instalment.per.cent -3.316e-01 9.403e-02 -3.526 0.000421 ***
## Sex...Marital.Status2 3.360e-01 4.042e-01 0.831 0.405820
## Sex...Marital.Status3 9.064e-01 3.962e-01 2.288 0.022147 *
## Sex...Marital.Status4 6.401e-01 4.805e-01 1.332 0.182761
## Duration.in.Current.address -1.060e-02 8.825e-02 -0.120 0.904375
## Age..years. 1.322e-02 9.420e-03 1.403 0.160485
## Concurrent.Credits2 1.508e-01 4.531e-01 0.333 0.739326
## Concurrent.Credits3 4.318e-01 2.614e-01 1.652 0.098536 .
## No.of.Credits.at.this.Bank -2.111e-01 2.120e-01 -0.996 0.319354
## Occupation2 5.756e-01 7.361e-01 0.782 0.434243
## Occupation3 4.169e-01 7.117e-01 0.586 0.558000
## Occupation4 6.389e-01 7.110e-01 0.899 0.368871
## Payment.Status.of.Previous.Credit1 -1.384e-01 6.088e-01 -0.227 0.820139
## Payment.Status.of.Previous.Credit2 6.967e-01 4.944e-01 1.409 0.158840
## Payment.Status.of.Previous.Credit3 8.273e-01 5.495e-01 1.505 0.132223
## Payment.Status.of.Previous.Credit4 1.226e+00 5.031e-01 2.436 0.014855 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 977.38 on 799 degrees of freedom
## Residual deviance: 757.22 on 770 degrees of freedom
## AIC: 817.22
##
## Number of Fisher Scoring iterations: 5
Multikolinearitas adalah keadaan dimana terdapat hubungan yang linier antar beberapa atau semua peubah bebas. Suatu model dikatakan baik apabila tidak mengandung multikolinearitas. Model yang tidak mengandung multikolinearitas memiliki nilai Variance Inflation Factor (VIF) < 10. Nilai VIF > 10 mengindikasikan terdapat multikolinearitas pada peubah penjelas (Myers, 1990).
vif(modelA)## GVIF Df GVIF^(1/(2*Df))
## Account.Balance 1.296684 3 1.044253
## Duration.of.Credit..month. 1.788627 1 1.337396
## Credit.Amount 2.294223 1 1.514669
## Value.Savings.Stocks 1.316471 4 1.034967
## Length.of.current.employment 2.234035 4 1.105697
## Instalment.per.cent 1.312784 1 1.145768
## Sex...Marital.Status 1.329195 3 1.048572
## Duration.in.Current.address 1.229594 1 1.108871
## Age..years. 1.366883 1 1.169138
## Concurrent.Credits 1.353966 2 1.078703
## No.of.Credits.at.this.Bank 1.754086 1 1.324419
## Occupation 1.931043 3 1.115917
## Payment.Status.of.Previous.Credit 2.257578 4 1.107147
Berdasarkan output diatas dapat dilihat bahwa semua peubah penjelas tidak ada yang memiliki nilai VIF lebih dari 10 sehingga dapat disimpulkan bahwa belum cukup untuk membuktikan bahwa terjadi multikolinieritas pada model.
Pengujian serentak dilakukan untuk memeriksa signifikansi koefisien β secara keseluruhan (Hosmer & Lemeshow, 2000) dengan hipotesis sebagai berikut.
Keputusan tolak \(H_{0}\) jika \(G^2\) > \(\chi_{(13,0.05)}\)
pR2(modelA)## fitting null model for pseudo-r2
## llh llhNull G2 McFadden r2ML r2CU
## -378.6105618 -488.6914416 220.1617597 0.2252564 0.2405814 0.3411149
cat('Nilai Chi Square Tabel :',qchisq(0.05,13))## Nilai Chi Square Tabel : 5.891864
Berdasarkan hasil output tersebut dapat dilihat bahwa nilai \(G^2 > \chi^2_{13,0.05}\) sehingga dapat diambil keputusan untuk menolak \(H_{0}\) yang artinya dapat kita yakini bahwa terdapat minimal satu peubah penjelas yang signifikan terhadap peubah respon.
Pengujian secara parsial dilakukan untuk mengetahui signifikansi setiap parameter terhadap variabel respon. Pengujian signifikansi parameter menggunakan uji Wald (Hosmer & Lemeshow, 2000) dengan hipotesis sebagai berikut.
Keputusan tolak \(H_{0}\) jika p=value < 0.05
sX1<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 2:4)$result[[1]][-2])
sX2<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 5)$result[[1]][-2])
sX3<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 6)$result[[1]][-2])
sX4<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 7:10)$result[[1]][-2])
sX5<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 11:14)$result[[1]][-2])
sX6<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 15)$result[[1]][-2])
sX7<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 16:18)$result[[1]][-2])
sX8<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 19)$result[[1]][-2])
sX9<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 20)$result[[1]][-2])
sX10<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 21:22)$result[[1]][-2])
sX11<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 23)$result[[1]][-2])
sX12<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 24:26)$result[[1]][-2])
sX13<-as.vector(wald.test(b=coef(modelA),Sigma=vcov(modelA),Terms = 27:30)$result[[1]][-2])
latih_ny=latih[,-1]
uji_wald<-cbind(as.vector(colnames(latih_ny)),as.data.frame(rbind(sX1,sX2,sX3,sX4,sX5,sX6,sX7,sX8,sX9,sX10,sX11,sX12,sX13)))
rownames(uji_wald)<-NULL
colnames(uji_wald)<-c("Variabel","Chi-Square","p-value")
uji_wald$Keputusan=ifelse(uji_wald$`p-value`<0.05,"Signifikan","Tidak Signifikan")
uji_waldBerdasarkan hasil output diatas dapat dilihat peubah penjelas seperti Account Balance, Duration Credit, Payment Status, Purpose, Credit Amount, Value Savings, Instalment Percent dan Sex Marital Status dapat kita yakini berpengaruh signifikan terhadap peubah respon Credibiality karena p-value < 0.05.
signifikan<-subset(uji_wald,uji_wald$Keputusan=="Signifikan")
var_model_signifikan=c(as.vector(colnames(latih))[1],as.vector(signifikan$Variabel))
var_model_signifikan[-1]## [1] "Account.Balance" "Duration.of.Credit..month."
## [3] "Credit.Amount" "Value.Savings.Stocks"
## [5] "Instalment.per.cent" "Sex...Marital.Status"
## [7] "Payment.Status.of.Previous.Credit"
latih_baru<-latih[,var_model_signifikan]
modelB<-glm(Creditability~.,data=latih_baru,family="binomial")
summary(modelB)##
## Call:
## glm(formula = Creditability ~ ., family = "binomial", data = latih_baru)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.7266 -0.8392 0.4280 0.7731 2.1519
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 7.001e-02 6.682e-01 0.105 0.916555
## Account.Balance2 4.619e-01 2.228e-01 2.073 0.038145 *
## Account.Balance3 9.412e-01 3.883e-01 2.424 0.015350 *
## Account.Balance4 1.884e+00 2.438e-01 7.725 1.12e-14 ***
## Duration.of.Credit..month. -2.008e-02 9.473e-03 -2.120 0.034011 *
## Credit.Amount -1.201e-04 4.295e-05 -2.796 0.005175 **
## Value.Savings.Stocks2 1.485e-01 3.100e-01 0.479 0.631936
## Value.Savings.Stocks3 2.131e-01 4.356e-01 0.489 0.624742
## Value.Savings.Stocks4 1.521e+00 5.710e-01 2.665 0.007710 **
## Value.Savings.Stocks5 8.460e-01 2.679e-01 3.158 0.001591 **
## Instalment.per.cent -3.057e-01 9.172e-02 -3.333 0.000859 ***
## Sex...Marital.Status2 2.251e-01 3.910e-01 0.576 0.564820
## Sex...Marital.Status3 9.048e-01 3.857e-01 2.346 0.018979 *
## Sex...Marital.Status4 5.263e-01 4.679e-01 1.125 0.260649
## Payment.Status.of.Previous.Credit1 -6.688e-02 5.766e-01 -0.116 0.907671
## Payment.Status.of.Previous.Credit2 9.574e-01 4.747e-01 2.017 0.043692 *
## Payment.Status.of.Previous.Credit3 9.434e-01 5.403e-01 1.746 0.080819 .
## Payment.Status.of.Previous.Credit4 1.376e+00 4.923e-01 2.796 0.005181 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 977.38 on 799 degrees of freedom
## Residual deviance: 771.71 on 782 degrees of freedom
## AIC: 807.71
##
## Number of Fisher Scoring iterations: 5
Berdasarkan output diatas didapatkan penduga parameter regresi logistiknya sebagai berikut.
\(\beta_{0}=0.0700059302\), \(\beta_{1(2)}=0.4618935228\), \(\beta_{1(3)}=0.9412124251\), \(\beta_{1(4)}=1.8836661232\), \(\beta_{2}=-0.0200823167\), \(\beta_{3}=-0.0001200941\), \(\beta_{4(2)}=0.1484952756\), \(\beta_{4(3)}=0.2130693431\), \(\beta_{4(4)}= 1.5214490532\), \(\beta_{4(5)}=0.8460062992\), \(\beta_{5}=-0.3057100235\), \(\beta_{6(2)}=0.2251231259\), \(\beta_{6(3)}=-0.0668760400\), \(\beta_{6(4)}=0.5263145374\), \(\beta_{7(1)}=-0.0668760400\), \(\beta_{7(2)}=0.9574444309\), \(\beta_{7(3)}=0.9433966870\) dan \(\beta_{7(4)}=1.3761422824\)
Berdasarkan penduga parameter didapatkan model regresi logistik dan persamaan regresi logistiknya sebagai berikut.
Model Regresi Logistik
\(p(x)=\frac{exp(\beta_{0}+\beta_{1}AccountBalance_{(2)}+...+\beta_{7}PaymentStatus_{(4)})}{1+exp(\beta_{0}+\beta_{1}AccountBalance_{(2)}+...+\beta_{7}PaymentStatus_{(4)})}\)
Persamaan Regresi Logistik
\(\hat{p}(x)=\frac{e^(0.0700059302+0.4618935228AccountBalance_{(2)}+...+1.3761422824PaymentStatus_{(4)})}{1+e^(0.0700059302+0.4618935228AccountBalance_{(2)}+...+1.3761422824PaymentStatus_{(4)})}\)
Pengujian ini dilakukan untuk menguji apakah model yang dihasilkan berdasarkan regresi logistik multivariat/serentak sudah layak. Pengujian ini menggunakan statistik uji Hosmer dan Lemeshow (Hosmer & Lemeshow, 2000) dengan hipotesis yang digunakan sebagai berikut.
Keputusan Tolak \(H_{0}\) jika \(\hat{C}\) < \(\chi^2_{(10-2,0.05)}\)
hoslem.test(latih$Creditability, fitted(modelB), g=10)##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: latih$Creditability, fitted(modelB)
## X-squared = 2.4331, df = 8, p-value = 0.9648
cat('Nilai Chi Square Tabel :',qchisq(0.05,10-2))## Nilai Chi Square Tabel : 2.732637
Berdasarkan output diatas dapat kita lihat nilai \(\hat{C}>\chi^2_{10-2,0.05}\) atau terima \(H_{0}\) sehingga dapat kita yakini bahwa model akhir yang kita dapatkan sudah sesuai atau tidak terdapat perbedaan yang signifikan antara hasil pengamatan dengan kemungkinan hasil prediksi model.
Interpretasi koefisien untuk model regresi logistik dapat dilakukan dengan menggunakan nilai odds ratio. Odds sendiri dapat diartikan sebagai rasio peluang kejadian sukses dengan kejadian tidak sukses dari peubah respon. Odds ratio mengindikasikan seberapa besar kemungkinan munculnya kejadian sukses pada suatu kelompok dibandingkan kelompok lainnya (Hosmer & Lemeshow, 2000).
oddrasio=exp(cbind(OR=coef(modelB),confint(modelB)))## Waiting for profiling to be done...
oddrasio_c=cbind(Koefisien_B=coef(modelB),oddrasio)
oddrasio_c## Koefisien_B OR 2.5 % 97.5 %
## (Intercept) 0.0700059302 1.0725145 0.2859116 3.9577660
## Account.Balance2 0.4618935228 1.5870763 1.0269854 2.4619134
## Account.Balance3 0.9412124251 2.5630871 1.2289703 5.6983697
## Account.Balance4 1.8836661232 6.5775749 4.1147485 10.7216318
## Duration.of.Credit..month. -0.0200823167 0.9801180 0.9619755 0.9984622
## Credit.Amount -0.0001200941 0.9998799 0.9997944 0.9999632
## Value.Savings.Stocks2 0.1484952756 1.1600873 0.6380287 2.1598686
## Value.Savings.Stocks3 0.2130693431 1.2374705 0.5464926 3.0624197
## Value.Savings.Stocks4 1.5214490532 4.5788554 1.6569688 16.3631015
## Value.Savings.Stocks5 0.8460062992 2.3303216 1.3952156 4.0010749
## Instalment.per.cent -0.3057100235 0.7366002 0.6138180 0.8798471
## Sex...Marital.Status2 0.2251231259 1.2524769 0.5770213 2.6899881
## Sex...Marital.Status3 0.9048444744 2.4715475 1.1523799 5.2616715
## Sex...Marital.Status4 0.5263145374 1.6926825 0.6764012 4.2609374
## Payment.Status.of.Previous.Credit1 -0.0668760400 0.9353111 0.3042733 2.9496647
## Payment.Status.of.Previous.Credit2 0.9574444309 2.6050306 1.0473214 6.8266323
## Payment.Status.of.Previous.Credit3 0.9433966870 2.5686917 0.9079990 7.6289012
## Payment.Status.of.Previous.Credit4 1.3761422824 3.9595971 1.5374590 10.7213133
Berdasarkan output odd ratio dapat dijelaskan sebagai berikut:
Account Balance
Berdasarkan koefisien regresi yang diperoleh pada peubah AccountBalance didapatkan nilai koefisien yang positif yang menandakan setiap peningkatan nilai dari AccountBalance akan menyebabkan meningkatknya peluang seseorang mengalami kredit macet. Dari koefisien odd rasio dapat dilihat bahwa kategori ke 4 yaitu tidak memiliki rekening memiliki kecenderungan untuk mengalami kredit macet dibandingkan kategori satu yaitu memiliki rekening koran namun tidak memiliki saldo (0 DM). Pada kategori ke 4 memiliki nilai odd ratio tertinggi dibandingkan kategori lainnya yaitu 6,58 yang artinya kecenderungan untuk mengalami kredit macet dibandingkan kategori satu yaitu sebesar 6,58 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 4,11 sampai 10,72 kali.
Duration
Berdasarkan koefisien regresi yang diperoleh pada peubah Duration didapatkan nilai koefisien yang negatif yang menandakan setiap peningkatan nilai dari Duration akan menyebabkan menurunnya peluang seseorang mengalami kredit macet. Yang artinya semakin tinggi durasi (bulan) seseorang dalam melakukan pembayaran tagihan kredit maka akan menurunkan peluang seseorang mengalami kredit macet. Pada koefisien odd rasio yaitu 0,98 yang artinya setiap peningkatan nilai pada durasi akan menyebabkan peningkatan peluang seseorang untuk tidak mengalami kredit macet yaitu sebesar 0,98 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 0,96 sampai 0,99 kali.
Credit Amount
Berdasarkan koefisien regresi yang diperoleh pada peubah Credit Amount didapatkan nilai koefisien yang negatif yang menandakan setiap peningkatan nilai dari Credit.Amount akan menyebabkan menurunnya peluang seseorang mengalami kredit macet. Yang artinya semakin tinggi jumlah kredit yang diambil seseorang maka akan menurunkan peluang seseorang mengalami kredit macet. Pada koefisien odd rasio yaitu 0,99 yang artinya setiap peningkatan nilai pada jumlah kredit akan menyebabkan peningkatan peluang seseorang untuk tidak mengalami kredit macet yaitu sebesar 0,99 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 0.9997 sampai 0.9999 kali.
Value Saving
Berdasarkan koefisien regresi yang diperoleh pada peubah Value Saving didapatkan nilai koefisien yang positif yang menandakan setiap peningkatan nilai dari Value Saving akan menyebabkan meningkatknya peluang seseorang mengalami kredit macet. Dari koefisien odd rasio dapat dilihat bahwa kategori ke 4 yaitu memiliki saldo rekening lebih dari 1000 DM memiliki kecenderungan untuk mengalami kredit macet dibandingkan kategori satu yaitu memiliki saldo rekening dibawah 100 DM. Pada kategori ke 4 memiliki nilai odd ratio tertinggi dibandingkan kategori lainnya yaitu 4,57 yang artinya kecenderungan untuk mengalami kredit macet dibandingkan kategori satu yaitu sebesar 4,57 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 1,65 sampai 16,36 kali.
Instalment Percent
Berdasarkan koefisien regresi yang diperoleh pada peubah Instalment Percent didapatkan nilai koefisien yang negatif yang menandakan setiap peningkatan nilai dari Instalment Percent akan menyebabkan menurunnya peluang seseorang mengalami kredit macet. Yang artinya semakin tinggi persentase angsuran maka akan menurunkan peluang seseorang mengalami kredit macet. Pada koefisien odd rasio yaitu 0,78 yang artinya setiap peningkatan nilai pada persentase angsuran akan menyebabkan peningkatan peluang seseorang untuk tidak mengalami kredit macet yaitu sebesar 0,73 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 0,61 sampai 0,87 kali.
Sex Marital Status
Berdasarkan koefisien regresi yang diperoleh pada peubah Sex Marital Status didapatkan nilai koefisien yang positif yang menandakan setiap peningkatan nilai dari Sex Marital Status akan menyebabkan meningkatknya peluang seseorang mengalami kredit macet. Dari koefisien odd rasio dapat dilihat bahwa kategori ke 3 yaitu laki-laki yang belum menikah memiliki kecenderungan untuk mengalami kredit macet dibandingkan kategori satu yaitu laki-laki yang sudah bercerai. Pada kategori ke 3 memiliki nilai odd ratio tertinggi dibandingkan kategori lainnya yaitu 2,47 yang artinya kecenderungan untuk mengalami kredit macet dibandingkan kategori satu yaitu sebesar 2,47 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 1,15 sampai 5,26 kali.
Payment Status
Payment Status Kategori 1 : all credits at this bank paid back duly
Berdasarkan koefisien regresi yang diperoleh pada peubah Payment Status kategori all credits at this bank paid back duly didapatkan nilai koefisien yang negatif yang menandakan setiap peningkatan nilai dari Payment Status kategori all credits at this bank paid back duly akan menyebabkan meningkatknya peluang seseorang tidak mengalami kredit macet. Atau bisa dijelaskan bahwa seseorang yang memiliki riwayat kredit yang membayar semua kredit di bank ini dibayar kembali sebagaimana mestinya memiliki kecenderungan untuk tidak mengalami kredit macet. Pada kategori ini memiliki nilai odd ratio yaitu 0,93 yang artinya kecenderungan untuk tidak mengalami kredit macet dibandingkan kategori tidak ada kredit yang diambil / semua kredit dibayar kembali sebagaimana mestinya sebesar 0,93 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 0,30 sampai 2,95 kali.
Payment Status Kategori 4 : critical account/ other credits existing (not at this bank)
Berdasarkan koefisien regresi yang diperoleh pada peubah Payment Status kategori critical account/ other credits existing (not at this bank) didapatkan nilai koefisien yang positif yang menandakan setiap peningkatan nilai dari Payment Status kategori critical account/ other credits existing (not at this bank) akan menyebabkan meningkatknya peluang seseorang mengalami kredit macet. Atau bisa dijelaskan bahwa seseorang yang memiliki riwayat kredit yang memiliki rekening penting/ kredit lain yang ada (tidak di bank ini) memiliki kecenderungan untuk mengalami kredit macet. Pada kategori ini memiliki nilai odd ratio yaitu 3,96 yang artinya kecenderungan untuk mengalami kredit macet dibandingkan kategori tidak ada kredit yang diambil / semua kredit dibayar kembali sebagaimana mestinya sebesar 3,96 kali. Pada selang kepercayaan 95%, nilai ini bisa berubah peningkatannya diantara 1,53 sampai 10,72 kali.
Evaluasi terhadap model klasifikasi dilakukan dengan membuat tabel klasifikasi antara kelas sebenarnya dengan kelas hasil prediksi dari model klasifikasi. Tabel klasifikasi ini biasa disebut dengan Confusion Matrix.
Confusion matrix dapat diartikan sebagai suatu alat yang memiliki fungsi untuk melakukan analisis apakah classifier tersebut baik dalam mengenali tuple dari kelas yang berbeda. Nilai dari True-Positive (TP) dan True-Negative (TN) memberikan informasi ketika classifier dalam melakukan klasifikasi data bernilai benar, sedangkan False-Positive (FP) dan False-Negative (FN) memberikan informasi ketika classifier salah dalam melakukan klasifikasi data (Han dan Kamber, 2011).
Pada performa klasifikasi akan dihitung akurasi, spesifisitas, sensitivitas dan AUC. Akurasi merupakan persentase classifier benar melakukan prediksi. Sensitivitas merupakan Persentase data positif yang diprediksi sebagai positif. Dan Spesifisitas merupakan Persentase data negatif diprediksi sebagai negatif (Faisal dan Nugrahadi, 2019).Sedangkan AUC adalah kinerja dari model klasifikasi.
\(Akurasi=\frac{TN+TP}{TN+TP+FN+FP}100\%\)
\(Sensitivitas=\frac{TP}{TP+FN}100\%\)
\(Spesifisitas=\frac{TN}{TN+FP}100\%\)
\(AUC=\frac{(100+Sensitivitas)-(100-Spesifisitas)}{2}\)
Kinerja Klasifikasi berdasarkan AUC
pdata=predict(modelB,newdata=latih,type="response")
y_prediksi<-ifelse(pdata<0.6,0,1)
y_aktual<-latih$Creditability
klf=table(y_aktual,y_prediksi)
accuracy=(klf[1,1]+klf[2,2])/sum(klf)*100
sensitivity= klf[2,2]/sum(klf[2,])*100
specificity= klf[1,1]/sum(klf[1,])*100
fprate=klf[2,1]/(klf[2,1]+klf[1,1])*100
AUC=(100+sensitivity-fprate)/2
performa=data.frame(accuracy,sensitivity,specificity,AUC)klf## y_prediksi
## y_aktual 0 1
## 0 149 91
## 1 104 456
Berdasarkan output confusion matrix diatas dapat dilihat bahwa kemampuan prediksi dari model yang didapatkan untuk memprediksi kelas 0 atau kelas dengan pembayaran kredit yang baik dapat diprediksi tepat sebanyak 149 dari total 240 sedangkan untuk kelas 1 atau pembayaran kredit yang macet atau kurang baik diprediksi tepat sebanyak 456 dari total 560.
performaBerdasarkan hasil performa klasifikasi yang dihitung berdasarkan confusion matrix didapatkan ketepatan prediksi menggunakan model regresi logistik biner (Akurasi) sebesar 75,6% sedangkan ketepatan prediksi untuk kelas 1 atau pembayaran kredit yang macet (Sensitivitas) adalah 81,43% dan ketepatan prediksi untuk kelas 0 atau pembayaran kredit yang baik (Spesifisitas) adalah 62,08%. Artinya dari model klasifikasi memiliki kemampuan prediksi yang baik pada kelas pembayaran kredit yang macet namun belum cukup baik untuk memprediksi kelas pembayaran kredit yang baik. Dan dapat dilihat dari nilai AUC sebesar 70,16% yang menandakan kinerja dari model klasifikasi yang didapatkan cukup baik.
pdata=predict(modelB,newdata=uji,type="response")
y_prediksi<-ifelse(pdata<0.6,0,1)
y_aktual<-uji$Creditability
klf=table(y_aktual,y_prediksi)
accuracy=(klf[1,1]+klf[2,2])/sum(klf)*100
sensitivity= klf[2,2]/sum(klf[2,])*100
specificity= klf[1,1]/sum(klf[1,])*100
fprate=klf[2,1]/(klf[2,1]+klf[1,1])*100
AUC=(100+sensitivity-fprate)/2
performa=data.frame(accuracy,sensitivity,specificity,AUC)klf## y_prediksi
## y_aktual 0 1
## 0 36 24
## 1 23 117
Berdasarkan output confusion matrix diatas dapat dilihat bahwa kemampuan prediksi dari model yang didapatkan untuk memprediksi kelas 0 atau kelas dengan pembayaran kredit yang baik dapat diprediksi tepat sebanyak 36 dari total 60 sedangkan untuk kelas 1 atau pembayaran kredit yang macet atau kurang baik diprediksi tepat sebanyak 117 dari total 140.
performaBerdasarkan hasil performa klasifikasi yang dihitung berdasarkan confusion matrix didapatkan ketepatan prediksi menggunakan model regresi logistik biner (Akurasi) sebesar 76,5% sedangkan ketepatan prediksi untuk kelas 1 atau pembayaran kredit yang macet (Sensitivitas) adalah 83,57% dan ketepatan prediksi untuk kelas 0 atau pembayaran kredit yang baik (Spesifisitas) adalah 60%. Artinya dari model klasifikasi memiliki kemampuan prediksi yang baik pada kelas pembayaran kredit yang macet namun belum cukup baik untuk memprediksi kelas pembayaran kredit yang baik. Dan dapat dilihat dari nilai AUC sebesar 71,78% yang menandakan kinerja dari model klasifikasi yang didapatkan cukup baik.
Berdasarkan uji wald Variabel yang kita yakini berpengaruh terhadap seseorang akan menunggak kredit adalah Jumlah Saldo Rekening Koran, Durasi Kredit, Jumlah Kredit, Rekening Tabungan, Persentase Angsuran, Jenis Kelamin dan Status dan Riwayat Kredit.
Persamaan regresi logistik biner yang didapatkan adalah :
\(\hat{p}(x)=\frac{e^(0.0700059302+0.4618935228AccountBalance_{(2)}+...+1.3761422824PaymentStatus_{(4)})}{1+e^(0.0700059302+0.4618935228AccountBalance_{(2)}+...+1.3761422824PaymentStatus_{(4)})}\)