Probit

Создание Probit объект модели для пожизненной вероятности дефолта

Описание

Создайте и проанализируйте Probit объект модели, чтобы вычислить пожизненную вероятность по умолчанию (PD) с помощью этого рабочего процесса:

  1. Использовать fitLifetimePDModel для создания Probit объект модели.

  2. Использовать predict для предсказания условного PD и predictLifetime для предсказания PD продолжительности жизни.

  3. Использовать modelDiscrimination для возврата данных AUROC и ROC. Вы можете построить график результатов, используя modelDiscriminationPlot.

  4. Использовать modelAccuracy для возврата RMSE наблюдаемых и предсказанных данных PD. Вы можете построить график результатов, используя modelAccuracyPlot.

Создание

Описание

ProbitPDModel = fitLifetimePDModel(data,ModelType) создает Probit Объект модели PD.

Если вы не задаете информацию о переменной для IDVar, AgeVar, LoanVars, MacroVars, и ResponseVar, затем:

  • IDVar устанавливается в первый столбец data вход.

  • LoanVars устанавливается таким образом, чтобы включать все столбцы со второго по второй по последний столбцы data вход.

  • ResponseVar устанавливается на последний столбец в data вход.

ProbitPDModel = fitLifetimePDModel(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. Необязательные аргументы пары "имя-значение" задают свойства объекта модели. Для примера, ProbitPDModel = fitLifetimePDModel(data(TrainDataInd,:),"Probit",'ModelID',"Probit_A",'Descripion',"Probit_model",'AgeVar',"YOB",'IDVar',"ID",'LoanVars',"ScoreGroup','MacroVars',{'GDP','Market'},'ResponseVar',"Default") создает Probit объект модели.

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

расширить все

Данные, заданные как таблица, где первый столбец IDVar, последний столбец является ResponseVar, и все другие столбцы LoanVars.

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

Тип модели, заданный как строка со значением "Probit" или вектор символов со значением 'Probit'.

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

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

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

Пример: ProbitPDModel = fitLifetimePDModel(data(TrainDataInd,:),"Probit",'ModelID',"Probit_A",'Descripion',"Probit_model",'AgeVar',"YOB",'IDVar',"ID",'LoanVars',"ScoreGroup','MacroVars',{'GDP','Market'},'ResponseVar',"Default")

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

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

Пользовательское описание модели, заданное как разделенная разделенными запятой парами, состоящая из 'Description' и строка или вектор символов.

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

Переменная ID, указывающая, какой столбец в data содержит идентификатор кредита или заемщика, заданный как разделенная разделенными запятой парами, состоящая из 'IDVar' и строка или вектор символов.

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

Переменная возраста, указывающая, какой столбец в data содержит информацию о возрасте кредита, заданную как разделенная разделенными запятой парами, состоящая из 'AgeVar' и строка или вектор символов.

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

Переменные ссуды, указывающие, какой столбец в data содержит специфичную для кредита информацию, такую как счет инициирования или отношение кредита к стоимости, заданную как разделенная разделенными запятой парами, состоящая из 'LoanVars' и строковые массивы или массив ячеек из векторов символов.

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

Переменные макроса, указывающие, какой столбец в data содержит макроэкономическую информацию, такую как рост валового внутреннего продукта (ВВП) или уровень безработицы в виде разделенной разделенными запятой парами, состоящей из 'MacroVars' и строковые массивы или массив ячеек из векторов символов.

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

Переменная, указывающая, какой столбец в data содержит переменную отклика, заданную как разделенная разделенными запятой парами, состоящая из 'ResponseVar' и строка или вектор символов.

Примечание

Переменная отклика в data должна быть двоичной переменной с 0 или 1 значений, с 1 указывает по умолчанию.

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

Свойства

расширить все

Пользовательский идентификатор модели, возвращенный как строка.

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

Пользовательское описание, возвращаемое как строка.

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

Модель, возвращенная как вектор.

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

Переменная ID, указывающая, какой столбец в data содержит идентификатор кредита или заемщика, возвращенный как строка.

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

Переменная возраста, указывающая, какой столбец в data содержит информацию о возрасте кредита, возвращаемую в виде строки.

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

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

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

Переменные макроса, указывающие, какой столбец в data содержит макроэкономическую информацию, возвращенную как строковые массивы.

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

Переменная, указывающая, какой столбец в data содержит переменную отклика, возвращенную как логическое 0 или 1.

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

Функции объекта

predictВычисление условного ПД
predictLifetimeВычисление совокупного времени жизни PD, предельной PD и вероятности выживания
modelDiscriminationВычисление данных AUROC и ROC
modelAccuracyВычисление RMSE прогнозируемых и наблюдаемых PD на сгруппированных данных
modelDiscriminationPlotПостройте кривую ROC
modelAccuracyPlotПостройте график наблюдаемых скоростей дефолта по сравнению с предсказанными PD на сгруппированных данных

Примеры

свернуть все

В этом примере показано, как использовать fitLifetimePDModel для создания Probit модель с использованием кредитных и макроэкономических данных.

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

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

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));

Создайте Probit Жизненная модель PD

Использование fitLifetimePDModel для создания Probit моделировать с использованием обучающих данных.

pdModel = fitLifetimePDModel(data(TrainDataInd,:),"Probit",...
    'AgeVar','YOB',...
    'IDVar','ID',...
    'LoanVars','ScoreGroup',...
    'MacroVars',{'GDP','Market'},...
    'ResponseVar','Default');
disp(pdModel)
  Probit with properties:

        ModelID: "Probit"
    Description: ""
          Model: [1x1 classreg.regr.CompactGeneralizedLinearModel]
          IDVar: "ID"
         AgeVar: "YOB"
       LoanVars: "ScoreGroup"
      MacroVars: ["GDP"    "Market"]
    ResponseVar: "Default"

Отобразите базовую модель.

disp(pdModel.Model)
Compact generalized linear regression model:
    probit(Default) ~ 1 + ScoreGroup + YOB + GDP + Market
    Distribution = Binomial

Estimated Coefficients:
                               Estimate        SE         tStat       pValue   
                              __________    _________    _______    ___________

    (Intercept)                  -1.6267      0.03811    -42.685              0
    ScoreGroup_Medium Risk      -0.26542      0.01419    -18.704     4.5503e-78
    ScoreGroup_Low Risk         -0.46794     0.016364    -28.595     7.775e-180
    YOB                         -0.11421    0.0049724    -22.969    9.6208e-117
    GDP                        -0.041537     0.014807    -2.8052      0.0050291
    Market                    -0.0029609    0.0010618    -2.7885      0.0052954


388097 observations, 388091 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 1.85e+03, p-value = 0

Ссылки

[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.

Введенный в R2020b