Stratégie de crédit et perte minimale attendue

Modélisation du risque de crédit en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Choisir les taux d’acceptation

  • Le premier taux d’acceptation a été fixé à 85 %, mais d’autres taux sont possibles
  • Deux options pour tester différents taux :
    • Calculer manuellement seuil, bad rate et pertes
    • Créer automatiquement un tableau de ces valeurs et choisir un taux
  • Le tableau de toutes les valeurs possibles s’appelle un tableau de stratégie
Modélisation du risque de crédit en Python

Configurer le tableau de stratégie

  • Configurer des tableaux ou listes pour stocker chaque valeur
# Set all the acceptance rates to test
accept_rates = [1.0, 0.95, 0.9, 0.85, 0.8, 0.75, 0.7, 0.65, 0.6, 0.55,
                0.5, 0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05]
# Create lists to store thresholds and bad rates 
thresholds = []
bad_rates = []
Modélisation du risque de crédit en Python

Calculer les valeurs du tableau

  • Calculer le seuil et le bad rate pour tous les taux d’acceptation
for rate in accept_rates:
    # Calculate threshold
    threshold = np.quantile(preds_df['prob_default'], rate).round(3)
    # Store threshold value in a list
    thresholds.append(np.quantile(preds_gbt['prob_default'], rate).round(3))
    # Apply the threshold to reassign loan_status
    test_pred_df['pred_loan_status'] = \ 
        test_pred_df['prob_default'].apply(lambda x: 1 if x > thresh else 0)
    # Create accepted loans set of predicted non-defaults
    accepted_loans = test_pred_df[test_pred_df['pred_loan_status'] == 0]
    # Calculate and store bad rate
    bad_rates.append(np.sum((accepted_loans['true_loan_status']) 
             / accepted_loans['true_loan_status'].count()).round(3))
Modélisation du risque de crédit en Python

Interpréter le tableau de stratégie

strat_df = pd.DataFrame(zip(accept_rates, thresholds, bad_rates),
                        columns = ['Acceptance Rate','Threshold','Bad Rate'])

Exemple de tableau de stratégie et barre de bad rate

Modélisation du risque de crédit en Python

Ajouter les prêts acceptés

  • Le nombre de prêts acceptés pour chaque taux d’acceptation
    • Utiliser len() ou .count()

Table de stratégie avec prêts acceptés

Modélisation du risque de crédit en Python

Ajouter le montant moyen du prêt

  • loan_amnt moyen dans les données de test

Table de stratégie avec montant moyen du prêt

Modélisation du risque de crédit en Python

Estimer la valeur du portefeuille

  • Valeur moyenne des prêts acceptés sans défaut moins valeur moyenne des prêts acceptés en défaut
  • Suppose que chaque défaut = perte du loan_amnt

Table de stratégie avec valeur estimée

Modélisation du risque de crédit en Python

Perte totale attendue

  • Montant que l’on s’attend à perdre sur les défauts du portefeuille

Formule de la perte totale attendue

# Probability of default (PD)
test_pred_df['prob_default']
# Exposure at default = loan amount (EAD)
test_pred_df['loan_amnt']
# Loss given default = 1.0 for total loss (LGD)
test_pred_df['loss_given_default']
Modélisation du risque de crédit en Python

Passons à la pratique !

Modélisation du risque de crédit en Python

Preparing Video For Download...