modelAccuracyPlot

Постройте график наблюдаемых скоростей дефолта по сравнению с предсказанными PD на сгруппированных данных

Описание

пример

modelAccuracyPlot(pdModel,data,GroupBy) строит графики наблюдаемых скоростей дефолта по сравнению с предсказанными вероятностями дефолта (PD). GroupBy требуется и может быть любым столбцом в data вход (не обязательно переменная модели). The modelAccuracyPlot функция вычисляет наблюдаемую PD как скорость по умолчанию для каждой группы, и предсказанную PD как среднюю PD для каждой группы. modelAccuracyPlot Поддержки сравнение с образцом модели.

пример

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

пример

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

Примеры

свернуть все

В этом примере показано, как использовать modelAccuracyPlot для построения графика корневой средней квадратичной невязки (RMSE) наблюдаемых вероятностей дефолта (PDs) относительно предсказанных PDs.

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

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

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"

Визуализация точности модели

Использование modelAccuracyPlot чтобы визуализировать точность модели по тестовые данные, группировка по возрасту.

modelAccuracyPlot(pdModel,data(TestDataInd,:),'YOB')

Figure contains an axes. The axes with title Scatter Grouped by YOB Example, RMSE = 0.00052762 contains 2 objects of type line. These objects represent Observed, Example.

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

свернуть все

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

Примечание

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

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

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

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

Имя столбца в data вход, используемый для группировки данных, заданный как строковый или символьный вектор. GroupBy не обязательно быть именем переменной модели. Для каждой группы, обозначенной GroupBy, а modelAccuracyPlot функция вычисляет наблюдаемые скорости по умолчанию, и средние предсказанные PD вычисляются для измерения RMSE. modelAccuracyPlot поддерживает до две сгруппированные переменные.

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

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

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

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

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

Пример: modelAccuracyPlot(pdModel,data(Ind,:),'GroupBy',["YOB","ScoreGroup"],'DataID',DataSetChoice)

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

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

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

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

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

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

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

свернуть все

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

Подробнее о

свернуть все

Точность модели

Model accuracy измеряет точность предсказанной вероятности значений по умолчанию (PD).

The modelAccuracyPlot функция позволяет вам визуально сравнить предсказанные значения PD с наблюдаемыми скоростями по умолчанию. The modelAccuracyPlot функция требует сгруппированной переменной, чтобы вычислить средние предсказанные значения PD в каждой группе и среднюю наблюдаемую скорость по умолчанию также в каждой группе. Предсказанные значения PD и наблюдаемые скорости по группам по умолчанию строятся относительно значений сгруппированных переменных.

В modelAccuracyPlot поддерживаются до двух сгруппированных переменных. Когда заданы две сгруппированные переменные, средние прогнозируемые скорости PD и скорости по умолчанию вычисляются для всех групп, заданных комбинацией двух сгруппированных переменных. Данные построены относительно первой сгруппированной переменной, а вторая переменная используется, чтобы дифференцировать данные на графике с различными цветами.

Среднеквадратичная ошибка (RMSE) сгруппированных данных выводится на заголовок графика. Чтобы получить метрику RMSE программно, используйте modelAccuracy.

Ссылки

[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