Create Credit Scoring ด้วย Scorecard package บน RStudio (1)

punjapol binnagan
2 min readFeb 8, 2020

--

การสร้างแบบจำลอง Credit Scoring บน RStudio ทำได้ไม่ยากครับ

  1. เริ่มต้นด้วยการติดตั้ง package scorecard ก่อนเลยครับ

install.packages(“scorecard”)

2. จากนั้นก็เรียก package ขึ้นมา

library(scorecard)

library(dplyr)

3. upload ข้อมูลลงใน R

loan <- read.csv(‘~/Desktop/cr_loan2.csv’)

str(loan)

เพื่อดูโครงสร้างของข้อมูลที่เรา upload ในกรณีนี้ ผมตั้งชื่อข้อมูลว่า loan โดยที่แต่ละแถวของข้อมูลแทนคน จะได้ว่าข้อมูลนี้มีจำนวน 32,581 คน นอกจากนี้แต่ละคนมีข้อมูล 12 คุณลักษณะ หรือเรียกว่า 12 ตัวแปรก็ได้ครับ

ถ้าดูคร่าวๆ พบว่า ตัวแปรที่อยู่ในข้อมูลชุดนี้มี 3 ลักษณะ คือ int (interger), factor, และก็ num(number)

4. ก่อนที่จะสร้างแบบจำลอง ขั้นตอนสำคัญคือ การทำ data cleaning (คือการทำให้ข้อมูลมีความสมเหตุสมผล เช่น อายุไม่ควรติดลบ รวมถึงการตรวจสอบ outlier และ missing value เป็นต้น)

สำหรับ scorecard package นี้มีคำสั่งเกี่ยวกับ data cleaning ที่น่าสนใจ คือ var_filter โดยที่ full argument คือ

var_filter(dt, y, x = NULL, iv_limit = 0.02, missing_limit = 0.95, identical_limit = 0.95, var_rm = NULL, var_kp = NULL, return_rm_reason = FALSE, positive = “bad|1”)

dt คือ ชื่อข้อมูล ในกรณีนี้คือ loan

y คือ ตัวแปรตาม หรือตัวแปรที่เราสนใจศึกษา

x คือ ตัวแปรอิสระหรือตัวแปรที่จะใช้อธิบาย y โดยที่ default คือ NULL หมายความว่า ทุก columns ในข้อมูลนี้ ยกเว้น column ถูกกำหนดให้เป็นตัวแปร y จะถูกกำหนดให้เป็น x ทั้งหมด(ตัวแปรอิสระทั้งหมด) หากเราต้องการกำหนด x เอง เราก็แค่พิมพ์ชื่อตัวแปรใน argument ที่ 3

iv_limit คือ information value เป็น criteria ตัวหนึ่งในการเลือกตัวแปร โดยที่ตัวแปรที่จะถูกเก็บไว้ในการสร้างแบบจำลอง จะต้องมีค่า iv มากกว่าหรือเท่ากับตัวเลขหนึ่ง ในที่นี่ default ไว้ 0.02 (รายละเอียดเพิ่มเติมผมจะอธิบายในครั้งหน้าครับ)

missing_limit ตรงตัวเลยครับ เป็นการตั้งค่าไว้ว่าตัวแปรที่เราจะเก็บไว้สร้างแบบจำลองนั้น เรากำหนดให้มีค่า missing ได้สูงสุดกี่ % โดยที่ default ไว้ที่ 95% เท่ากับว่าตัวแปรไหนมี missing value เกิน 95% ตัวแปรนั้นจะไม่ถูกนำมาใช้ครับ

positive คือการระบุว่า ค่าตัวแปร y ที่เท่ากับ 1 คือ ค่าอะไร โดยที่ default คือ bad หรือพูดง่ายๆ ผิดนัดชำระหนี้นั่นเอง

การใช้คำสั่งข้างต้นที่ไม่อยากครับ เช่น

dt_filter = var_filter(loan, “loan_status”)

ผมกำลังบอก RStudio ว่า ข้อมูลที่ผมจะให้ filter ชื่อ loan โดยมีตัวแปร y คือ loan_status ส่วน arguments อื่น ผมไม่ได้แก้ไขอะไร ดังนั้น RStudio ก็จะรัน ตามค่า default ข้างต้นครับ

--

--