modelDiscriminationPlot

Постройте кривую ROC

Описание

пример

modelDiscriminationPlot(eadModel,data) генерирует кривую рабочей характеристики приемника (ROC). modelDiscriminationPlot сегментация поддержек и сравнение с образцом модели.

пример

modelDiscriminationPlot(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

пример

h = modelDiscriminationPlot(ax,___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе и возвращается, фигура обрабатывают h.

Примеры

свернуть все

В этом примере показано, как использовать fitEADModel создать Tobit модель и затем использует modelDiscriminationPlot построить ROC.

Загрузите данные EAD

Загрузите данные EAD.

load EADData.mat
head(EADData)
ans=8×6 table
    UtilizationRate    Age     Marriage        Limit         Drawn          EAD    
    _______________    ___    ___________    __________    __________    __________

        0.24359        25     not married         44776         10907         44740
        0.96946        44     not married    2.1405e+05    2.0751e+05         40678
              0        40     married        1.6581e+05             0    1.6567e+05
        0.53242        38     not married    1.7375e+05         92506        1593.5
         0.2583        30     not married         26258        6782.5        54.175
        0.17039        54     married        1.7357e+05         29575        576.69
        0.18586        27     not married         19590          3641        998.49
        0.85372        42     not married    2.0712e+05    1.7682e+05    1.6454e+05

rng('default');
NumObs = height(EADData);
c = cvpartition(NumObs,'HoldOut',0.4);
TrainingInd = training(c);
TestInd = test(c);

Выберите Model Type

Выберите тип модели для Tobit или Regression.

ModelType = "Tobit";

Выберите Conversion Measure

Выберите меру по преобразованию для значений отклика EAD.

ConversionMeasure = "LCF";

Создайте Tobit Модель EAD

Используйте fitEADModel создать Tobit модель с помощью EADData.

eadModel = fitEADModel(EADData,ModelType,'PredictorVars',{'UtilizationRate','Age','Marriage'}, ...
    'ConversionMeasure',ConversionMeasure,'DrawnVar','Drawn','LimitVar','Limit','ResponseVar','EAD');
disp(eadModel);
  Tobit with properties:

        CensoringSide: "both"
            LeftLimit: 0
           RightLimit: 1
              ModelID: "Tobit"
          Description: ""
      UnderlyingModel: [1x1 risk.internal.credit.TobitModel]
        PredictorVars: ["UtilizationRate"    "Age"    "Marriage"]
          ResponseVar: "EAD"
             LimitVar: "Limit"
             DrawnVar: "Drawn"
    ConversionMeasure: "lcf"

Отобразите базовую модель. Переменная отклика базовой модели является преобразованием данных об ответе EAD. Используйте 'LimitVar' и 'DrawnVar' аргументы name-value, чтобы изменить преобразование.

disp(eadModel.UnderlyingModel);
Tobit regression model:
     EAD_lcf = max(0,min(Y*,1))
     Y* ~ 1 + UtilizationRate + Age + Marriage

Estimated coefficients:
                             Estimate         SE         tStat       pValue 
                            __________    __________    ________    ________

    (Intercept)                0.22735      0.025254      9.0025           0
    UtilizationRate            0.47364      0.016435      28.818           0
    Age                     -0.0013929    0.00061973     -2.2477    0.024646
    Marriage_not married     -0.006888       0.01213    -0.56784     0.57017
    (Sigma)                    0.36419     0.0038798      93.868           0

Number of observations: 4378
Number of left-censored observations: 0
Number of uncensored observations: 4377
Number of right-censored observations: 1
Log-likelihood: -1791.06

Предскажите EAD

Предсказание EAD работает с базовой компактной статистической моделью и затем преобразовывает ожидаемые значения назад к шкале EAD. Можно задать predict функция с различными вариантами для 'ModelLevel' аргумент значения имени.

predictedEAD = predict(eadModel,EADData(TestInd,:),'ModelLevel','ead');
predictedConversion = predict(eadModel,EADData(TestInd,:),'ModelLevel','ConversionMeasure');

Подтвердите модель EAD

Для проверки допустимости модели используйте modelDiscrimination, modelDiscriminationPlot, modelAccuracy, и modelAccuracyPlot.

Используйте modelDiscrimination и затем modelDiscriminationPlot построить кривую ROC.

ModelLevel = "ead";

[DiscMeasure1, DiscData1] = modelDiscrimination (eadModel, EADData (TestInd, :),'ModelLevel', ModelLevel);
modelDiscriminationPlot (eadModel, EADData (TestInd, :),'ModelLevel', ModelLevel,'SegmentBy','Marriage');

Figure contains an axes object. The axes object with title EAD ROC Segmented by Marriage contains 2 objects of type line. These objects represent Tobit, married, AUROC = 0.80824, Tobit, not married, AUROC = 0.81925.

Входные параметры

свернуть все

Воздействие в модели по умолчанию в виде ранее созданного Regression или Tobit объектное использование fitEADModel.

Типы данных: object

Данные в виде NumRows- NumCols таблица с предиктором и значениями отклика. Имена переменных и типы данных должны быть сопоставимы с базовой моделью.

Типы данных: table

(Необязательно) Допустимая ось возражает в виде ax объект, который создается с помощью axes. График будет создан в осях, заданных дополнительным ax аргумент вместо в текущей системе координат (gca). Дополнительный аргумент ax должен предшествовать любой из комбинаций входных аргументов.

Типы данных: object

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: modelDiscriminationPlot(eadModel,data(TestInd,:),'DataID','Testing','DiscretizeBy','median')

Идентификатор набора данных в виде разделенной запятой пары, состоящей из 'DataID' и вектор символов или строка. DataID включен в выход для создания отчетов о целях.

Типы данных: char | string

Метод дискретизации для data EAD в заданном ModelLevelВ виде разделенной запятой пары, состоящей из 'DiscretizeBy' и вектор символов или строка.

  • 'mean' — Дискретизированным ответом является 1 если наблюдается EAD больше или равен среднему EAD, 0 в противном случае.

  • 'median' — Дискретизированным ответом является 1 если наблюдается EAD больше или равен среднему EAD, 0 в противном случае.

Типы данных: char | string

Имя столбца в data введите, не обязательно переменная модели, чтобы использоваться, чтобы сегментировать набор данных в виде разделенной запятой пары, состоящей из 'SegmentBy' и вектор символов или строка. Об одном AUROC сообщают для каждого сегмента, и соответствующие данные ROC для каждого сегмента возвращены в дополнительном выходе.

Типы данных: char | string

Уровень модели в виде разделенной запятой пары, состоящей из 'ModelLevel' и вектор символов или строка.

Примечание

Regression модели поддерживают все три уровня модели, но Tobit модель поддерживает уровни модели только для 'ead' и 'conversionMeasure'.

Типы данных: char | string

Значения EAD предсказаны для data образцом модели в виде разделенной запятой пары, состоящей из 'ReferenceEAD' и NumRows- 1 числовой вектор. Кривая ROC построена для обоих eadModel возразите и образец модели.

Типы данных: double

Идентификатор для образца модели в виде разделенной запятой пары, состоящей из 'ReferenceID' и вектор символов или строка. 'ReferenceID' используется в графике для создания отчетов о целях.

Типы данных: char | string

Выходные аргументы

свернуть все

Изобразите указатель для объектов линии, возвращенных как объект указателя.

Больше о

свернуть все

График дискриминации модели

modelDiscriminationPlot графики функций кривая характеристики оператора приемника (ROC).

modelDiscriminationPlot функционируйте также показывает область под характеристикой оператора приемника (AUROC) кривая, иногда называемая просто область под кривой (AUC). Эта метрика между 0 и 1, и более высокие значения указывают на лучшую дискриминацию.

Числовое предсказание и бинарный ответ необходимы, чтобы построить ROC и вычислить AUROC. Для моделей EAD предсказанный EAD используется непосредственно в качестве предсказания. Однако наблюдаемый EAD должен быть дискретизирован в бинарную переменную. По умолчанию наблюдаемые значения EAD, больше, чем или равный среднему значению, заметили, что EAD присвоены значение 1, и значения ниже среднего значения присвоены значение 0. Этот дискретизированный ответ интерпретирован как “высокий EAD” по сравнению с “низким EAD”. Кривая ROC и AUROC изгибают меру, как хорошо предсказанный EAD разделяет “высокий EAD” по сравнению с “низким EAD” наблюдения. Можно изменить уровень, чтобы вычислить дискриминацию модели с ModelLevel аргумент пары "имя-значение" и критерий дискретизации с DiscretizeBy аргумент пары "имя-значение".

Кривая ROC является параметрической кривой, которая строит пропорцию

  • Высокие случаи EAD с предсказанным, EAD больше, чем или равный параметру t или истинный положительный уровень (TPR)

  • Низкие случаи EAD с предсказанным, EAD больше, чем или равный тому же параметру t или ложный положительный уровень (FPR)

Параметр развертки t через весь наблюдаемый предсказал значения EAD для определенных данных. Если значение AUROC или данные о кривой ROC необходимы программно, используйте modelDiscrimination функция. Для получения дополнительной информации о кривых ROC, см. Кривые производительности.

Ссылки

[1] Baesens, Барт, Дэниел Роеш и Харальд Шойле. Аналитика кредитного риска: техники измерений, приложения и примеры в SAS. Вайли, 2016.

[2] Беллини, Тициано. МСФО 9 и моделирование кредитного риска CECL и валидация: практическое руководство с примерами работало в R и SAS. Сан-Диего, CA: Elsevier, 2019.

[3] Браун, Иэн. Разработка Моделей Кредитного риска Используя Шахтера Предприятия SAS и SAS/STAT: Теория и Приложения. SAS Institute, 2014.

[4] Roesch, Дэниел и Харальд Шойле. Глубокий Кредитный риск. Независимо опубликованный, 2020.

Введенный в R2021b