График кривой 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' - Метод дискретизации для 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' используется на графике в целях отчетности.
Типы данных: 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] Бэзенс, Барт, Даниэль Рош и Харальд Шиле. Анализ кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.
[2] Беллини, Тициано. МСФО (IFRS) 9 и CECL «Моделирование и валидация кредитных рисков: практическое руководство с примерами, работающими в R и SAS». Сан-Диего, Калифорния: Elsevier, 2019.
fitLGDModel | modelAccuracy | modelAccuracyPlot | modelDiscrimination | predict | Regression | Tobit
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.