Вычисление данных AUROC и ROC
вычисляет площадь под кривой рабочих характеристик приемника (AUROC). DiscMeasure = modelDiscrimination(pdModel,data)modelDiscrimination поддерживает сегментацию и сравнение с ссылочной моделью.
[ указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к входным аргументам в предыдущем синтаксисе.DiscMeasure,DiscData] = modelDiscrimination(___,Name,Value)
В этом примере показано, как использовать fitLifetimePDModel для совмещения данных с Logistic и затем создать область под кривой рабочих характеристик приемника (AUROC) и кривой ROC.
Загрузить данные
Загрузите данные кредитного портфеля.
load RetailCreditPanelData.mat
disp(head(data)) ID ScoreGroup YOB Default Year
__ __________ ___ _______ ____
1 Low Risk 1 0 1997
1 Low Risk 2 0 1998
1 Low Risk 3 0 1999
1 Low Risk 4 0 2000
1 Low Risk 5 0 2001
1 Low Risk 6 0 2002
1 Low Risk 7 0 2003
1 Low Risk 8 0 2004
disp(head(dataMacro))
Year GDP Market
____ _____ ______
1997 2.72 7.61
1998 3.57 26.24
1999 2.86 18.1
2000 2.43 3.19
2001 1.26 -10.51
2002 -0.59 -22.95
2003 0.63 2.78
2004 1.85 9.48
Объединение двух компонентов данных в один набор данных.
data = join(data,dataMacro); disp(head(data))
ID ScoreGroup YOB Default Year GDP Market
__ __________ ___ _______ ____ _____ ______
1 Low Risk 1 0 1997 2.72 7.61
1 Low Risk 2 0 1998 3.57 26.24
1 Low Risk 3 0 1999 2.86 18.1
1 Low Risk 4 0 2000 2.43 3.19
1 Low Risk 5 0 2001 1.26 -10.51
1 Low Risk 6 0 2002 -0.59 -22.95
1 Low Risk 7 0 2003 0.63 2.78
1 Low Risk 8 0 2004 1.85 9.48
Данные раздела
Разделите данные на разделы обучения и тестирования.
nIDs = max(data.ID); uniqueIDs = unique(data.ID); rng('default'); % for reproducibility c = cvpartition(nIDs,'HoldOut',0.4); TrainIDInd = training(c); TestIDInd = test(c); TrainDataInd = ismember(data.ID,uniqueIDs(TrainIDInd)); TestDataInd = ismember(data.ID,uniqueIDs(TestIDInd));
Создать Logistic Модель жизненного цикла PD
Использовать fitLifetimePDModel для создания Logistic модель.
pdModel = fitLifetimePDModel(data(TrainDataInd,:),"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"
Отображение базовой модели.
disp(pdModel.Model)
Compact generalized linear regression model:
logit(Default) ~ 1 + ScoreGroup + YOB + GDP + Market
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
__________ _________ _______ ___________
(Intercept) -2.7422 0.10136 -27.054 3.408e-161
ScoreGroup_Medium Risk -0.68968 0.037286 -18.497 2.1894e-76
ScoreGroup_Low Risk -1.2587 0.045451 -27.693 8.4736e-169
YOB -0.30894 0.013587 -22.738 1.8738e-114
GDP -0.11111 0.039673 -2.8006 0.0051008
Market -0.0083659 0.0028358 -2.9502 0.0031761
388097 observations, 388091 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 1.85e+03, p-value = 0
disp(pdModel.Model.Coefficients)
Estimate SE tStat pValue
__________ _________ _______ ___________
(Intercept) -2.7422 0.10136 -27.054 3.408e-161
ScoreGroup_Medium Risk -0.68968 0.037286 -18.497 2.1894e-76
ScoreGroup_Low Risk -1.2587 0.045451 -27.693 8.4736e-169
YOB -0.30894 0.013587 -22.738 1.8738e-114
GDP -0.11111 0.039673 -2.8006 0.0051008
Market -0.0083659 0.0028358 -2.9502 0.0031761
Типовая дискриминация для создания AUROC и ROC
Модель «дискриминации» измеряет, насколько эффективно модель ранжирует клиентов по риску. Выходные данные AUROC и ROC можно использовать для определения того, действительно ли клиенты с более высокими прогнозируемыми PD имеют более высокий риск в наблюдаемых данных.
DataSetChoice ="Training"; if DataSetChoice=="Training" Ind = TrainDataInd; else Ind = TestDataInd; end DiscMeasure = modelDiscrimination(pdModel,data(TrainDataInd,:),'DataID',DataSetChoice); disp(DiscMeasure)
AUROC
_______
Logistic, Training 0.69377
Визуализация ROC для Logistic модель с использованием modelDiscriminationPlot.
modelDiscriminationPlot(pdModel,data(TrainDataInd,:));

Данные могут быть сегментированы для получения AUROC для каждого сегмента и соответствующих данных ROC.
SegmentVar ="YOB"; DiscMeasure = modelDiscrimination(pdModel,data(Ind,:),'SegmentBy',SegmentVar,'DataID',DataSetChoice); disp(DiscMeasure)
AUROC
_______
Logistic, YOB=1, Training 0.63989
Logistic, YOB=2, Training 0.64709
Logistic, YOB=3, Training 0.6534
Logistic, YOB=4, Training 0.6494
Logistic, YOB=5, Training 0.63479
Logistic, YOB=6, Training 0.66174
Logistic, YOB=7, Training 0.64328
Logistic, YOB=8, Training 0.63424
Визуализация ROC, сегментированного YOB, ScoreGroup, или Year с использованием modelDiscriminationPlot.
modelDiscriminationPlot(pdModel,data(Ind,:),'SegmentBy',SegmentVar,'DataID',DataSetChoice);

pdModel - Вероятность модели по умолчаниюLogisitic объект | Probit объектВероятность модели по умолчанию, указанная как Logistic или Probit объект, ранее созданный с помощью fitLifetimePDModel.
Примечание
'ModelID' имущества pdModel объект используется в качестве идентификатора или тега для pdModel.
Типы данных: object
data - ДанныеДанные, указанные как NumRowsоколо-NumCols таблица с спроецированными предикторными значениями для прогнозирования срока службы. Имена предикторов и типы данных должны соответствовать базовой модели.
Типы данных: table
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[PerfMeasure,PerfData] = modelDiscrimination(pdModel,data(Ind,:),'DataID',DataSetChoice)'DataID' - Идентификатор набора данных""
(по умолчанию) | символьный вектор | строкаИдентификатор набора данных, указанный как разделенная запятыми пара, состоящая из 'DataID' и символьный вектор или строку.
Типы данных: char | string
'SegmentBy' - Наименование столбца в data входные данные, используемые для набора данных сегментов""
(по умолчанию) | символьный вектор | строкаИмя столбца на входе данных, необязательно переменной модели, которая будет использоваться для сегментации набора данных, указанного как пара, разделенная запятыми, состоящая из 'SegmentBy' и символьный вектор или строку.
Для каждого сегмента выводится одно значение AUROC, и соответствующие данные ROC для каждого сегмента возвращаются в PerfData необязательный вывод.
Типы данных: char | string
'ReferencePD' - Условные значения ПД, прогнозируемые для data по ссылочной модели[ ]
(по умолчанию) | числовой вектор'ReferenceID' - Идентификатор ссылочной модели'Reference'
(по умолчанию) | символьный вектор | строкаИдентификатор ссылочной модели, указанный как разделенная запятыми пара, состоящая из 'ReferenceID' и символьный вектор или строку. 'ReferenceID' используется в modelDiscrimination выходные данные для целей отчетности.
Типы данных: char | string
DiscMeasure - информация AUROC для каждой модели и каждого сегментаИнформация AUROC для каждой модели и каждого сегмента возвращается в виде таблицы. DiscMeasure имеет один столбец с именем 'AUROC' и количество строк зависит от количества сегментов и от того, используется ли ReferenceID для ссылочной модели и ReferencePD для справочных данных. Имена строк DiscMeasure сообщите идентификаторы модели, сегмента и данных.
DiscData - данные ROC для каждой модели и каждого сегментаДанные ROC для каждой модели и каждого сегмента возвращаются в виде таблицы. Существует три столбца для данных ROC с именами столбцов 'X', 'Y', и 'T', где первые два являются координатами X и Y кривой ROC, а T содержит соответствующие пороги.
Если вы используете SegmentBy, функция накапливает данные ROC для всех сегментов и DiscData содержит столбец со значениями сегментации для указания места начала и окончания каждого сегмента.
Если данные ссылочной модели приведены с помощью ReferenceID и ReferencePD, DiscData выходы для основной и ссылочной моделей сложены в стопку, с дополнительным столбцом 'ModelID' указывает, где начинается и заканчивается каждая модель.
Типовая дискриминация измеряет ранжирование риска.
Кредиты с более высоким риском должны получить более высокую прогнозируемую вероятность дефолта (PD), чем кредиты с более низким риском. modelDiscrimination функция вычисляет характеристическую кривую оператора приемника (AUROC), иногда называемую просто областью под кривой (AUC). Эта метрика в диапазоне от 0 до 1 и выше указывает на лучшее различение.
Дополнительные сведения о кривой характеристики оператора приемника (ROC) см. в разделе Дискриминация модели и кривые производительности.
[1] Бэзенс, Барт, Даниэль Рош и Харальд Шиле. Анализ кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.
[2] Беллини, Тициано. МСФО (IFRS) 9 и CECL «Моделирование и валидация кредитных рисков: практическое руководство с примерами, работающими в R и SAS». Сан-Диего, Калифорния: Elsevier, 2019.
[3] Бриден, Иосиф. Жизнь с CECL: The Modeling Dictionary. Santa Fe, NM: Prescient Models LLC, 2018.
fitLifetimePDModel | Logistic | modelAccuracy | modelAccuracyPlot | modelDiscriminationPlot | predict | predictLifetime | Probit
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.