exponenta event banner

modelDiscriminationPlot

Описание

пример

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.

Примечание

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

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

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

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

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

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

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

Укажите дополнительные пары, разделенные запятыми 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

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

свернуть все

Маркер перемещения для линейных объектов, возвращенный как маркер перемещения.

Подробнее

свернуть все

Типовая дискриминация

Типовая дискриминация измеряет ранжирование риска.

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

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

  • Значения по умолчанию с PD выше или равны опорному значению PD p

  • Nondefaulters с PD выше или равным одному и тому же эталонному значению PD p

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

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

Ссылки

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

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

[3] Бриден, Иосиф. Жизнь с CECL: The Modeling Dictionary. Santa Fe, NM: Prescient Models LLC, 2018.

Представлен в R2021a