Вычислите данные ROC и AUROC
вычисляет область под кривой рабочей характеристики приемника (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
Вычислите данные ROC и AUROC
Используйте 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
Вычислите данные ROC и AUROC
Используйте 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'
— Метод дискретизации для data
LGD
'mean'
(значение по умолчанию) | вектор символов со значением 'mean'
медиана
, 'positive'
, или 'total'
| представьте в виде строки со значением "mean"
медиана
, "positive"
, или "total"
Метод дискретизации для data
LGDВ виде разделенной запятой пары, состоящей из
'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
сообщите о модели IDs, сегменте и ID данных.
DiscData
— Данные ROC для каждой модели и каждого сегментаДанные ROC для каждой модели и каждого сегмента, возвращенного как таблица. Существует три столбца для данных ROC с именами столбцов 'X'
Y
, и 'T'
, где первые два являются координатами X и Y кривой ROC, и T содержит соответствующие пороги. Для получения дополнительной информации смотрите Дискриминацию Модели или perfcurve
.
Если вы используете SegmentBy
, функция складывает данные ROC для всех сегментов и DiscData
имеет столбец со значениями сегментации, чтобы указать где каждый сегмент начала и концы.
Если данные об образце модели даны, DiscData
выходные параметры для основного и образцов модели сложены с дополнительным столбцом 'ModelID'
указание, где каждый начала и концы модели.
Model discrimination измеряет рейтинг риска.
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] Baesens, Барт, Дэниел Роеш и Харальд Шойле. Аналитика кредитного риска: техники измерений, приложения и примеры в SAS. Вайли, 2016.
[2] Беллини, Тициано. МСФО 9 и моделирование кредитного риска CECL и валидация: практическое руководство с примерами работало в R и SAS. Сан-Диего, CA: Elsevier, 2019.
fitLGDModel
| modelAccuracy
| modelAccuracyPlot
| modelDiscriminationPlot
| predict
| Regression
| Tobit
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.