Míry přijetí úvěrů

Credit Risk Modeling in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Prahy a stav úvěru

  • Dříve jsme nastavili práh pro rozsah hodnot prob_default
    • Sloužil ke změně předpovídaného loan_status úvěru
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.4 else 0)
Úvěr prob_default práh loan_status
1 0.25 0.4 0
2 0.42 0.4 1
3 0.75 0.4 1
Credit Risk Modeling in Python

Prahy a míra přijetí

  • Pomocí predikcí modelu lze nastavovat lepší prahy
    • Lze je také použít ke schválení nebo zamítnutí nových úvěrů
  • U všech nových úvěrů chceme zamítnout pravděpodobná selhání
    • Jako příklad nových úvěrů použijeme testovací data
  • Míra přijetí: jaké procento nových úvěrů je přijato, aby počet selhání v portfoliu zůstal nízký
    • Přijaté úvěry v selhání mají podobný dopad jako falešně negativní případy
Credit Risk Modeling in Python

Porozumění míře přijetí

  • Příklad: Přijetí 85 % úvěrů s nejnižší hodnotou prob_default

Histogram rozdělení předpovídaných pravděpodobností

Credit Risk Modeling in Python

Výpočet prahu

  • Výpočet prahové hodnoty pro 85% míru přijetí
import numpy as np
# Compute the threshold for 85% acceptance rate
threshold = np.quantile(prob_default, 0.85)
0.804
Úvěr prob_default Práh Předpovídaný loan_status Přijmout nebo zamítnout
1 0.65 0.804 0 Přijmout
2 0.85 0.804 1 Zamítnout
Credit Risk Modeling in Python

Implementace vypočteného prahu

  • Přiřazení hodnot loan_status pomocí nového prahu
# 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)
Credit Risk Modeling in Python

Míra nesplacení

  • I při vypočteném prahu budou některé přijaté úvěry v selhání
  • Jedná se o úvěry s hodnotami prob_default tam, kde model není dobře kalibrován

Sloupcový graf přijatých úvěrů se zvýrazněnou mírou nesplacení

Credit Risk Modeling in Python

Výpočet míry nesplacení

Vzorec pro výpočet míry nesplacení

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • Pokud je bez selhání 0 a selhání 1, pak sum() vrátí počet selhání
  • .count() jednoho sloupce odpovídá počtu řádků datového rámce
Credit Risk Modeling in Python

Pojďme si procvičit!

Credit Risk Modeling in Python

Preparing Video For Download...