В этом примере показаны некоторые различия между метриками дискриминации и точности для валидации моделей вероятности дефолта (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')
Использование modelAccuracyPlot
визуализировать наблюдаемые скорости дефолта по сравнению с предсказанными вероятностями дефолта (PD). Точность, однако, сильно зависит от изменения. Измененные PD далеко от наблюдаемых скоростей дефолта, и RMSE для измененных PD является порядком величины выше, чем RMSE исходных PD.
modelAccuracyPlot(pdModel,data,'Year',"DataID",'in-sample','ReferencePD',PD1,"ReferenceID",'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')
The modelAccuracyPlot
функция измеряет точность модели для PD на сгруппированных данных. Пока среднее значение PD для группы не изменилось, отчетная точность с использованием той же сгруппированной переменной не меняется.
modelAccuracyPlot(pdModel,data,'Year',"DataID",'in-sample','ReferencePD',PD1,"ReferenceID",'Permutation')
Этот пример показывает, что метрики дискриминации и точности не обязательно идут рука об руку. Различные предсказания могут иметь сходный RMSE, но много другого AUROC или аналогичный AUROC, но много другого RMSE. Поэтому важно рассматривать как дискриминацию, так и точность как часть среды валидации моделей.
[1] Baesens, Bart, Daniel Roesch, and Harald Scheule. Аналитика кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.
[2] Базельский комитет по банковскому надзору, «Исследования по валидации внутренних рейтинговых систем», рабочий документ № 14, 2005.
fitLifetimePDModel
| Logistic
| modelAccuracy
| modelAccuracyPlot
| modelDiscrimination
| modelDiscriminationPlot
| predict
| predictLifetime
| Probit