Вычисление данных AUROC и ROC
вычисляет площадь под кривой рабочих характеристик приемника (AUROC). DiscMeasure = modelDiscrimination(lgdModel,data)modelDiscrimination поддерживает сегментацию и сравнение с эталонной моделью, а также альтернативные методы для дискретизации ответа LGD в двоичную переменную.
[ указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к входным аргументам в предыдущем синтаксисе.DiscMeasure,DiscData] = modelDiscrimination(___,Name,Value)
В этом примере показано, как использовать fitLGDModel для совмещения данных с Regression модель, а затем использовать modelDiscrimination для вычисления AUROC и ROC.
Загрузить данные
Загрузите данные о потерях по умолчанию.
load LGDData.mat
head(data)ans=8×4 table
LTV Age Type LGD
_______ _______ ___________ _________
0.89101 0.39716 residential 0.032659
0.70176 2.0939 residential 0.43564
0.72078 2.7948 residential 0.0064766
0.37013 1.237 residential 0.007947
0.36492 2.5818 residential 0
0.796 1.5957 residential 0.14572
0.60203 1.1599 residential 0.025688
0.92005 0.50253 investment 0.063182
Данные раздела
Разделите данные на разделы обучения и тестирования.
rng('default'); % for reproducibility NumObs = height(data); c = cvpartition(NumObs,'HoldOut',0.4); TrainingInd = training(c); TestInd = test(c);
Создать Regression Модель LGD
Использовать fitLGDModel для создания Regression модель с использованием обучающих данных. Также можно использовать fitLGDModel для создания Tobit путем изменения lgdModel входной аргумент для 'Tobit'.
lgdModel = fitLGDModel(data(TrainingInd,:),'Regression');
disp(lgdModel) Regression with properties:
ResponseTransform: "logit"
BoundaryTolerance: 1.0000e-05
ModelID: "Regression"
Description: ""
UnderlyingModel: [1x1 classreg.regr.CompactLinearModel]
PredictorVars: ["LTV" "Age" "Type"]
ResponseVar: "LGD"
Отображение базовой модели.
disp(lgdModel.UnderlyingModel)
Compact linear regression model:
LGD_logit ~ 1 + LTV + Age + Type
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ _______ __________
(Intercept) -4.7549 0.36041 -13.193 3.0997e-38
LTV 2.8565 0.41777 6.8377 1.0531e-11
Age -1.5397 0.085716 -17.963 3.3172e-67
Type_investment 1.4358 0.2475 5.8012 7.587e-09
Number of observations: 2093, Error degrees of freedom: 2089
Root Mean Squared Error: 4.24
R-squared: 0.206, Adjusted R-Squared: 0.205
F-statistic vs. constant model: 181, p-value = 2.42e-104
Вычислить данные AUROC и ROC
Использовать modelDiscrimination для вычисления AUROC и ROC для набора тестовых данных.
DiscMeasure = modelDiscrimination(lgdModel,data(TestInd,:))
DiscMeasure=table
AUROC
_______
Regression 0.67897
Данные ROC можно визуализировать с помощью modelDiscriminationPlot.
modelDiscriminationPlot(lgdModel,data(TestInd,:))

В этом примере показано, как использовать fitLGDModel для совмещения данных с Tobit модель, а затем использовать modelDiscrimination для вычисления AUROC и ROC.
Загрузить данные
Загрузите данные о потерях по умолчанию.
load LGDData.mat
head(data)ans=8×4 table
LTV Age Type LGD
_______ _______ ___________ _________
0.89101 0.39716 residential 0.032659
0.70176 2.0939 residential 0.43564
0.72078 2.7948 residential 0.0064766
0.37013 1.237 residential 0.007947
0.36492 2.5818 residential 0
0.796 1.5957 residential 0.14572
0.60203 1.1599 residential 0.025688
0.92005 0.50253 investment 0.063182
Данные раздела
Разделите данные на разделы обучения и тестирования.
rng('default'); % for reproducibility NumObs = height(data); c = cvpartition(NumObs,'HoldOut',0.4); TrainingInd = training(c); TestInd = test(c);
Создать Tobit Модель LGD
Использовать fitLGDModel для создания Tobit модель с использованием обучающих данных.
lgdModel = fitLGDModel(data(TrainingInd,:),'tobit');
disp(lgdModel) Tobit with properties:
CensoringSide: "both"
LeftLimit: 0
RightLimit: 1
ModelID: "Tobit"
Description: ""
UnderlyingModel: [1x1 risk.internal.credit.TobitModel]
PredictorVars: ["LTV" "Age" "Type"]
ResponseVar: "LGD"
Отображение базовой модели.
disp(lgdModel.UnderlyingModel)
Tobit regression model:
LGD = max(0,min(Y*,1))
Y* ~ 1 + LTV + Age + Type
Estimated coefficients:
Estimate SE tStat pValue
_________ _________ _______ __________
(Intercept) 0.058257 0.027276 2.1358 0.032809
LTV 0.20126 0.031373 6.415 1.7363e-10
Age -0.095407 0.0072543 -13.152 0
Type_investment 0.10208 0.018054 5.6542 1.7802e-08
(Sigma) 0.29288 0.005704 51.346 0
Number of observations: 2093
Number of left-censored observations: 547
Number of uncensored observations: 1521
Number of right-censored observations: 25
Log-likelihood: -698.383
Вычислить данные AUROC и ROC
Использовать modelDiscrimination для вычисления AUROC и ROC для набора тестовых данных.
DiscMeasure = modelDiscrimination(lgdModel,data(TestInd,:),'SegmentBy',"Type",'DiscretizeBy',"median")
DiscMeasure=2×1 table
AUROC
_______
Tobit, Type=residential 0.70101
Tobit, Type=investment 0.73252
Можно визуализировать ROC с помощью modelDiscriminationPlot.
modelDiscriminationPlot(lgdModel,data(TestInd,:),'SegmentBy',"Type",'DiscretizeBy',"median")

lgdModel - Потеря данной модели по умолчаниюRegression объект | Tobit объектПотеря заданной модели по умолчанию, указанной как ранее созданная Regression или Tobit объект с использованием fitLGDModel.
Типы данных: object
data - ДанныеДанные, указанные как NumRowsоколо-NumCols таблица с предиктором и значениями ответа. Имена переменных и типы данных должны соответствовать базовой модели.
Типы данных: table
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[DiscMeasure,DiscData] = modelDiscrimination(lgdModel,data(TestInd,:),'DataID','Testing','DiscretizeBy','median')'DataID' - Идентификатор набора данных""
(по умолчанию) | символьный вектор | строкаИдентификатор набора данных, указанный как разделенная запятыми пара, состоящая из 'DataID' и символьный вектор или строку. DataID включается в выходные данные для целей отчетности.
Типы данных: char | string
'DiscretizeBy' - Метод дискретизации для LGD data'mean'
(по умолчанию) | символьный вектор со значением 'mean', 'median', 'positive', или 'total' | строка со значением "mean", "median", "positive", или "total"Метод дискретизации для LGD data, указанная как пара, разделенная запятыми, состоящая из 'DiscretizeBy' и символьный вектор или строку.
'mean' - Дискретизированный ответ 1 если наблюдаемый LGD больше или равен среднему LGD, 0 в противном случае.
'median' - Дискретизированный ответ 1 если наблюдаемый LGD больше или равен среднему LGD, 0 в противном случае.
'positive' - Дискретизированный ответ 1 если наблюдаемая LGD положительная, 0 в противном случае (полное восстановление).
'total' - Дискретизированный ответ 1 если наблюдаемая LGD больше или равна 1 (общий убыток), 0 в противном случае.
Типы данных: char | string
'SegmentBy' - Наименование столбца в data входные данные, используемые для набора данных сегментов""
(по умолчанию) | символьный вектор | строкаИмя столбца в data вход, не обязательно переменная модели, которая должна использоваться для сегментации набора данных, указанного как пара, разделенная запятыми, состоящая из 'SegmentBy' и символьный вектор или строку. Один AUROC сообщается для каждого сегмента, и соответствующие данные ROC для каждого сегмента возвращаются в необязательном выводе.
Типы данных: char | string
'ReferenceLGD' - прогнозируемые значения LGD для data по ссылочной модели[ ]
(по умолчанию) | числовой вектор'ReferenceID' - Идентификатор ссылочной модели'Reference'
(по умолчанию) | символьный вектор | строкаИдентификатор ссылочной модели, указанный как разделенная запятыми пара, состоящая из 'ReferenceID' и символьный вектор или строку. 'ReferenceID' используется в modelDiscrimination выходные данные для целей отчетности.
Типы данных: char | string
DiscMeasure - информация AUROC для каждой модели и каждого сегментаИнформация AUROC для каждой модели и каждого сегмента возвращается в виде таблицы. DiscMeasure имеет один столбец с именем 'AUROC' и количество строк зависит от количества сегментов и от того, используется ли ReferenceID для ссылочной модели. Имена строк DiscMeasure сообщите идентификаторы модели, сегмента и данных.
DiscData - данные ROC для каждой модели и каждого сегментаДанные ROC для каждой модели и каждого сегмента возвращаются в виде таблицы. Существует три столбца для данных ROC с именами столбцов 'X', 'Y', и 'T', где первые два являются координатами X и Y кривой ROC, а T содержит соответствующие пороги. Дополнительные сведения см. в разделе Дискриминация моделей или perfcurve.
Если вы используете SegmentBy, функция накапливает данные ROC для всех сегментов и DiscData содержит столбец со значениями сегментации для указания места начала и окончания каждого сегмента.
Если приведены данные ссылочной модели, DiscData выходы для основной и ссылочной моделей сложены в стопку, с дополнительным столбцом 'ModelID' указывает, где начинается и заканчивается каждая модель.
Типовая дискриминация измеряет ранжирование риска.
modelDiscrimination функция вычисляет площадь под кривой характеристики оператора приемника (AUROC), иногда называемой просто площадью под кривой (AUC). Эта метрика в диапазоне от 0 до 1 и выше указывает на лучшее различение.
Для вычисления AUROC необходимо числовое предсказание и двоичный ответ. Для моделей потерь, заданных по умолчанию (LGD), предсказанный LGD используется непосредственно в качестве прогноза. Однако наблюдаемый LGD должен быть дискретизирован в двоичную переменную. По умолчанию наблюдаемым значениям LGD, большим или равным среднему значению LGD, присваивается значение 1, а значениям ниже среднего - значение 0. Этот дискретизированный ответ интерпретируется как «высокий LGD» по сравнению с «низким LGD». Следовательно, modelDiscrimination функция измеряет, насколько хорошо предсказанный LGD отделяет «высокий LGD» от «низких LGD» наблюдений. Вы можете изменить критерий дискретизации с помощью DiscretizeBy аргумент пары имя-значение.
Для построения графика характеристики оператора приемника (ROC) используйте modelDiscriminationPlot функция. Однако если необходимы данные ROC-кривой, используйте необязательный параметр. DiscData выходной аргумент из modelDiscrimination функция.
Кривая ROC - это параметрическая кривая, отображающая пропорцию
Случаи высокого LGD с прогнозируемым LGD, большим или равным параметру t, или истинной положительной скоростью (TPR)
Случаи низкого LGD с прогнозируемым LGD больше или равно одному и тому же параметру t, или ложноположительная скорость (FPR)
Параметр t протягивает все наблюдаемые прогнозируемые значения LGD для данных. DiscData дополнительный вывод содержит TPR в 'X' столбец, FPR в 'Y' и соответствующие параметры t в 'T' столбец. Дополнительные сведения о кривых ROC см. в разделе Кривые производительности.
[1] Бэзенс, Барт, Даниэль Рош и Харальд Шиле. Анализ кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.
[2] Беллини, Тициано. МСФО (IFRS) 9 и CECL «Моделирование и валидация кредитных рисков: практическое руководство с примерами, работающими в R и SAS». Сан-Диего, Калифорния: Elsevier, 2019.
fitLGDModel | modelAccuracy | modelAccuracyPlot | modelDiscriminationPlot | predict | Regression | Tobit
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.