Уровень одобрения кредитов

Моделирование кредитного риска на Python

Michael Crabtree

Data Scientist, Ford Motor Company

Пороги и статус кредита

  • Ранее мы задавали порог для диапазона значений prob_default
    • Он использовался для изменения предсказанного loan_status кредита
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.4 else 0)
Кредит prob_default Порог loan_status
1 0.25 0.4 0
2 0.42 0.4 1
3 0.75 0.4 1
Моделирование кредитного риска на Python

Пороги и уровень одобрения

  • Используйте прогнозы модели для установки более точных порогов
    • Их также можно применять для одобрения или отклонения новых кредитов
  • Для всех новых кредитов мы хотим отклонять вероятные дефолты
    • Используем тестовые данные как пример новых кредитов
  • Уровень одобрения: какой процент новых кредитов принимается, чтобы доля дефолтов в портфеле оставалась низкой
    • Одобренные кредиты, оказавшиеся дефолтными, действуют аналогично ложноотрицательным результатам
Моделирование кредитного риска на Python

Понимание уровня одобрения

  • Пример: одобрить 85% кредитов с наименьшими значениями prob_default

Гистограмма распределения предсказанных вероятностей

Моделирование кредитного риска на Python

Вычисление порога

  • Вычислите пороговое значение для уровня одобрения 85%
import numpy as np
# Compute the threshold for 85% acceptance rate
threshold = np.quantile(prob_default, 0.85)
0.804
Кредит prob_default Порог Предсказанный loan_status Одобрить или отклонить
1 0.65 0.804 0 Одобрить
2 0.85 0.804 1 Отклонить
Моделирование кредитного риска на Python

Применение вычисленного порога

  • Переназначьте значения loan_status с использованием нового порога
# 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)
Моделирование кредитного риска на Python

Доля плохих кредитов

  • Даже при вычисленном пороге часть одобренных кредитов окажется дефолтными
  • Это кредиты со значениями prob_default, для которых модель плохо откалибрована

Столбчатая диаграмма одобренных кредитов с выделенной долей плохих

Моделирование кредитного риска на Python

Расчёт доли плохих кредитов

Формула расчёта доли плохих кредитов

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • Если не-дефолт равен 0, а дефолт — 1, то sum() даёт количество дефолтов
  • .count() по одному столбцу равен числу строк в датафрейме
Моделирование кредитного риска на Python

Давайте потренируемся!

Моделирование кредитного риска на Python

Preparing Video For Download...