exponenta event banner

modelAccuracyPlot

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

Загрузить данные

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

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.

Примечание

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

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

Данные, указанные как NumRowsоколо-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' и NumRowsоколо-1 числовой вектор. Прогнозируемая PD нанесена на график для обоих pdModel объект и ссылочная модель.

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

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

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

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

свернуть все

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

Подробнее

свернуть все

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

Точность модели измеряет точность прогнозируемых значений вероятности дефолта (PD).

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

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

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

Ссылки

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

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

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

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