Tasas de aceptación de crédito

Modelado del riesgo crediticio en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Umbrales y estado del préstamo

  • Antes fijamos un umbral para un rango de prob_default
    • Se usó para cambiar el loan_status predicho del préstamo
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
Modelado del riesgo crediticio en Python

Umbrales y tasa de aceptación

  • Usa las predicciones del modelo para fijar mejores umbrales
    • También para aprobar o denegar nuevos préstamos
  • Para todos los nuevos préstamos, queremos denegar los probables impagos
    • Usa los datos de test como ejemplo de nuevos préstamos
  • Tasa de aceptación: porcentaje de nuevos préstamos aceptados para mantener pocos impagos en la cartera
    • Préstamos aceptados que resultan impagos impactan como falsos negativos
Modelado del riesgo crediticio en Python

Entender la tasa de aceptación

  • Ejemplo: aceptar el 85% de los préstamos con menor prob_default

Histograma de la distribución de probabilidades predichas

Modelado del riesgo crediticio en Python

Cálculo del umbral

  • Calcula el umbral para una tasa de aceptación del 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
Modelado del riesgo crediticio en Python

Aplicar el umbral calculado

  • Reasigna loan_status usando el nuevo umbral
# 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)
Modelado del riesgo crediticio en Python

Tasa de morosidad

  • Incluso con un umbral calculado, algunos préstamos aceptados serán impagos
  • Son préstamos con prob_default cerca de donde el modelo no está bien calibrado

Barra de préstamos aceptados con tasa de morosidad resaltada

Modelado del riesgo crediticio en Python

Cálculo de la tasa de morosidad

Fórmula de la tasa de morosidad

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • Si no impago es 0 e impago es 1, entonces sum() cuenta los impagos
  • .count() de una sola columna equivale al número de filas del data frame
Modelado del riesgo crediticio en Python

¡Vamos a practicar!

Modelado del riesgo crediticio en Python

Preparing Video For Download...