modelAccuracyPlot

График поля точек предсказанного и наблюдаемого LGDs

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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 Модель 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

Сгенерируйте график поля точек предсказанного и наблюдаемого LGDs

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

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

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

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

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

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

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.027265     2.1367      0.032737
    LTV                  0.20126     0.031354     6.4189    1.6932e-10
    Age                -0.095407    0.0072653    -13.132             0
    Type_investment      0.10208     0.018058     5.6531    1.7915e-08
    (Sigma)              0.29288    0.0057036      51.35             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

Сгенерируйте график поля точек предсказанного и наблюдаемого LGDs

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

modelAccuracyPlot(lgdModel,data(TestInd,:))

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

modelAccuracyPlot генерирует график рассеивания наблюдаемых по сравнению с предсказанными значениями LGD. '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

Сгенерируйте график поля точек предсказанного и наблюдаемого LGDs

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

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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object 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- NumCols таблица с предиктором и значениями отклика. Имена переменных и типы данных должны быть сопоставимы с базовой моделью.

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

Значения LGD предсказаны для data образцом модели в виде разделенной запятой пары, состоящей из 'ReferenceLGD' и NumRows- 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

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

свернуть все

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

Больше о

свернуть все

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

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

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

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

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

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

Ссылки

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

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

Введенный в R2021a