Kreditannahmeraten

Kreditrisikomodellierung in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Schwellenwerte und Kreditstatus

  • Zuvor haben wir einen Schwellenwert für einen Bereich von prob_default gesetzt
    • Damit wurde der vorhergesagte loan_status des Kredits geändert
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
Kreditrisikomodellierung in Python

Schwellen und Annahmerate

  • Modellvorhersagen nutzen, um bessere Schwellen zu setzen
    • Auch nutzbar, um neue Kredite zu genehmigen oder abzulehnen
  • Für alle neuen Kredite: wahrscheinliche Ausfälle ablehnen
    • Testdaten als Beispiel für neue Kredite nutzen
  • Annahmerate: Anteil neuer Kredite, die angenommen werden, um Ausfälle im Portfolio gering zu halten
    • Angenommene Ausfallkredite wirken ähnlich wie False Negatives
Kreditrisikomodellierung in Python

Annahmerate verstehen

  • Beispiel: 85% der Kredite mit der niedrigsten prob_default annehmen

Histogramm der Verteilung vorhergesagter Wahrscheinlichkeiten

Kreditrisikomodellierung in Python

Schwelle berechnen

  • Schwellenwert für 85% Annahmerate berechnen
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
Kreditrisikomodellierung in Python

Berechnete Schwelle umsetzen

  • loan_status mit der neuen Schwelle neu zuweisen
# 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)
Kreditrisikomodellierung in Python

Bad Rate

  • Auch mit berechnetem Schwellenwert werden einige angenommene Kredite ausfallen
  • Das sind Kredite mit prob_default nahe Bereichen, in denen das Modell schlecht kalibriert ist

Balken angenommener Kredite mit hervorgehobener Ausfallquote

Kreditrisikomodellierung in Python

Berechnung der Bad Rate

Formel für Bad Rate

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • Wenn Nichtausfall 0 und Ausfall 1 ist, dann ist sum() die Anzahl der Ausfälle
  • .count() einer einzelnen Spalte entspricht der Zeilenanzahl des DataFrames
Kreditrisikomodellierung in Python

Lass uns üben!

Kreditrisikomodellierung in Python

Preparing Video For Download...