modelAccuracy

Вычислите R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанного и наблюдаемого LGDs

Описание

пример

AccMeasure = modelAccuracy(lgdModel,data) вычисляет R-квадрат, среднеквадратичную ошибку (RMSE), корреляцию и демонстрационную среднюю погрешность наблюдаемых по сравнению с предсказанными данными о потере, данной значение по умолчанию (LGD). modelAccuracy сравнение поддержек с образцом модели и также поддерживает различные типы корреляции. По умолчанию, modelAccuracy вычисляет метрики в шкале LGD. Можно использовать ModelLevel аргумент пары "имя-значение", чтобы вычислить метрики с помощью преобразованной шкалы базовой модели.

пример

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

Примеры

свернуть все

В этом примере показано, как использовать fitLGDModel соответствовать данным Regression модель и затем использует modelAccuracy вычислить R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанного и наблюдаемого 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

Вычислите R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанного и наблюдаемого LGDs

Используйте modelAccuracy вычислить RSquared, RMSEКорреляция, и SampleMeanError из предсказанного и наблюдаемого LGDs для набора тестовых данных.

[AccMeasure,AccData] = modelAccuracy(lgdModel,data(TestInd,:))
AccMeasure=1×4 table
                  RSquared     RMSE      Correlation    SampleMeanError
                  ________    _______    ___________    _______________

    Regression    0.070867    0.25988      0.26621          0.10759    

AccData=1394×3 table
    Observed     Predicted_Regression    Residuals_Regression
    _________    ____________________    ____________________

    0.0064766         0.00091169               0.0055649     
     0.007947          0.0036758               0.0042713     
     0.063182            0.18774                -0.12456     
            0          0.0010877              -0.0010877     
      0.10904           0.011213                0.097823     
            0           0.041992               -0.041992     
      0.89463           0.052947                 0.84168     
            0         3.7188e-06             -3.7188e-06     
     0.072437          0.0090124                0.063425     
     0.036006           0.023928                0.012078     
            0          0.0034833              -0.0034833     
      0.39549          0.0065253                 0.38896     
     0.057675           0.071956               -0.014281     
     0.014439          0.0061499                0.008289     
            0          0.0012183              -0.0012183     
            0          0.0019828              -0.0019828     
      ⋮

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

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 модель и затем использует modelAccuracy вычислить R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанного и наблюдаемого 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);

Создайте Tobit Модель 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

Вычислите R-квадрат, RMSE, корреляцию и демонстрационную среднюю погрешность предсказанного и наблюдаемого LGDs

Используйте modelAccuracy вычислить RSquared, RMSEКорреляция, и SampleMeanError из предсказанного и наблюдаемого LGDs для набора тестовых данных.

[AccMeasure,AccData] = modelAccuracy(lgdModel,data(TestInd,:),'CorrelationType',"kendall")
AccMeasure=1×4 table
             RSquared     RMSE      Correlation    SampleMeanError
             ________    _______    ___________    _______________

    Tobit    0.08527     0.23712      0.29964         -0.034412   

AccData=1394×3 table
    Observed     Predicted_Tobit    Residuals_Tobit
    _________    _______________    _______________

    0.0064766       0.087889           -0.081412   
     0.007947        0.12432            -0.11638   
     0.063182        0.32043            -0.25724   
            0       0.093354           -0.093354   
      0.10904        0.16718           -0.058144   
            0        0.22382            -0.22382   
      0.89463        0.23695             0.65768   
            0       0.010234           -0.010234   
     0.072437         0.1592           -0.086761   
     0.036006        0.19893            -0.16292   
            0        0.12764            -0.12764   
      0.39549        0.14568              0.2498   
     0.057675        0.26181            -0.20413   
     0.014439        0.14483            -0.13039   
            0       0.094123           -0.094123   
            0        0.10944            -0.10944   
      ⋮

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

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.

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

свернуть все

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

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

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

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

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

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

Пример: [AccMeasure,AccData] = modelAccuracy(lgdModel,data(TestInd,:),'DataID','Testing','CorrelationType','spearman')

Тип корреляции в виде разделенной запятой пары, состоящей из 'CorrelationType' и вектор символов или строка.

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

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

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

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

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

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

Примечание

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

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

Значения LGD предсказаны для data образцом модели в виде разделенной запятой пары, состоящей из 'ReferenceLGD' и NumRows- 1 числовой вектор. modelAccuracy о выходной информации сообщают для обоих lgdModel возразите и образец модели.

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

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

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

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

свернуть все

Мера по точности, возвращенная как таблица со столбцами 'RSquared', 'RMSE'Корреляция, и 'SampleMeanError'. AccMeasure ссорится если только lgdModel точность измеряется, и она имеет две строки, если информация об образце модели дана. Имена строки AccMeasure сообщите о модели ID и ID данных (если обеспечено).

Данные о точности, возвращенные как таблица с наблюдаемыми значениями LGD, предсказанными значениями LGD и остаточными значениями (наблюдаемый минус предсказанный). Дополнительные столбцы для предсказанных и остаточных значений включены для образца модели, если обеспечено. ModelID и ReferenceID метки добавлены в именах столбцов.

Больше о

свернуть все

Точность модели

Model accuracy измеряет точность предсказанной вероятности значений LGD с помощью различных метрик.

  • R-squared — Вычислить метрику R-squared, modelAccuracy соответствует линейной регрессии наблюдаемых значений LGD против предсказанных значений LGD

    LGDobs=a+bLGDpred+ε

    О R-квадрате этой регрессии сообщают. Для получения дополнительной информации смотрите Коэффициент детерминации (R-Squared).

  • RMSE — Вычислить среднеквадратичную ошибку (RMSE), modelAccuracy использует следующую формулу, где N является количеством наблюдений:

    RMSE=1Ni=1N(LGDiobsLGDipred)2

  • Корреляция — Это - корреляция между наблюдаемым и предсказанным LGD:

    corr(LGDobs,LGDpred)

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

  • Демонстрационная средняя погрешность — Вот в чем разница между наблюдаемым LGD среднего значения, и среднее значение предсказало LGD или, эквивалентно, среднее значение остаточных значений:

    SampleMeanError=1Ni=1N(LGDiobsLGDipred)

Ссылки

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

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

Введенный в R2021a