Вы когда-нибудь обращались за кредитом или кредитной картой и задавались вопросом, как банк решает, одобрить или отклонить вашу заявку? Банки используют модели кредитного скоринга для оценки риска кредитования заявителей. Но как работают эти модели и как банки обеспечивают их точность с течением времени? В этом сообщении блога мы обсудим важность стабильности данных в кредитном скоринге и то, как два важных показателя в науке о данных, индекс стабильности населения (PSI) и индекс характеристической стабильности (CSI), можно использовать для отслеживания изменений в данных. стабильность.

Проблема: неточность модели кредитного скоринга

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

Стабильность данных и ее важность в кредитном скоринге

Стабильность данных относится к согласованности данных во времени. В кредитном скоринге стабильность данных имеет решающее значение для обеспечения того, чтобы модели оставались точными и актуальными с течением времени. Если распределение данных слишком сильно меняется с течением времени, модели могут стать менее точными, что приведет к неправильным решениям об одобрении или отклонении кредитных заявок.

Индекс стабильности населения (PSI)

PSI — это показатель, который измеряет стабильность распределения данных между двумя периодами времени. Он обычно используется при моделировании кредитного риска для отслеживания изменений в распределении оценок риска с течением времени. Рассчитывая PSI между текущим периодом и базовым периодом, банки могут выявить значительные изменения в распределении данных, которые могут потребовать обновления модели.

PSI рассчитывается по следующей формуле:

PSI = ∑(фактический % - ожидаемый %) * ln(фактический % / ожидаемый %)

Где:

  • Фактический % = процент наблюдений в определенной категории в текущем периоде.
  • Ожидаемый % = процент наблюдений в той же категории в базовом периоде.

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

Характеристический индекс стабильности (CSI)

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

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

CSI = 1 — | Текущие коэффициенты — Базовый уровень коэффициентов |

Значение CSI, равное 0, указывает на то, что взаимосвязь между двумя переменными стабильна, а значение CSI больше 0 указывает на значительное изменение взаимосвязи между двумя переменными между двумя периодами времени.

Как стабильность данных и PSI/CSI применяются в моделях кредитного скоринга

Теперь давайте применим эти концепции к нашей модели кредитного скоринга. Отслеживая стабильность данных и используя такие показатели, как PSI и CSI, банки могут гарантировать, что их модели кредитного скоринга останутся точными и актуальными с течением времени. Например, банк может рассчитать PSI между текущим периодом и базовым периодом, чтобы выявить существенные изменения в распределении оценок риска. Если значение PSI больше 0, банк может исследовать изменения в распределении оценок риска и определить, нуждается ли модель кредитного скоринга в обновлении.

Точно так же банк может рассчитать CSI между текущим периодом и базовым периодом, чтобы выявить существенные изменения во взаимосвязи между показателями риска и невозвратом кредита. Если значение CSI больше 0, банк может исследовать изменения в отношениях между двумя переменными и определить, нужно ли обновлять модель кредитного скоринга.

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

Вот пример кода на Python для расчета PSI и CSI:

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression

def calculate_psi(actual, expected, bins=10):
    """Calculate Population Stability Index (PSI)"""
    actual_pct = pd.cut(actual, bins=bins, include_lowest=True).value_counts(normalize=True)
    expected_pct = pd.cut(expected, bins=bins, include_lowest=True).value_counts(normalize=True)
    psi = sum((actual_pct - expected_pct) * np.log(actual_pct / expected_pct))
    return psi

def calculate_csi(actual_baseline, actual_current, feature_cols):
    """Calculate Characteristic Stability Index (CSI)"""
    baseline_model = LogisticRegression(random_state=42, solver='liblinear').fit(actual_baseline[feature_cols], actual_baseline['target'])
    current_model = LogisticRegression(random_state=42, solver='liblinear').fit(actual_current[feature_cols], actual_current['target'])
    csi = 1 - np.abs(baseline_model.coef_ - current_model.coef_) / np.abs(baseline_model.coef_)
    return csi

# Sample usage
# Define input data
baseline_data = pd.DataFrame({
    'feature_1': [1, 2, 3, 4, 5, 6, 7, 8, 9],
    'feature_2': [10, 20, 30, 40, 50, 60, 70, 80, 90],
    'target': [0, 0, 0, 1, 1, 1, 1, 1, 1]
})
current_data = pd.DataFrame({
    'feature_1': [1, 2, 3, 4, 5, 6, 7, 8, 9],
    'feature_2': [10, 20, 30, 40, 50, 60, 70, 80, 90],
    'target': [0, 0, 0, 1, 1, 1, 0, 1, 1]
})

# Calculate PSI
psi = calculate_psi(actual=current_data['feature_1'], expected=baseline_data['feature_1'])
print(f"PSI: {psi:.4f}")

# Calculate CSI
csi = calculate_csi(actual_baseline=baseline_data, actual_current=current_data, feature_cols=['feature_1', 'feature_2'])
print(f"CSI: {csi}")

Заключение

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

Обо мне

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

Я страстно желаю делиться своими знаниями, поэтому подписывайтесь на меня в Medium, чтобы получать статьи и учебные пособия по науке о данных, или свяжитесь со мной в LinkedIn, чтобы быть в курсе моих последних проектов и исследований. Давайте объединимся и исследуем захватывающий мир науки о данных вместе!