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

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

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

  • Та же дискриминация, разная точность

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

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

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

Загрузка и подгонка данных

Загрузите кредитные данные и подгоните Logistic модель ПД в течение жизни с использованием 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"

Та же дискриминация, разная точность

Дискриминация измеряет только рейтинг клиентов, то есть получают ли более рискованные клиенты более высокие PD, чем менее рискованные клиенты. Поэтому, если вы масштабируете вероятности или применяете другое монотонное преобразование, которое приводит к допустимым вероятностям, мера 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.

The modelAccuracyPlot функция измеряет точность модели для PD на сгруппированных данных. Пока среднее значение 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] Baesens, Bart, Daniel Roesch, and Harald Scheule. Аналитика кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.

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

См. также

| | | | | | | |

Похожие примеры

Подробнее о