Tingkat penerimaan kredit

Pemodelan Risiko Kredit dengan Python

Michael Crabtree

Data Scientist, Ford Motor Company

Ambang dan status pinjaman

  • Sebelumnya kita menetapkan ambang untuk rentang nilai prob_default
    • Ini digunakan untuk mengubah prediksi loan_status pinjaman
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
Pemodelan Risiko Kredit dengan Python

Ambang dan acceptance rate

  • Gunakan prediksi model untuk menetapkan ambang yang lebih baik
    • Juga dapat dipakai untuk menyetujui atau menolak pinjaman baru
  • Untuk semua pinjaman baru, tolak yang kemungkinan default
    • Gunakan data uji sebagai contoh pinjaman baru
  • Acceptance rate: persentase pinjaman baru yang diterima untuk menjaga jumlah default tetap rendah
    • Pinjaman diterima yang ternyata default berdampak mirip false negative
Pemodelan Risiko Kredit dengan Python

Memahami acceptance rate

  • Contoh: Terima 85% pinjaman dengan prob_default terendah

Histogram sebaran probabilitas prediksi

Pemodelan Risiko Kredit dengan Python

Menghitung ambang

  • Hitung nilai ambang untuk acceptance rate 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
Pemodelan Risiko Kredit dengan Python

Menerapkan ambang yang dihitung

  • Tetapkan ulang nilai loan_status dengan ambang baru
# 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)
Pemodelan Risiko Kredit dengan Python

Bad Rate

  • Meski ada ambang yang dihitung, sebagian pinjaman yang diterima akan gagal bayar
  • Ini adalah pinjaman dengan prob_default di kisaran tempat model kurang terkalibrasi

Batang pinjaman diterima dengan bad rate disorot

Pemodelan Risiko Kredit dengan Python

Perhitungan bad rate

Rumus bad rate

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • Jika non-default 0 dan default 1, maka sum() adalah jumlah default
  • .count() pada satu kolom sama dengan jumlah baris data frame
Pemodelan Risiko Kredit dengan Python

Ayo berlatih!

Pemodelan Risiko Kredit dengan Python

Preparing Video For Download...