Постройте кривую ROC
modelDiscriminationPlot(___, задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.Name,Value)
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе и возвращается, фигура обрабатывают h = modelDiscriminationPlot(ax,___,Name,Value)h.
В этом примере показано, как использовать fitLGDModel соответствовать данным Regression модель и затем использует modelDiscriminationPlot построить 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 модель с помощью обучающих данных.
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 НА ГРАФИКЕ
Используйте modelDiscriminationPlot построить ROC для набора тестовых данных.
modelDiscriminationPlot(lgdModel,data(TestInd,:))

В этом примере показано, как использовать fitLGDModel соответствовать данным Tobit модель и затем использует modelDiscriminationPlot построить 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);
Создайте модель Товита 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 НА ГРАФИКЕ
Используйте modelDiscriminationPlot построить ROC для набора тестовых данных.
modelDiscriminationPlot(lgdModel,data(TestInd,:),"SegmentBy","Type","DiscretizeBy","median")

lgdModel — Потеря, данная модель по умолчаниюRegression возразите | Tobit объектПотеря, данная модель по умолчанию в виде ранее созданного Regression или Tobit объектное использование fitLGDModel.
Типы данных: object
data данныеДанные в виде NumRows- NumCols таблица с предиктором и значениями отклика. Имена переменных и типы данных должны быть сопоставимы с базовой моделью.
Типы данных: table
ax — Допустимый объект оси(Необязательно) Допустимая ось возражает в виде ax объект, который создается с помощью axes. График будет создан в осях, заданных дополнительным ax аргумент вместо в текущей системе координат (gca). Дополнительный аргумент ax должен предшествовать любой из комбинаций входных аргументов.
Типы данных: object
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
modelDiscriminationPlot(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' используется в графике для создания отчетов о целях.
Типы данных: char | string
h — Изобразите указательИзобразите указатель для объектов линии, возвращенных как объект указателя.
modelDiscriminationPlot графики функций кривая характеристики оператора приемника (ROC).
modelDiscriminationPlot функционируйте также показывает область под характеристикой оператора приемника (AUROC) кривая, иногда называемая просто область под кривой (AUC). Эта метрика между 0 и 1, и более высокие значения указывают на лучшую дискриминацию.
Числовое предсказание и бинарный ответ необходимы, чтобы построить ROC и вычислить AUROC. Для моделей LGD предсказанный LGD используется непосредственно в качестве предсказания. Однако наблюдаемый LGD должен быть дискретизирован в бинарную переменную. По умолчанию наблюдаемые значения LGD, больше, чем или равный среднему значению, заметили, что LGD присвоены значение 1, и значения ниже среднего значения присвоены значение 0. Этот дискретизированный ответ интерпретирован как “высокий LGD” по сравнению с “низким LGD”. Кривая ROC и AUROC изгибают меру, как хорошо предсказанный LGD разделяет “высокий LGD” по сравнению с “низким LGD” наблюдения. Критерий дискретизации может быть изменен с DiscretizeBy аргумент пары "имя-значение" для modelDiscriminationPlot.
Кривая ROC является параметрической кривой, которая строит пропорцию
Высокие случаи LGD с предсказанным, LGD больше, чем или равный параметру t или истинный положительный уровень (TPR)
Низкие случаи LGD с предсказанным, LGD больше, чем или равный тому же параметру t или ложный положительный уровень (FPR)
Параметр развертки t через весь наблюдаемый предсказал значения LGD для определенных данных. Если значение AUROC или данные о кривой ROC необходимы программно, используйте modelDiscrimination функция. Для получения дополнительной информации о кривых ROC, см. Кривые производительности.
[1] Baesens, Барт, Дэниел Роеш и Харальд Шойле. Аналитика кредитного риска: техники измерений, приложения и примеры в SAS. Вайли, 2016.
[2] Беллини, Тициано. МСФО 9 и моделирование кредитного риска CECL и валидация: практическое руководство с примерами работало в R и SAS. Сан-Диего, CA: Elsevier, 2019.
fitLGDModel | modelAccuracy | modelAccuracyPlot | modelDiscrimination | predict | Regression | Tobit
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.