Использование библиотеки pgmpy для моделирования кредитного риска

В этой статье я продемонстрирую, как генерировать выводы путем построения байесовской сети с использованием библиотеки pgmpy в Python.

См. Публикацию 1 для ознакомления с концепциями PGM и публикацию 2 для ознакомления с фундаментальными концепциями, лежащими в основе байесовских сетей.

Давайте начнем.

Я использую данные немецкого кредитного риска, которые хранятся здесь.

Подробный исследовательский анализ и презентация кейсов для этих данных написаны в этом посте.

Одним из предварительных условий построения графической сети с использованием «pgmpy» является дискретизация данных. Мы проверим, какие числовые характеристики нужно объединить, например, у которых более 32 уникальных значений:

Теперь мы подготовили список функций, которые мы будем объединять с помощью EqualFrequencyDiscretiser (он делит непрерывные числовые переменные на интервалы, содержащие примерно одинаковую долю наблюдений):

Есть и другие библиотеки, которые позволяют вам это делать. Например, EqualWidthDiscretiser (создает равноудаленные интервалы) и KBinsDiscretizer:

Окончательные биннированные данные, готовые для графического моделирования, выглядят следующим образом:

Подготовленные выше данные затем используются для построения сетевой структуры с использованием алгоритма изучения структуры, основанного на оценках, известного как «Оптимизация восхождения на холм».

Он начинается с начальной структуры, а затем продолжает выполнять операции - «добавить, удалить и отменить», чтобы построить структуру в направлении, ведущем к увеличению оценки. Байесовский информационный критерий (bic) является наиболее распространенной оценкой.

Байесовская сеть выглядит так:

Затем мы используем метод оценки максимального правдоподобия для оценки параметра, который максимизирует функцию правдоподобия.

Вывод может быть выполнен двумя способами: точным и приблизительным. Метод исключения переменных, используемый ниже, представляет собой тип точного вывода.

Совместное распределение целевой переменной, т. е. риска и пола, можно найти, как показано ниже:

Учитывая, что нам известен пол клиента, обращающегося за кредитным риском, каково условное распределение риска:

Кредитная история - что мы можем сделать вывод о риске, связанном с профилем, с учетом кредитной истории заемщика?

Улучшенная кредитная история свидетельствует о более высокой кредитоспособности

Сберегательные счета - если сберегательные счета означают коэффициент богатства заемщика, то по мере его увеличения плохой риск уменьшается.

Продолжительность:

Ссуды с более коротким сроком погашения в большинстве случаев погашаются без дефолта, плохой риск, то есть кредитоспособность, ухудшается по мере увеличения срока. Обратите внимание, что это оправдывает интуицию о том, что чем больше период, тем больше волатильность в системе, где волатильность может быть истолкована как больший риск.

Сумма кредита:

Плохой риск максимален при большой сумме кредитов

Спасибо за прочтение. Надеюсь, вам понравилась статья.

Блокнот Jupyter находится здесь.