Вычисление данных 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
ЛГД- Модели
Использование 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
ЛГД- Модели
Использование 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
-by- NumCols
таблица с предиктором и значениями отклика. Имена переменных и типы данных должны соответствовать базовой модели.
Типы данных: table
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
[DiscMeasure,DiscData] = modelDiscrimination(lgdModel,data(TestInd,:),'DataID','Testing','DiscretizeBy','median')
'DataID'
- Идентификатор набора данных""
(по умолчанию) | вектор символов | строкаИдентификатор набора данных, заданный как разделенная разделенными запятой парами, состоящая из 'DataID'
и вектор символов или строка. The 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'
указывает, где начала и концы каждая модель.
Model discrimination измеряет рейтинг рисков.
The modelDiscrimination
функция вычисляет площадь под кривой характеристики оператора приемника (AUROC), иногда называемую просто областью под кривой (AUC). Эта метрика находится между 0 и 1, и более высокие значения указывают на лучшую дискриминацию.
Чтобы вычислить AUROC, вам нужно числовое предсказание и двоичный ответ. Для моделей потерь по умолчанию (LGD) предсказанный LGD используется непосредственно в качестве предсказания. Однако наблюдаемый LGD должен быть дискретизирован в двоичную переменную. По умолчанию наблюдаемым значениям LGD, больше или равным среднему наблюдаемому LGD, присваивается значение 1, и значениям ниже среднего присваивается значение 0. Этот дискретизированный ответ интерпретируется как «высокий LGD» по сравнению с «низким LGD». Поэтому modelDiscrimination
функция измеряет, насколько хорошо предсказанный LGD разделяет наблюдения «high LGD» и «low LGD». Критерий дискретизации можно изменить с помощью DiscretizeBy
аргумент пары "имя-значение".
Чтобы построить график кривой характеристики оператора приемника (ROC), используйте modelDiscriminationPlot
функция. Однако, если необходимы данные кривой ROC, используйте необязательную DiscData
выходной аргумент из modelDiscrimination
функция.
Кривая ROC является параметрической кривой, которая строит график пропорции
Случаи с высоким LGD с предсказанным LGD, большим или равным t параметра или истинной положительной частотой (TPR)
Случаи с низким LGD с предсказанным LGD, большим или равным тому же t параметра, или ложноположительная частота (FPR)
Параметр t проходит через все наблюдаемые предсказанные значения LGD для данных. The DiscData
необязательный выход содержит TPR в 'X'
столбец, FPR в 'Y'
столбец и соответствующие параметры t в 'T'
столбец. Для получения дополнительной информации о кривых ROC, см. «Кривая эффективность».
[1] Baesens, Bart, Daniel Roesch, and Harald Scheule. Аналитика кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.
[2] Беллини, Тициано. МСФО (IFRS) 9 и CECL «Моделирование и валидация кредитных рисков: практическое руководство с примерами, используемыми в R и SAS». Сан-Диего, Калифорния: Elsevier, 2019.
fitLGDModel
| modelAccuracy
| modelAccuracyPlot
| modelDiscriminationPlot
| predict
| Regression
| Tobit
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.