Regression

Создайте Regression объект модели для воздействия в значении по умолчанию

Описание

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

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

  2. Использование predict предсказать EAD.

  3. Использование modelDiscrimination возвратить данные ROC и AUROC. Можно построить использование результатов modelDiscriminationPlot.

  4. Использование modelAccuracy возвратить R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанных и наблюдаемых данных EAD. Можно построить использование результатов modelAccuracyPlot.

Создание

Описание

пример

RegressionEADModel = fitEADModel(data,ModelType) создает Regression Объект модели LGD.

пример

RegressionEADModel = fitEADModel(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. Дополнительные аргументы пары "имя-значение" устанавливают свойства объекта модели. Например, eadModel = fitEADModel(EADData,ModelType,'PredictorVars',{'UtilizationRate','Age','Marriage'},'ConversionMeasure',"ccf",'DrawnVar','Drawn','LimitVar','Limit','ResponseVar','EAD') создает eadModel объект с помощью Regression тип модели.

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

развернуть все

Данные за потерю, данную значение по умолчанию в виде таблицы.

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

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

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

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

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

Пример: eadModel = fitEADModel(EADData,ModelType,'PredictorVars',{'UtilizationRate','Age','Marriage'},'ConversionMeasure',ConversionMeasure,'DrawnVar','Drawn','LimitVar','Limit','ResponseVar','EAD')

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

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

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

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

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

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

Переменная отклика в виде разделенной запятой пары, состоящей из 'ResponseVar' и строка или вектор символов. Переменная отклика содержит данные EAD и должна быть числовой переменной со значениями между 0 и 1 (включительно). Значение EAD 0 не указывает ни на какую потерю (полное восстановление), 1 указывает на общую сумму убытков (никакое восстановление), и значения между 0 и 1 укажите на частичную потерю. По умолчанию, ResponseVar установлен в последний столбец data.

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

Граничный допуск в виде разделенной запятой пары, состоящей из 'BoundaryTolerance' и числовая положительная скалярная величина. BoundaryTolerance значение тревожит значения отклика EAD далеко от 0 и 1, прежде, чем применить преобразование ответа.

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

Ограничьте переменную в виде разделенной запятой пары, состоящей из 'LimitVar' и строка или вектор символов. LimitVar указывает который столбец в data содержит предельную сумму. LimitVar требуется когда ConversionMeasure 'ccf' или 'lcf'.

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

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

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

Ответ преобразовывает в виде разделенной запятой пары, состоящей из 'ConversionMeasure' и вектор символов или строка.

  • "ccf" — Коэффициент преобразования кредита (CCF) является фрагментом неиспользованной суммы, которая будет преобразована в кредит. Неиспользованная сумма является пределом минус чертившая сумма. EAD таким образом становится чертившей суммой плюс времена CCF предел минус чертившая сумма (EAD = Drawn + CCF*(Limit - Drawn)) .

  • "lcf" — Предельный коэффициент преобразования (LCF) является частью предела, представляющего сумму обязательств. EAD затем задан как времена LCF предел (EAD = LCF*Limit).

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

Свойства

развернуть все

Пользовательская модель ID, возвращенная как строка.

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

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

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

Базовая статистическая модель, возвращенная как компактный линейный объект модели. Компактная версия базовой модели регрессии является экземпляром classreg.regr.CompactLinearModel класс. Для получения дополнительной информации смотрите fitlm и CompactLinearModel.

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

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

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

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

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

Ограничьте переменную, возвращенную как строка.

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

Переменная Drawn, возвращенная как строка.

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

Это свойство доступно только для чтения.

Граничный допуск, возвращенный как скаляр, положительный числовой.

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

Мера по преобразованию, возвращенная как строка.

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

Это свойство доступно только для чтения.

Преобразование преобразовывает, возвращенный как строка, которая является "complog" если ConversionMeasure "ccf" и "logit" когда ConversionMeasure "lcf".

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

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

predictПредскажите воздействие в значении по умолчанию
modelDiscriminationВычислите данные ROC и AUROC
modelDiscriminationPlotПостройте кривую ROC
modelAccuracyВычислите R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанного и наблюдаемого ИДЗА
modelAccuracyPlotГрафик поля точек предсказанного и наблюдаемого ИДЗА

Примеры

свернуть все

В этом примере показано, как использовать fitEADModel создать Regression модель для воздействия в значении по умолчанию (EAD).

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

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

load EADData.mat
head(EADData)
ans=8×6 table
    UtilizationRate    Age     Marriage        Limit         Drawn          EAD    
    _______________    ___    ___________    __________    __________    __________

        0.24359        25     not married         44776         10907         44740
        0.96946        44     not married    2.1405e+05    2.0751e+05         40678
              0        40     married        1.6581e+05             0    1.6567e+05
        0.53242        38     not married    1.7375e+05         92506        1593.5
         0.2583        30     not married         26258        6782.5        54.175
        0.17039        54     married        1.7357e+05         29575        576.69
        0.18586        27     not married         19590          3641        998.49
        0.85372        42     not married    2.0712e+05    1.7682e+05    1.6454e+05

rng('default');
NumObs = height(EADData);
c = cvpartition(NumObs,'HoldOut',0.4);
TrainingInd = training(c);
TestInd = test(c);

Выберите Model Type

Выберите тип модели для Regression или Tobit.

ModelType = "Regression";

Выберите Conversion Measure

Выберите меру по преобразованию для значений отклика EAD.

ConversionMeasure = "LCF";

Создайте Regression Модель EAD

Используйте fitEADModel создать Regression модель с помощью EADData.

eadModel = fitEADModel(EADData,ModelType,'PredictorVars',{'UtilizationRate','Age','Marriage'}, ...
    'ConversionMeasure',ConversionMeasure,'DrawnVar','Drawn','LimitVar','Limit','ResponseVar','EAD');
disp(eadModel);
  Regression with properties:

    ConversionTransform: "logit"
      BoundaryTolerance: 1.0000e-07
                ModelID: "Regression"
            Description: ""
        UnderlyingModel: [1x1 classreg.regr.CompactLinearModel]
          PredictorVars: ["UtilizationRate"    "Age"    "Marriage"]
            ResponseVar: "EAD"
               LimitVar: "Limit"
               DrawnVar: "Drawn"
      ConversionMeasure: "lcf"

Отобразите базовую модель. Переменная отклика базовой модели является преобразованием данных об ответе EAD. Используйте 'BoundaryTolerance', 'LimitVar', и 'DrawnVar' аргументы name-value, чтобы изменить преобразование.

disp(eadModel.UnderlyingModel);
Compact linear regression model:
    EAD_lcf_logit ~ 1 + UtilizationRate + Age + Marriage

Estimated Coefficients:
                            Estimate        SE         tStat       pValue  
                            _________    _________    _______    __________

    (Intercept)               -2.4745      0.29892    -8.2781    1.6448e-16
    UtilizationRate            6.0045      0.19901     30.172    7.703e-182
    Age                     -0.020095    0.0073019     -2.752     0.0059471
    Marriage_not married     -0.03509      0.13935    -0.2518        0.8012


Number of observations: 4378, Error degrees of freedom: 4374
Root Mean Squared Error: 4.48
R-squared: 0.173,  Adjusted R-Squared: 0.173
F-statistic vs. constant model: 305, p-value = 5.7e-180

Предскажите EAD

Предсказание EAD работает с базовой компактной статистической моделью и затем преобразовывает ожидаемые значения назад к шкале EAD. Можно задать predict функция с различными вариантами для 'ModelLevel' аргумент долины имени.

predictedEAD = predict(eadModel, EADData(TestInd,:), 'ModelLevel', 'ead');
predictedConversion = predict(eadModel, EADData(TestInd,:), 'ModelLevel', 'ConversionMeasure');

Подтвердите модель EAD

Для проверки допустимости модели используйте modelDiscrimination, modelDiscriminationPlot, modelAccuracy, и modelAccuracyPlot.

Используйте modelDiscrimination и затем modelDiscriminationPlot построить кривую ROC.

ModelLevel = "ConversionMeasure";
[DiscMeasure1, DiscData1] = modelDiscrimination (eadModel, EADData (TestInd, :), 'ModelLevel', ModelLevel);
modelDiscriminationPlot (eadModel, EADData (TestInd, :), 'ModelLevel', ModelLevel,'SegmentBy','Marriage');

Figure contains an axes object. The axes object with title E A D _ l c f blank R O C blank S e g m e n t e d blank b y blank M a r r i a g e contains 2 objects of type line. These objects represent Regression, married, AUROC = 0.70813, Regression, not married, AUROC = 0.70921.

Используйте modelAccuracy и затем modelAccuracyPlot показать график рассеивания предсказаний.

YData = "Observed";

[AccMeasure1, AccData1] = modelAccuracy (eadModel, EADData (TestInd, :), 'ModelLevel', ModelLevel);
modelAccuracyPlot (eadModel, EADData (TestInd, :), 'ModelLevel', ModelLevel, 'YData', YData);

Figure contains an axes object. The axes object with title Scatter Regression, R-Squared: 0.16148 contains 2 objects of type scatter, line. These objects represent Data, Fit.

Постройте гистограмму наблюдаемых относительно предсказанного EAD.

figure;
histogram(AccData1.Observed);
hold on;
histogram(AccData1.(('Predicted_' + ModelType)));
legend('Observed', 'Predicted');

Figure contains an axes object. The axes object contains 2 objects of type histogram. These objects represent Observed, Predicted.

Больше о

развернуть все

Ссылки

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

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

[3] Браун, Иэн. Разработка Моделей Кредитного риска Используя Шахтера Предприятия SAS и SAS/STAT: Теория и Приложения. SAS Institute, 2014.

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

Введенный в R2021b