Подробное объяснение процесса расчета таблицы винтажного анализа.
Подробное объяснение процесса расчета таблицы винтажного анализа.

Привет всем, я Дон Ге.

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

1. 4 статистических момента времени

Если взять в качестве примера кредитный месяц 2022-11, то ставка просрочки M2+, соответствующая каждому MOB, равна:

M2+ставка просрочки MOB1 = M2+сумма просрочки MOB1/общая сумма кредита в ноябре 2022 г. = 0

Коэффициент просрочки М2+МОБ2 = сумма просроченной задолженности М2+МОБ2/общая сумма кредита в ноябре 2022 г. = 0,95%.

M2+ставка просрочки MOB12 = M2+сумма просрочки MOB12/общая сумма кредита в ноябре 2022 г. = 3,22%

общая формула:M2+процент просроченной задолженности MOB(N)=M2+сумма просроченной задолженности MOB(N)/общая сумма кредита в xx кредитном месяце

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

  • Срок погашения:После составления плана погашения,Определяется ежемесячная дата погашения. Есть два способа,Во-первых, дата погашения определяется на основе даты кредита.,Например, кредит будет выдан 10 ноября 2022 года.,Затем погашайте кредит 10-го числа каждого последующего месяца.,Во-вторых, все клиенты имеют одинаковую дату погашения.,Например, все клиенты производят выплаты 21 числа каждого месяца.
  • Фактическая дата погашения:Фактическая дата погашения клиентом,Определяется поведением клиента при погашении долга,Есть три способа сравнения со сроком сокращения.,Досрочное погашение、Погашайте вовремя、Неуплата после установленного срока.
  • День наблюдения МОБ:каждыйMOBЕжемесячное время наблюдения,также делится на два типа,Один из них — конец периода,Что-то вроде Это конец месяца。
  • Текущий день наблюдения:Просто предположим, что вы стоите в определенный момент времени,Затем просмотрите просроченную дату каждого MOB после каждого ежемесячного кредита в истории. Отличается от предыдущих трех временных точек,Текущий день наблюдения не генерируется периодически,Скорее, это исправлено,Это одинаково для всех месяцев кредита.

Подводя итог, есть несколько вещей, которые вам необходимо подтвердить, прежде чем выполнять расчеты Vintage:

  • Текущий день наблюдения Какой сегодня день?
  • День наблюдения Калибр МОБ,Это конец месяца,Или в конце срока?
  • Обратите внимание на степень просрочки: просрочена ли она в настоящее время или была ли она когда-либо просроченной?
  • Калибр суммы или калибр порядка?

В реальных бизнес-сценариях чаще используется калибр ставки просроченной задолженности: «Наблюдение за моментом времени на конец месяца MOB + текущий калибр просрочки + просроченный неурегулированный баланс».

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

2. Расчет дней просрочки

Во-первых, когда срок родов превышает текущий день наблюдения, то есть срок родов еще находится в будущем и еще не наступил, поэтому мы не можем судить.

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

Третий тип заключается в том, что фактическая дата погашения находится между датой платежа и датой наблюдения за толпой, что означает, что, хотя он и просрочен, он был погашен до даты наблюдения за толпой. При этом, если калибр в данный момент просрочен, то если в конце моб просрочки не возникает, то количество дней просрочки равно 0, если просрочен именно калибр, то он просрочен, и количество; дней просрочки = фактическая дата погашения - дата погашения = 5

В-четвертых, фактическая дата погашения наступает после даты наблюдения MOB, хотя она и погашается, но позже, чем точка наблюдения MOB. Таким образом, текущая дата просрочки совпадает с предыдущей датой просрочки. = Дата наблюдения МОБ – дата погашения =21.

Пятый тип - это то, что с наступления срока платежа до текущей даты наблюдения клиент не совершил никаких действий по погашению, то есть не был произведен расчет. Таким образом, текущие стандарты просроченной и прошлой просрочки одинаковы. Количество дней просрочки = дата наблюдения МОБ - дата погашения = 21.

3. Расчет просроченных сумм

Ранее мы рассчитывали статус просрочки и дни просрочки каждого клиента по каждому мобу на основе 4 статистических моментов времени.

  • Количество дней просрочки можно конвертировать в количество периодов просрочки, например, M1+/M2+/M3+ и т. д., таким образом мы можем наблюдать тенденцию скорости просрочки M1+/M2+/M3+ при винтажном старении.
  • Судя по просроченному статусу каждого моба,Мы также можем статистически вывести оставшуюся невыплаченную основную сумму долга, которая просрочена.,Это числитель суммы просроченной задолженности, которую мы требовали ранее.

4. Логика расчета ставки просроченной задолженности

5. Практическая работа с кодом Python

Код Python для расчета дней и сумм просрочки в основной части показан ниже.

Язык кода:javascript
копировать
###########################Просроченная идентификация#################### #####################
# Обработать просроченный знак
data_all_1['odu_flag'] = 0
data_all_1.loc[(data_all_1['actual_repay_date']>data_all_1['obser_month_end'])|(data_all_1['actual_repay_date'].isnull()),'odu_flag'] = 1
data_all_1['odu_flag_sft'] = data_all_1.groupby('order_id')['odu_flag'].transform(lambda x:x.shift(1))
data_all_1['actual_repay_date_sft'] = data_all_1.groupby('order_id')['actual_repay_date'].transform(lambda x:x.shift(1))
data_all_1['odu_first_flag'] = 0
data_all_1.loc[(data_all_1['odu_flag_sft']==1)&(data_all_1['odu_flag']==1)&(data_all_1['actual_repay_date_sft']>data_all_1['obser_month_end']),'odu_first_flag'] = 2
data_all_1.loc[(data_all_1['odu_flag_sft']==1)&(data_all_1['odu_flag']==1)&(data_all_1['actual_repay_date_sft']<=data_all_1['obser_month_end']),'odu_first_flag'] = 1
# Обновить оставшуюся сумму основного долга
data_all_1.loc[data_all_1['odu_first_flag']==1,'balance'] = data_all_1['balance_sft']
data_all_1.loc[(data_all_1['odu_first_flag']==2),'balance'] = np.nan
data_all_1['balance'] = data_all_1.groupby('order_id')['balance'].transform(lambda x:x.ffill())
##########################Количество дней просрочки################### # ####################
# Фактически дата наблюдения в конце месяца еще не прошла.
data_all_1.loc[(data_all_1['actual_repay_date'].isnull()==False)&(data_all_1['actual_repay_date']<=data_all_1['obser_month_end']),'odu_days'] = 0
# Просрочено - просрочено впервые.
data_all_1.loc[(data_all_1['odu_first_flag']==1),'odu_days'] = (data_all_1['obser_month_end']-data_all_1['expected_date']).dt.days
# по-прежнему просрочено
data_all_1['expected_date_2'] = data_all_1['expected_date']
data_all_1.loc[(data_all_1['odu_first_flag']==2),'expected_date_2'] = np.nan
data_all_1['expected_date_2'] = data_all_1.groupby('order_id')['expected_date_2'].transform(lambda x:x.ffill())
data_all_1.loc[(data_all_1['odu_first_flag']==2),'odu_days'] = (data_all_1['obser_month_end']-data_all_1['expected_date_2']).dt.days

Вот и все.

Полный код выглядит следующим образом (реальные бизнес-данные + практика написания кода):

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.