modelAccuracyPlot

График поля точек предсказанных и наблюдаемых ЛГД

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

В этом примере показано, как использовать fitLGDModel для подгонки данных к Regression моделировать и затем использовать modelAccuracyPlot сгенерировать график поля точек для предсказанных и наблюдаемых ЛГД.

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

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

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

Использование modelAccuracyPlot сгенерировать график поля точек предсказанных и наблюдаемых LGD для тестовых данных набора. The ModelLevel аргумент пары "имя-значение" изменяет выходы только для Regression модели, а не Tobit модели, потому что нет никаких преобразований отклика для Tobit модель.

modelAccuracyPlot(lgdModel,data(TestInd,:),'ModelLevel',"underlying")

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

В этом примере показано, как использовать fitLGDModel для подгонки данных к Tobit моделировать и затем использовать modelAccuracyPlot сгенерировать график поля точек предсказанных и наблюдаемых ЛГД.

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

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

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

Создайте модель LGD Тобита

Использование 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

Использование modelAccuracyPlot сгенерировать график поля точек предсказанных и наблюдаемых LGD для тестовых данных набора.

modelAccuracyPlot(lgdModel,data(TestInd,:))

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

modelAccuracyPlot генерирует график поля точек наблюдаемых и предсказанных значений LGD. The 'XData' и 'YData' Аргументы пары "имя-значение" позволяют вам визуализировать невязки или сгенерировать график поля точек с интересующей переменной.

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

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

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

Создайте регрессионные LGD- Модели

Использование 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

Использование modelAccuracyPlot чтобы сгенерировать график поля точек невязок от значений LTV.

modelAccuracyPlot(lgdModel,data(TestInd,:),'XData','LTV','YData','residuals')

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

Для Regression модели, 'ModelLevel' Аргумент пары "имя-значение" позволяет вам визуализировать график с помощью базовой шкалы модели.

modelAccuracyPlot(lgdModel,data(TestInd,:),'XData','LTV','YData','residuals','ModelLevel','underlying')

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

Для категориальных переменных, modelAccuracyPlot использует наклонный график. Для получения дополнительной информации смотрите swarmchart.

modelAccuracyPlot(lgdModel,data(TestInd,:),'XData','Type','YData','residuals','ModelLevel','underlying')

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

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

свернуть все

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

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

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

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

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

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

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

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

Пример: modelAccuracyPlot(lgdModel,data(TestInd,:),'DataID','Testing','YData','residuals','XData','LTV')

Идентификатор набора данных, заданный как разделенная разделенными запятой парами, состоящая из 'DataID' и вектор символов или строка. The DataID включено в выход для целей отчетности.

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

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

  • 'top' - Метрики точности вычисляются в шкале LGD на верхнем уровне модели.

  • 'underlying' - Для Regression только модель, метрики вычисляются в преобразованной шкале базовой модели. Метрики вычисляются на преобразованных данных LGD.

Примечание

ModelLevel не влияет на Tobit модель, потому что нет преобразования отклика.

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

Значения LGD, предсказанные для data по образцу модели, заданной как разделенная запятой пара, состоящая из 'ReferenceID' и a NumRows-by- 1 числовой вектор. График графика поля точек выхода для обоих lgdModel объект и образец модели.

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

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

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

Данные для построения графика на оси X, заданные как разделенная разделенными запятой парами, состоящая из 'XData' и вектор символов или строка для одного из следующих:

  • 'predicted' - Постройте график предсказанных значений LGD в оси X.

  • 'observed' - Постройте график наблюдаемых значений LGD по оси X.

  • 'residuals' - Постройте график невязок по оси X.

  • VariableName - Используйте имя переменной в data введите, не обязательно переменную модели, чтобы построить график в оси X.

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

Данные для построения графика на оси Y, заданные как разделенная разделенными запятой парами, состоящая из 'YData' и вектор символов или строка для одного из следующих:

  • 'predicted' - Постройте график предсказанных значений LGD по оси Y.

  • 'observed' - Постройте график наблюдаемых значений LGD по оси Y.

  • 'residuals' - Постройте график невязок по оси Y.

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

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

свернуть все

Фигура для объектов рассеяния и линий, возвращенный как объект handle.

Подробнее о

свернуть все

График точности модели

The modelAccuracyPlot функция возвращает график рассеяния наблюдаемых и предсказанных потерь по умолчанию (LGD) с линейной аппроксимацией и сообщает R-квадрат линейной аппроксимации.

The XData Аргумент пары "имя-значение" позволяет изменять значения x на графике. По умолчанию предсказанные значения LGD строятся на x оси, но предсказанные значения LGD, невязки или любая переменная в data вход, не обязательно переменная модели, может использоваться в качестве x значений. Если выбранное XData является категориальной переменной, используется наклонный график. Для получения дополнительной информации см. swarmchart.

The YData Аргумент пары "имя-значение" позволяет пользователям изменять значения y на графике. По умолчанию наблюдаемые значения LGD строятся на y оси, но предсказанные значения LGD или невязки также могут использоваться в качестве y значений. YData не поддерживает табличные переменные.

Для Regression модели, если ModelLevel установлено в 'underlying', данные LGD преобразуются в шкалу базовой модели. Преобразованные данные показаны на графике. The ModelLevel Аргумент пары "имя-значение" не имеет эффекта для Tobit модели.

Линейная подгонка и сообщенное значение R-квадрат всегда соответствуют линейной регрессионой модели с нанесенными на график значениями y в качестве отклика и нанесенными на график значениями x в качестве единственного предиктора.

Ссылки

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

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

Введенный в R2021a