exponenta event banner

Сравнение дискриминации и точности модели для проверки вероятности дефолта

В этом примере показаны некоторые различия между различиями и метриками точности для проверки моделей вероятности дефолта (PD).

Модели жизненного цикла PD в Toolbox™ управления рисками (см. fitLifetimePDModel) поддерживают область под кривой рабочей характеристики приемника (AUROC) в качестве метрики распознавания и среднеквадратичную ошибку (RMSE) в качестве метрики точности. Метрика AUROC измеряет ранжирование, тогда как RMSE измеряет точность прогнозируемых значений. Пример показывает, что возможно иметь:

  • Одинаковая дискриминация, разная точность

  • Одинаковая точность, различная дискриминация

Поэтому важно рассматривать как дискриминацию, так и точность как часть структуры проверки модели.

Существует несколько различных метрик для дискриминации модели PD и точности модели. Дополнительные сведения см. в разделе Ссылки. Различные метрики могут иметь разные характеристики, и поведение, продемонстрированное в этом примере, не обязательно обобщается на другие метрики дискриминации и точности. Цель этого примера - подчеркнуть важность использования метрик дискриминации и точности для оценки модельных прогнозов.

Загрузить и подогнать данные

Загрузка кредитных данных и соответствие Logistic пожизненная модель PD с использованием fitLifetimePDModel.

load RetailCreditPanelData.mat
data = join(data,dataMacro);
pdModel = fitLifetimePDModel(data,"logistic",...
    'AgeVar','YOB',...
    'IDVar','ID',...
    'LoanVars','ScoreGroup',...
    'MacroVars',{'GDP','Market'},...
    'ResponseVar','Default');
disp(pdModel)
  Logistic with properties:

        ModelID: "Logistic"
    Description: ""
          Model: [1x1 classreg.regr.CompactGeneralizedLinearModel]
          IDVar: "ID"
         AgeVar: "YOB"
       LoanVars: "ScoreGroup"
      MacroVars: ["GDP"    "Market"]
    ResponseVar: "Default"

Одинаковая дискриминация, разная точность

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

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

PD0 = predict(pdModel,data);
PD1 = 2*PD0;

disp([PD0(1:10) PD1(1:10)])
    0.0090    0.0181
    0.0052    0.0104
    0.0044    0.0088
    0.0038    0.0076
    0.0035    0.0071
    0.0036    0.0072
    0.0019    0.0037
    0.0011    0.0022
    0.0164    0.0328
    0.0094    0.0189

Убедитесь, что на меру дискриминации не влияет использование modelDiscriminationPlot.

modelDiscriminationPlot(pdModel,data,'DataID','in-sample','ReferencePD',PD1,'ReferenceID','Scaled')

Figure contains an axes. The axes with title ROC in-sample Logistic, AUROC = 0.69643 Scaled, AUROC = 0.69643 contains 2 objects of type line. These objects represent Logistic, Scaled.

Использовать modelAccuracyPlot для визуализации наблюдаемых скоростей по умолчанию по сравнению с прогнозируемыми вероятностями дефолта (PD). Однако изменение сильно влияет на точность. Модифицированные PD находятся далеко от наблюдаемых стандартных скоростей, и RMSE для модифицированных PD на порядки выше, чем RMSE исходных PD.

modelAccuracyPlot(pdModel,data,'Year',"DataID",'in-sample','ReferencePD',PD1,"ReferenceID",'Scaled')

Figure contains an axes. The axes with title Scatter Grouped by Year in-sample Logistic, RMSE = 0.00028571 Scaled, RMSE = 0.010892 contains 3 objects of type line. These objects represent Observed, Logistic, Scaled.

Одинаковая точность, различная дискриминация

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

Один из способов сделать это - переставить PD внутри группы. Это влияет на ранжирование в каждой группе, но средний PD для группы остается неизменным.

rng('default'); % for reproducibility
PD1 = PD0;
for Year=1997:2004
   Ind = data.Year==Year;
   PDYear = PD0(Ind);
   PD1(Ind) = PDYear(randperm(length(PDYear)));
end

Убедитесь, что мера дискриминации хуже для измененных PD с помощью modelDiscriminationPlot.

modelDiscriminationPlot(pdModel,data,'DataID','in-sample','ReferencePD',PD1,'ReferenceID','Permutation')

Figure contains an axes. The axes with title ROC in-sample Logistic, AUROC = 0.69643 Permutation, AUROC = 0.5678 contains 2 objects of type line. These objects represent Logistic, Permutation.

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

modelAccuracyPlot(pdModel,data,'Year',"DataID",'in-sample','ReferencePD',PD1,"ReferenceID",'Permutation')

Figure contains an axes. The axes with title Scatter Grouped by Year in-sample Logistic, RMSE = 0.00028571 Permutation, RMSE = 0.00028571 contains 3 objects of type line. These objects represent Observed, Logistic, Permutation.

Этот пример показывает, что метрики дискриминации и точности не обязательно идут рука об руку. Различные прогнозы могут иметь сходные RMSE, но намного отличающиеся AUROC или сходные AUROC, но значительно отличающиеся RMSE. Поэтому важно рассматривать как дискриминацию, так и точность как часть структуры проверки модели.

Ссылки

[1] Бэзенс, Барт, Даниэль Рош и Харальд Шиле. Анализ кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.

[2] Базельский комитет по банковскому надзору, «Исследования по проверке внутренних рейтинговых систем», Рабочий документ № 14, 2005.

См. также

| | | | | | | |

Связанные примеры

Подробнее