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. The axes with title ROC Example, AUROC = 0.70009 contains an object of type line. This object represents Example.

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

свернуть все

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

Примечание

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

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

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

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

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

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

Аргументы в виде пар имя-значение

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Фигура для объектов линии, возвращенный как объект-указатель.

Подробнее о

свернуть все

Моделирование дискриминации

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

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

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

  • Дефолтаторы с PD, более высоким или равным ссылочному значению PD p

  • Nondefaulters с PD, более высоким или равным тому же базовому значению PD p

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

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

Ссылки

[1] Baesens, Bart, Daniel Roesch, and Harald Scheule. Аналитика кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.

[2] Беллини, Тициано. МСФО (IFRS) 9 и CECL «Моделирование и валидация кредитных рисков: практическое руководство с примерами, используемыми в R и SAS». Сан-Диего, Калифорния: Elsevier, 2019.

[3] Бриден, Джозеф. Жизнь с CECL: Словарь моделирования. Santa Fe, NM: Prescient Models LLC, 2018.

Введенный в R2021a