modelAccuracyPlot

Постройте наблюдаемые уровни по умолчанию по сравнению с предсказанными ФУНТАМИ на сгруппированных данных

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

В этом примере показано, как использовать modelAccuracyPlot построить среднеквадратическую ошибку (RMSE) наблюдаемых вероятностей значения по умолчанию (ФУНТЫ) относительно предсказанных ФУНТОВ.

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

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

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 object. The axes object with title Scatter Grouped by YOB Example, RMSE = 0.00052762 contains 2 objects of type line. These objects represent Observed, Example.

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

свернуть все

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

Примечание

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

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

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

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

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

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

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

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

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

Задайте дополнительные разделенные запятой пары 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

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

свернуть все

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

Больше о

свернуть все

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

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

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

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

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

Ссылки

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

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

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

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

Введенный в R2021a