LOAN PREDICTION

Background

Dalam dunia keuangan/kredit, kemampuan perusahaan untuk menganalisa konsumen dan menentukan siapa yang layak diberikan pinjaman adalah hal yang sangat krusial. Tepat atau tidaknya sebuah institusi keuangan untuk melakukan pinjaman ke nasabah akan menentukan apakah institusi tersebut dapat memperoleh keuntungan, atau justru akan menambah presentase NPL (Non-Performing Loan) yang akan merugikan perusahaan tersebut.

Project ini didesain untuk mempermudah sebuah institusi keuangan dalam menganalisa konsumen dan menentukan konsumen yang akan mendapatkan pinjaman. Informasi “eligibility” konsumen akan diidentifikasi dengan beberapa variabel prediktor dengan hasil yang ditampilkan dalam sebuah dashboard secara realtime. Dengan begitu, perusahaan akan segera mengetahui calon konsumen yang diprediksi mampu melakukan pembayaran. Di samping itu, perusahaan juga mampu mengurangi presentasi NPL.

Target and Features

Target: memprediksi apakah calon konsumen mampu membayar pinjaman/gagal bayar dengan beberapa variabel prediktor.

Project Idea

Membuat sebuah model machine learning yang mampu memprediksi “eligibility” pinjaman oleh calon konsumen berdasarkan profil calon konsumen tersebut secara real time.

Business Impact

Problem Scope

Data yang akan digunakan adalah data Dream Housing Finance yang bersumber dari Kaggle. Data ini berisi beberapa kolom antara lain:

Dari kolom-kolom tersebut, kolom Loan_Status akan menjadi variabel target.

Output

Output dari project ini adalah sebuah dashboard realtime yang akan menampilkan informasi mengenai status pinjaman calon konsumen yang diproses berdasarkan permodelan machine learning. Informasi yang ditampilkan oleh dashboard adalah data profil calon konsumen sebagai variabel prediktor, serta status pinjaman calon konsumen tersebut akan disetujui/tidak.

EDA

Proses yang akan dilakukan adalah: 1. Melihat dan mengubah tipe data 2. Menghapus kolom yang tidak diperlukan 3. Mengecek dan mengisi baris yang kosong 4. Mengubah isi kolom Gender, Married, Education, Self_Employed, dan Loan_Status dengan data numerik 5. Membuat permodelan dan prediksi 6. Mengevaluasi model dan hasil prediksi

Beberapa proses awal yang akan dilakukan adalah sebagai berikut.

# menyiapkan library
options(scipen = 999)
library(lattice)
library(data.table)
library(ggplot2)            
library(dplyr)              
library(caret)              
library(randomForest)       
library(tidyr)
library(stringr)
# membaca data train
loan <- read.csv("loan-train.csv")
glimpse(loan)
## Rows: 614
## Columns: 13
## $ Loan_ID           <chr> "LP001002", "LP001003", "LP001005", "LP001006", "LP0…
## $ Gender            <chr> "Male", "Male", "Male", "Male", "Male", "Male", "Mal…
## $ Married           <chr> "No", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "Yes"…
## $ Dependents        <chr> "0", "1", "0", "0", "0", "2", "0", "3+", "2", "1", "…
## $ Education         <chr> "Graduate", "Graduate", "Graduate", "Not Graduate", …
## $ Self_Employed     <chr> "No", "No", "Yes", "No", "No", "Yes", "No", "No", "N…
## $ ApplicantIncome   <int> 5849, 4583, 3000, 2583, 6000, 5417, 2333, 3036, 4006…
## $ CoapplicantIncome <dbl> 0, 1508, 0, 2358, 0, 4196, 1516, 2504, 1526, 10968, …
## $ LoanAmount        <int> NA, 128, 66, 120, 141, 267, 95, 158, 168, 349, 70, 1…
## $ Loan_Amount_Term  <int> 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 36…
## $ Credit_History    <int> 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, NA, …
## $ Property_Area     <chr> "Urban", "Rural", "Urban", "Urban", "Urban", "Urban"…
## $ Loan_Status       <chr> "Y", "N", "Y", "Y", "Y", "Y", "Y", "N", "Y", "N", "Y…
# mengubah tipe data
loan_clean <- loan %>% 
  mutate(Gender = as.factor(Gender),
         Married = as.factor(Married),
         Dependents = as.factor(Dependents),
         Education = as.factor(Education),
         Self_Employed = as.factor(Self_Employed),
         Loan_Amount_Term = as.factor(Loan_Amount_Term),
         Credit_History = as.factor(Credit_History),
         Property_Area = as.factor(Property_Area),
         Loan_Status = as.factor(Loan_Status))

glimpse(loan_clean)
## Rows: 614
## Columns: 13
## $ Loan_ID           <chr> "LP001002", "LP001003", "LP001005", "LP001006", "LP0…
## $ Gender            <fct> Male, Male, Male, Male, Male, Male, Male, Male, Male…
## $ Married           <fct> No, Yes, Yes, Yes, No, Yes, Yes, Yes, Yes, Yes, Yes,…
## $ Dependents        <fct> 0, 1, 0, 0, 0, 2, 0, 3+, 2, 1, 2, 2, 2, 0, 2, 0, 1, …
## $ Education         <fct> Graduate, Graduate, Graduate, Not Graduate, Graduate…
## $ Self_Employed     <fct> No, No, Yes, No, No, Yes, No, No, No, No, No, , No, …
## $ ApplicantIncome   <int> 5849, 4583, 3000, 2583, 6000, 5417, 2333, 3036, 4006…
## $ CoapplicantIncome <dbl> 0, 1508, 0, 2358, 0, 4196, 1516, 2504, 1526, 10968, …
## $ LoanAmount        <int> NA, 128, 66, 120, 141, 267, 95, 158, 168, 349, 70, 1…
## $ Loan_Amount_Term  <fct> 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 36…
## $ Credit_History    <fct> 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, NA, …
## $ Property_Area     <fct> Urban, Rural, Urban, Urban, Urban, Urban, Urban, Sem…
## $ Loan_Status       <fct> Y, N, Y, Y, Y, Y, Y, N, Y, N, Y, Y, Y, N, Y, Y, Y, N…