predict

Предсказать потерю по умолчанию

Описание

пример

LGD = predict(lgdModel,data) вычисляет потери по умолчанию (LGD).

При использовании Regression модель, predict функция действует на базовой компактной статистической модели, а затем преобразует предсказанные значения назад в шкалу LGD.

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

Примеры

свернуть все

В этом примере показано, как использовать fitLGDModel для подгонки данных к Regression модель, а затем предсказать потери по умолчанию (LGD) значения.

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

Загрузите данные потерь по умолчанию.

load LGDData.mat
head(data)
ans=8×4 table
      LTV        Age         Type           LGD   
    _______    _______    ___________    _________

    0.89101    0.39716    residential     0.032659
    0.70176     2.0939    residential      0.43564
    0.72078     2.7948    residential    0.0064766
    0.37013      1.237    residential     0.007947
    0.36492     2.5818    residential            0
      0.796     1.5957    residential      0.14572
    0.60203     1.1599    residential     0.025688
    0.92005    0.50253    investment      0.063182

Данные о разделах

Разделите данные на обучающие и тестовые разделы.

rng('default'); % for reproducibility
NumObs = height(data);

c = cvpartition(NumObs,'HoldOut',0.4);
TrainingInd = training(c);
TestInd = test(c);

Создание Regression ЛГД- Модели

Использование fitLGDModel для создания Regression модели с использованием обучающих данных.

lgdModel = fitLGDModel(data(TrainingInd,:),'regression');
disp(lgdModel)    
  Regression with properties:

    ResponseTransform: "logit"
    BoundaryTolerance: 1.0000e-05
              ModelID: "Regression"
          Description: ""
      UnderlyingModel: [1x1 classreg.regr.CompactLinearModel]
        PredictorVars: ["LTV"    "Age"    "Type"]
          ResponseVar: "LGD"

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

disp(lgdModel.UnderlyingModel)
Compact linear regression model:
    LGD_logit ~ 1 + LTV + Age + Type

Estimated Coefficients:
                       Estimate       SE        tStat       pValue  
                       ________    ________    _______    __________

    (Intercept)        -4.7549      0.36041    -13.193    3.0997e-38
    LTV                 2.8565      0.41777     6.8377    1.0531e-11
    Age                -1.5397     0.085716    -17.963    3.3172e-67
    Type_investment     1.4358       0.2475     5.8012     7.587e-09


Number of observations: 2093, Error degrees of freedom: 2089
Root Mean Squared Error: 4.24
R-squared: 0.206,  Adjusted R-Squared: 0.205
F-statistic vs. constant model: 181, p-value = 2.42e-104

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

Использование predict для предсказания LGD для тестовых данных набора.

predictedLGD = predict(lgdModel,data(TestInd,:))
predictedLGD = 1394×1

    0.0009
    0.0037
    0.1877
    0.0011
    0.0112
    0.0420
    0.0529
    0.0000
    0.0090
    0.0239
      ⋮

Анализировать и проверять эти предсказания можно используя modelDiscrimination и modelAccuracy.

В этом примере показано, как использовать fitLGDModel для подгонки данных к Tobit модель, а затем предсказать потери по умолчанию (LGD) значения.

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

Загрузите данные потерь по умолчанию.

load LGDData.mat
head(data)
ans=8×4 table
      LTV        Age         Type           LGD   
    _______    _______    ___________    _________

    0.89101    0.39716    residential     0.032659
    0.70176     2.0939    residential      0.43564
    0.72078     2.7948    residential    0.0064766
    0.37013      1.237    residential     0.007947
    0.36492     2.5818    residential            0
      0.796     1.5957    residential      0.14572
    0.60203     1.1599    residential     0.025688
    0.92005    0.50253    investment      0.063182

Данные о разделах

Разделите данные на обучающие и тестовые разделы.

rng('default'); % for reproducibility
NumObs = height(data);

c = cvpartition(NumObs,'HoldOut',0.4);
TrainingInd = training(c);
TestInd = test(c);

Создание Tobit ЛГД- Модели

Использование fitLGDModel для создания Tobit модели с использованием обучающих данных.

lgdModel = fitLGDModel(data(TrainingInd,:),'tobit');
disp(lgdModel)    
  Tobit with properties:

      CensoringSide: "both"
          LeftLimit: 0
         RightLimit: 1
            ModelID: "Tobit"
        Description: ""
    UnderlyingModel: [1x1 risk.internal.credit.TobitModel]
      PredictorVars: ["LTV"    "Age"    "Type"]
        ResponseVar: "LGD"

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

disp(lgdModel.UnderlyingModel)
Tobit regression model:
     LGD = max(0,min(Y*,1))
     Y* ~ 1 + LTV + Age + Type

Estimated coefficients:
                       Estimate        SE         tStat       pValue  
                       _________    _________    _______    __________

    (Intercept)         0.058257     0.027276     2.1358      0.032809
    LTV                  0.20126     0.031373      6.415    1.7363e-10
    Age                -0.095407    0.0072543    -13.152             0
    Type_investment      0.10208     0.018054     5.6542    1.7802e-08
    (Sigma)              0.29288     0.005704     51.346             0

Number of observations: 2093
Number of left-censored observations: 547
Number of uncensored observations: 1521
Number of right-censored observations: 25
Log-likelihood: -698.383

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

Использование predict для предсказания LGD для тестовых данных набора.

predictedLGD = predict(lgdModel,data(TestInd,:))
predictedLGD = 1394×1

    0.0879
    0.1243
    0.3204
    0.0934
    0.1672
    0.2238
    0.2370
    0.0102
    0.1592
    0.1989
      ⋮

Анализировать и проверять эти предсказания можно используя modelDiscrimination и modelAccuracy.

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

свернуть все

Потеря по умолчанию заданная модель, заданная как ранее созданная Regression или Tobit использование объекта fitLGDModel.

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

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

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

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

свернуть все

Потеря по значениям по умолчанию, возвращенная как NumRows-by- 1 числовой вектор.

Подробнее о

свернуть все

Предсказание с LGD- Моделей

Используйте модель Regression или Tobit, чтобы предсказать LGD.

Regression Модели LGD сначала предсказывают преобразованное пространство с помощью базовой линейной регрессионой модели, а затем применяют обратное преобразование к возвратным предсказаниям по шкале LGD. Для получения дополнительной информации о поддерживаемых преобразованиях и их обратной связи, см. «Потери с учетом регрессионых моделей по умолчанию».

Tobit LGD моделей вернуть безусловное ожидаемое значение отклика, учитывая значения предиктора. Для получения дополнительной информации см. «Потеря с учетом моделей тобита по умолчанию».

Ссылки

[1] Baesens, Bart, Daniel Roesch, and Harald Scheule. Аналитика кредитных рисков: методы измерения, приложения и примеры в SAS. Уайли, 2016.

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

Введенный в R2021a