На связи команда по разработке риск-моделей для крупного корпоративного, а также малого и среднего бизнеса банка «Открытие» — Андрей Бояренков, Владимир Иванов и Иван Луговский. В этой статье мы расскажем про наш опыт улучшения показателей ранжирования моделей оценки вероятности дефолта заемщика/скоринговых моделей за счет использования различных источников данных и объединения их в отдельные модули.

Стоит начать с ответа на вопрос, для чего вообще нужны скоринговые модели в банке? Скоринговые модели и модели оценки вероятности дефолта заемщика (PD модели) оказывают существенное влияние на все процессы банка и его доход. Такие модели используются как при принятии решений по заемщикам в качестве Cut-off при одобрении сделки, так и в подходах Risk Based Limit (RBL), Risk Based Pricing (RBP). То есть в подходах, когда лимит и процентная ставка зависят от вероятности дефолта отдельно взятого заемщика.

Помимо указанных выше областей применения скоринговые и PD модели также используются:

  • При расчете резервов банка и требуемого капитала;

  • Для риск-отчетности по качеству кредитного портфеля;

  • Для установления внутренних лимитов по рискам;

  • Для мониторинга изменения качества конкретных заемщиков и кредитного портфеля в целом.

Учитывая такое влияние, к моделям оценки вероятности дефолта предъявляются очень высокие требования в части ранжирующей способности и точности.

Теперь, когда функции скоринговых моделей определены, стоит разобраться с общей структурой модели. Нередко модели для клиентов корпоративного сегмента состоят из нескольких отдельных модулей, которые отличаются источниками данных для моделирования и, соответственно, объединяют факторы в одну смысловую группу. При грамотном подходе чем больше источников используется в модели, тем выше ее ранжирующая способность. Исторически в корпоративных моделях стандартно использовались следующие модули:

  1. Модуль с финансовыми показателями, характеризующими деятельность компании. Данный модуль включает в себя факторы, связанные с ликвидностью, оборачиваемостью, финансовой независимостью, рентабельностью и динамикой бизнеса;

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

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

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

  • Транзакционные данные;

  • Данные кредитной истории;

  • Данные источников-агрегаторов;

  • Арбитражи.

Далее последовательно приведем описание всех перечисленных источников, каждый из которых формирует отдельный модуль модели.

Транзакционные данные

В каждом банке есть очень важный, доступный и бесплатный источник информации по клиентам — обороты по счетам и данные по депозитам. Эти данные могут оказывать разное влияние на вероятность дефолта. Например, вероятность дефолта клиента, как правило, тем ниже:

  • Чем ниже доля штрафов и судебных платежей в его расходах;

  • Чем выше доля уплаченных налогов;

  • Чем более стабильны поступления и расходы (самую низкую вероятность дефолта показывают клиенты, у которых идет умеренный рост поступлений и расходов, и, наоборот, резкий рост или падение расходов/поступлений могут увеличивать вероятность дефолта).

В целом из опыта можно сказать, что для малого и среднего бизнеса, который чаще, чем крупный держит средства в одном банке, это один из самых предсказательных модулей (коэффициент Джини более 50%), к тому же этот модуль показывает очень стабильные результаты при мониторинге модели.

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

Данные кредитной истории

При количественной оценке кредитного риска очень важна информация о том, как заемщик ранее обслуживал свой долг. Необходимо формирование в банке витрин, которые содержат информацию и по внутренней кредитной истории, и по внешней — из запросов в БКИ, которые делались по клиенту. Можно привести следующие примеры факторов:

  1. Максимальный бакет просрочки по заемщику за последний год (1-30, 31-60, 60+);

  2. Количество договоров, по которым допущена просрочка определенного типа за последний год;

  3. Количество погашенных/закрытых договоров, количество действующих договоров;

  4. Срок кредитной истории.

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

Данные источников-агрегаторов

В качестве отдельных модулей могут использоваться данные источников-агрегаторов — таких, как: СПАРК, Селдон, Контур-фокус, БИР-Аналитик, Интегрум. Из данных источников можно взять информацию по отрасли, региону работы, сроку работы компании, количеству смен руководителей/собственников и т.д.

Арбитражи

Данные по арбитражам также могут оказывать сильное влияние на ранжирующую способность модели. В качестве примера можно привести следующие факторы:

  1. Суммы исков в качестве ответчика по отношению к выручке/активам/прибыли;

  2. Динамика зарегистрированных исков/проигранных дел (суммы, количество) за текущий год к предыдущему году;

  3. Доля проигранных дел от всех поданных исков;

  4. Возможно использование исков определенного типа (хозяйственные, налоговые, корпоративные, имущественные, административные, финансовые, др.)

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

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

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

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

Разберемся, кто такой, а, точнее, что такое стекинг и как он применяется.

Стекинг

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

Перед расчетом прокси-скоров по каждому из модулей модели необходимо рассчитать уровни дефолтности (Default Rate, DR):

  • по наблюдениям, где есть скоры (DR);

  • по наблюдениям, где нет скоров (DRns).

Для справки: Default Rate (DR), или уровень дефолтности — это отношение фактически вышедших в дефолт заемщиков ко всем недефолтным заемщикам на начало рассматриваемого периода, обычно выражается в процентах.

Для построения регрессии и расчета прокси-скоров рассчитывается калибровочный вес по формуле:

где dr — фактическая вероятность дефолта по выборке, tr — целевая вероятность дефолта.

Затем на данных выборки строится логистическая регрессия с присвоением классам весов W_calib для недефолтных и 1 для дефолтных наблюдений. Из результатов регрессии сохраняются коэффициенты a и b.

def calibration(scores, target, tr):
    ”””
    Функция калибровки.
    - scores – значения скоров
    - target – массив меток о дефолте в выборке для разработки
    - tr – целевой Default Rate
    ”””
	        	
    model = LogisticRegression(penalty=’none’, class_weight={0:w_calib, 1:1})
    model.fit(scores, target)

    # параметры
	a = model.intercept_[0]
	b = model.coef_[0][0]

	return a, b

Здесь и для дальнейшего понимания нужно учесть, что вероятность дефолта связана со скором следующей формулой:

где S — скор, PD — вероятность дефолта (probability of default)

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

Вероятность дефолта наблюдений без реальных скоров по модулю считается равной DRns, таким образом, прокси-значение скора по данным наблюдениям получается путем преобразования DRns в скор. После этого в выборке с наблюдениями без скора проставляется полученный единый для таких наблюдений прокси-скор.

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

где:

  • PD (F1, F2,…,Fn) — моделируемая вероятность дефолта;

  • Fn — трансформированное и нормализованное значение скора модуля n;

  • βn — коэффициенты регрессии.

Значения коэффициентов регрессии получаем посредством максимизации функции правдоподобия:

где:

  • L (Y1, Y2,..., Yn; ϴ) — функция максимального правдоподобия;

  • Y1...n — реализованное событие;

  • Pϴ (Yn) — логистическая регрессия, моделирующая вероятность дефолта;

  • ϴ — вектор коэффициентов βn логистической регрессии.

Веса факторов определялись на основе коэффициентов логистической регрессии в соответствии с формулой:

где:

  • Wi – вес i-го фактора;

  • βi – коэффициент регрессии i-го фактора;

  • βj– коэффициенты логистической регрессии.

Подводя итог: данная структура модели — модули, взвешенные в единый стекинг — позволяет существенно улучшить ранжирование по модели, в отличие от «плоской» структуры, когда вся модель — это один модуль с набором факторов из разных источников. Можно привести пример, подтверждающий преимущества модульной структуры модели. Так, при тестировании одной из последних разработанных моделей были получены следующие показатели: +8% показателя Джини модели в абсолютном значении, +15% — в относительном при модульной структуре модели по сравнению с «плоской».

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

Калибровка

После стекинга средняя предсказанная вероятность дефолта может не совпадать с целевой вероятностью для всего портфеля. Поэтому полученные результаты нужно откалибровать на целевой прогнозируемый по кредитному портфелю показатель Default Rate (DR).

Калибровка выполняется в два этапа.

На первом этапе необходимо получить коэффициенты a и b калибровочной кривой. Они подбираются таким образом, чтобы средняя рассчитанная вероятность дефолта PD стремилась к заданному уровню. Важно отметить, что все действия выполняются на выборке для разработки.

Для выборки рассчитывается фактическая вероятность дефолта по формуле:

где N_def — количество дефолтов, N_obs — количество наблюдений.

Аналогично стекингу, здесь рассчитывается калибровочный вес и строится логистическая регрессия, из которой сохраняются коэффициенты a и b.

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

Целью второго этапа является изменение смещения калибровочной кривой при ее неизменной форме таким образом, чтобы средняя вероятность дефолта PD текущего портфеля с учетом дополнительных модулей соответствовала целевому прогнозируемому по кредитному портфелю показателю Default Rate (DR).

print(‘Подбор параметра минимизации’)
methods = [‘BFGS’,
	    ‘L-BFGS-B’,
	    ‘SLSQP’,
	    ‘Nelder-Mead’,
	    ‘Powell’,
	    ‘CG’,
	    ‘Newton-CG’,
	    ‘TNC’,
	    ‘COBYLA’,
	    ‘trust-constr’,
	    ‘dogleg’,
	    ‘trust-ncg’,
	    ‘trust-exact’,
	    ‘trust-krylov’]
for method in methods:
	print(method)
	minimizer = minimize(
		calc_min_score,
		a,
		method = method
	)
	if minimizer.success:
		break
if not minimizer.success:
	raise ValueError(‘Подбор не удался!’)
res = minimizer.x.tolist()[0]

И вот теперь точно все! В этой статье мы рассказали вам о сущности и областях применения скоринговых моделей и моделей PD; осветили возможные дополнительные источники данных для моделирования, а также их связь с модулями модели; объяснили, как связать все модули для получения итогового скора (стекинг) и коротко описали процесс калибровки полученной модели.

Для решения задач, описанных в статье, применяются стандартные функции sklearn и scipy в Python.

Комментарии (2)