modelDiscriminationPlot

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

Описание

пример

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

пример

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,:))

Figure contains an axes object. The axes object with title ROC Regression, AUROC = 0.67897 contains an object of type line. This object represents Regression.

В этом примере показано, как использовать 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.027265     2.1367      0.032737
    LTV                  0.20126     0.031354     6.4189    1.6932e-10
    Age                -0.095407    0.0072653    -13.132             0
    Type_investment      0.10208     0.018058     5.6531    1.7915e-08
    (Sigma)              0.29288    0.0057036      51.35             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")

Figure contains an axes object. The axes object with title ROC Segmented by Type contains 2 objects of type line. These objects represent Tobit, residential, AUROC = 0.70101, Tobit, investment, AUROC = 0.73252.

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

свернуть все

Потеря, данная модель по умолчанию в виде ранее созданного Regression или Tobit объектное использование fitLGDModel.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'positive' — Дискретизированным ответом является 1 если наблюдается LGD положителен, 0 в противном случае (полное восстановление).

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

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

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

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

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

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

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

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

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

свернуть все

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

Больше о

свернуть все

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

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.

Введенный в R2021a