modelAccuracy

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

Вычисление R-квадрата, RMSE, корреляции и средней ошибки выборки предсказанных и наблюдаемых LGD

Использование modelAccuracy для вычисления RSquared, RMSE, Correlation, и SampleMeanError предсказанных и наблюдаемых LGD для тестовых данных набора.

[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     
      ⋮

Сгенерируйте график поля точек предсказанных и наблюдаемых ЛГД, используя modelAccuracyPlot.

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

Вычисление R-квадрата, RMSE, корреляции и средней ошибки выборки предсказанных и наблюдаемых LGD

Использование modelAccuracy для вычисления RSquared, RMSE, Correlation, и SampleMeanError предсказанных и наблюдаемых LGD для тестовых данных набора.

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

свернуть все

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

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

Подробнее о

свернуть все

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

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

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

    LGDobs=a+bLGDpred+ε

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

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

    RMSE=1Ni=1N(LGDiobsLGDipred)2

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

    corr(LGDobs,LGDpred)

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

  • Средняя ошибка выборки - это различие между средним наблюдаемым LGD и средним предсказанным LGD или, эквивалентно, средним значением невязок:

    SampleMeanError=1Ni=1N(LGDiobsLGDipred)

Ссылки

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

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

Введенный в R2021a