modelDiscriminationPlot

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

Загрузка данных

Загрузите данные о кредитном портфеле.

load RetailCreditPanelData.mat
disp(head(data))
    ID    ScoreGroup    YOB    Default    Year
    __    __________    ___    _______    ____

    1      Low Risk      1        0       1997
    1      Low Risk      2        0       1998
    1      Low Risk      3        0       1999
    1      Low Risk      4        0       2000
    1      Low Risk      5        0       2001
    1      Low Risk      6        0       2002
    1      Low Risk      7        0       2003
    1      Low Risk      8        0       2004
disp(head(dataMacro))
    Year     GDP     Market
    ____    _____    ______

    1997     2.72      7.61
    1998     3.57     26.24
    1999     2.86      18.1
    2000     2.43      3.19
    2001     1.26    -10.51
    2002    -0.59    -22.95
    2003     0.63      2.78
    2004     1.85      9.48

Соедините два компонента данных в один набор данных.

data = join(data,dataMacro);
disp(head(data))
    ID    ScoreGroup    YOB    Default    Year     GDP     Market
    __    __________    ___    _______    ____    _____    ______

    1      Low Risk      1        0       1997     2.72      7.61
    1      Low Risk      2        0       1998     3.57     26.24
    1      Low Risk      3        0       1999     2.86      18.1
    1      Low Risk      4        0       2000     2.43      3.19
    1      Low Risk      5        0       2001     1.26    -10.51
    1      Low Risk      6        0       2002    -0.59    -22.95
    1      Low Risk      7        0       2003     0.63      2.78
    1      Low Risk      8        0       2004     1.85      9.48

Данные о разделе

Разделите данные на обучение и протестируйте разделы.

nIDs = max(data.ID);
uniqueIDs = unique(data.ID);

rng('default'); % For reproducibility
c = cvpartition(nIDs,'HoldOut',0.4);

TrainIDInd = training(c);
TestIDInd = test(c);

TrainDataInd = ismember(data.ID,uniqueIDs(TrainIDInd));
TestDataInd = ismember(data.ID,uniqueIDs(TestIDInd));

Создайте Logistic Пожизненная модель PD

Используйте fitLifetimePDModel создать Logistic модель с помощью обучающих данных.

pdModel = fitLifetimePDModel(data(TrainDataInd,:),'logistic',...
        'ModelID','Example',...
        'Description','Lifetime PD model using RetailCreditPanelData.',...
        'IDVar','ID',...
        'AgeVar','YOB',...
        'LoanVars','ScoreGroup',...
        'MacroVars',{'GDP' 'Market'},...
        'ResponseVar','Default');
 disp(pdModel)
  Logistic with properties:

        ModelID: "Example"
    Description: "Lifetime PD model using RetailCreditPanelData."
          Model: [1x1 classreg.regr.CompactGeneralizedLinearModel]
          IDVar: "ID"
         AgeVar: "YOB"
       LoanVars: "ScoreGroup"
      MacroVars: ["GDP"    "Market"]
    ResponseVar: "Default"

Визуализируйте дискриминацию модели

Используйте modelDiscriminationPlot построить ROC для тестовых данных.

modelDiscriminationPlot(pdModel,data(TestDataInd,:)) 

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

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

свернуть все

Вероятность модели по умолчанию в виде Logistic, Probit, или Cox возразите ранее созданному использованию fitLifetimePDModel.

Примечание

'ModelID' свойство pdModel объект используется в качестве идентификатора или тега для pdModel.

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

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

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

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

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

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

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

Пример: modelDiscriminationPlot(pdModel,data(Ind,:),'DataID',"DataSetChoice")

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

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

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

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

Условные значения PD предсказаны для data образцом модели в виде разделенной запятой пары, состоящей из 'ReferencePD' и NumRows- 1 числовой вектор. Выходная информация кривой ROC построена для обоих pdModel возразите и образец модели.

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

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

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

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

свернуть все

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

Больше о

свернуть все

Дискриминация модели

Model discrimination измеряет рейтинг риска.

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

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

  • Нарушители с PD выше, чем или равный ссылочному значению PD p

  • Ненарушители с PD выше, чем или равный тому же ссылочному значению PD p

Ссылочное значение PD p parametizes кривая и программное обеспечение развертывается через уникальные предсказанные значения PD, наблюдаемые в наборе данных. Пропорция фактических нарушителей присвоена, PD выше, чем или равный p является истинным положительным уровнем. Пропорция фактических ненарушителей, которые присвоены PD выше, чем или равные p, является ложным положительным уровнем". Для получения дополнительной информации о кривых ROC, см. Кривые производительности.

О AUROC сообщают относительно графика, созданного modelDiscriminationPlot. Чтобы получить метрику AUROC программно, использовать modelDiscrimination.

Ссылки

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

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

[3] Breeden, Джозеф. Проживание с CECL: словарь моделирования. Санта-Фе, NM: наделенный даром предвидения LLC моделей, 2018.

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

Введенный в R2021a