อัตราการอนุมัติสินเชื่อ

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Michael Crabtree

Data Scientist, Ford Motor Company

Threshold และสถานะสินเชื่อ

  • ก่อนหน้านี้เราได้กำหนดค่า threshold สำหรับช่วงค่า prob_default
    • ใช้เพื่อเปลี่ยนค่า loan_status ที่พยากรณ์ได้
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.4 else 0)
Loan prob_default threshold loan_status
1 0.25 0.4 0
2 0.42 0.4 1
3 0.75 0.4 1
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Threshold และอัตราการอนุมัติ

  • ใช้ผลการพยากรณ์ของโมเดลเพื่อกำหนด threshold ที่ดีขึ้น
    • ยังสามารถใช้อนุมัติหรือปฏิเสธสินเชื่อใหม่ได้
  • สำหรับสินเชื่อใหม่ทั้งหมด เราต้องการปฏิเสธรายที่มีแนวโน้มผิดนัด
    • ใช้ข้อมูลทดสอบเป็นตัวอย่างของสินเชื่อใหม่
  • อัตราการอนุมัติ: เปอร์เซ็นต์ของสินเชื่อใหม่ที่ได้รับการอนุมัติ เพื่อให้จำนวนการผิดนัดในพอร์ตโฟลิโอต่ำ
    • สินเชื่อที่อนุมัติแล้วแต่เป็นการผิดนัด มีผลกระทบคล้ายกับ false negative
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

ทำความเข้าใจอัตราการอนุมัติ

  • ตัวอย่าง: อนุมัติ 85% ของสินเชื่อที่มีค่า prob_default ต่ำที่สุด

ฮิสโตแกรมแสดงการกระจายของความน่าจะเป็นที่พยากรณ์

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การคำนวณค่า threshold

  • คำนวณค่า threshold สำหรับอัตราการอนุมัติ 85%
import numpy as np
# Compute the threshold for 85% acceptance rate
threshold = np.quantile(prob_default, 0.85)
0.804
Loan prob_default Threshold Predicted loan_status Accept or Reject
1 0.65 0.804 0 Accept
2 0.85 0.804 1 Reject
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

นำ threshold ที่คำนวณได้ไปใช้งาน

  • กำหนดค่า loan_status ใหม่โดยใช้ threshold ที่คำนวณได้
# Compute the quantile on the probabilities of default
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.804 else 0)
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Bad Rate

  • แม้จะใช้ threshold ที่คำนวณแล้ว สินเชื่อที่อนุมัติบางส่วนก็ยังเป็นการผิดนัด
  • สินเชื่อเหล่านี้มีค่า prob_default อยู่ในช่วงที่โมเดลยังปรับเทียบได้ไม่ดี

แผนภูมิแท่งแสดงสินเชื่อที่อนุมัติพร้อมเน้น bad rate

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การคำนวณ bad rate

สูตรคำนวณ bad rate

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • ถ้า non-default คือ 0 และ default คือ 1 แล้ว sum() จะเป็นจำนวนนับของการผิดนัด
  • .count() ของคอลัมน์เดียวเท่ากับจำนวนแถวทั้งหมดของ data frame
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

มาฝึกกันเถอะ!

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Preparing Video For Download...