Acceptatiepercentages krediet

Kredietrisicomodellering in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Drempels en leningstatus

  • Eerder stelden we een drempel in voor een reeks prob_default-waarden
    • Die gebruikten we om de voorspelde loan_status aan te passen
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
Kredietrisicomodellering in Python

Drempels en acceptatiegraad

  • Gebruik modelvoorspellingen om betere drempels te zetten
    • Ook te gebruiken om nieuwe leningen goed te keuren of te weigeren
  • Voor alle nieuwe leningen willen we waarschijnlijke defaults weigeren
    • Gebruik de testdata als voorbeeld van nieuwe leningen
  • Acceptatiegraad: welk percentage nieuwe leningen we accepteren om defaults in de portefeuille laag te houden
    • Geaccepteerde leningen die defaulten lijken op false negatives qua impact
Kredietrisicomodellering in Python

Acceptatiegraad begrijpen

  • Voorbeeld: accepteer 85% van de leningen met de laagste prob_default

Histogram van verdeling van voorspelde waarschijnlijkheden

Kredietrisicomodellering in Python

De drempel berekenen

  • Bereken de drempel voor een acceptatiegraad van 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
Kredietrisicomodellering in Python

De berekende drempel toepassen

  • Wijs loan_status opnieuw toe met de nieuwe drempel
# 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)
Kredietrisicomodellering in Python

Bad rate

  • Zelfs met een gekozen drempel zullen sommige geaccepteerde leningen in default gaan
  • Dit zijn leningen met prob_default-waarden rond gebieden waar het model slecht is gekalibreerd

Balk van geaccepteerde leningen met slecht percentage gemarkeerd

Kredietrisicomodellering in Python

Berekening bad rate

Formule voor bad rate

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • Als niet-default 0 is en default 1, dan is sum() het aantal defaults
  • De .count() van één kolom is gelijk aan het rijaantal van de data frame
Kredietrisicomodellering in Python

Laten we oefenen!

Kredietrisicomodellering in Python

Preparing Video For Download...