modelAccuracy

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

Загрузите данные EAD

Загрузите данные EAD.

load EADData.mat
head(EADData)
ans=8×6 table
    UtilizationRate    Age     Marriage        Limit         Drawn          EAD    
    _______________    ___    ___________    __________    __________    __________

        0.24359        25     not married         44776         10907         44740
        0.96946        44     not married    2.1405e+05    2.0751e+05         40678
              0        40     married        1.6581e+05             0    1.6567e+05
        0.53242        38     not married    1.7375e+05         92506        1593.5
         0.2583        30     not married         26258        6782.5        54.175
        0.17039        54     married        1.7357e+05         29575        576.69
        0.18586        27     not married         19590          3641        998.49
        0.85372        42     not married    2.0712e+05    1.7682e+05    1.6454e+05

rng('default');
NumObs = height(EADData);
c = cvpartition(NumObs,'HoldOut',0.4);
TrainingInd = training(c);
TestInd = test(c);

Выберите Model Type

Выберите тип модели для Tobit или Regression.

ModelType = "Tobit";

Выберите Conversion Measure

Выберите меру по преобразованию для значений отклика EAD.

ConversionMeasure = "LCF";

Создайте Tobit Модель EAD

Используйте fitEADModel создать Tobit модель с помощью EADData.

eadModel = fitEADModel(EADData,ModelType,'PredictorVars',{'UtilizationRate','Age','Marriage'}, ...
    'ConversionMeasure',ConversionMeasure,'DrawnVar','Drawn','LimitVar','Limit','ResponseVar','EAD');
disp(eadModel);
  Tobit with properties:

        CensoringSide: "both"
            LeftLimit: 0
           RightLimit: 1
              ModelID: "Tobit"
          Description: ""
      UnderlyingModel: [1x1 risk.internal.credit.TobitModel]
        PredictorVars: ["UtilizationRate"    "Age"    "Marriage"]
          ResponseVar: "EAD"
             LimitVar: "Limit"
             DrawnVar: "Drawn"
    ConversionMeasure: "lcf"

Отобразите базовую модель. Переменная отклика базовой модели является преобразованием данных об ответе EAD. Используйте 'LimitVar' и 'DrwanVar' аргументы name-value, чтобы изменить преобразование.

disp(eadModel.UnderlyingModel);
Tobit regression model:
     EAD_lcf = max(0,min(Y*,1))
     Y* ~ 1 + UtilizationRate + Age + Marriage

Estimated coefficients:
                             Estimate         SE         tStat       pValue 
                            __________    __________    ________    ________

    (Intercept)                0.22735      0.025254      9.0025           0
    UtilizationRate            0.47364      0.016435      28.818           0
    Age                     -0.0013929    0.00061973     -2.2477    0.024646
    Marriage_not married     -0.006888       0.01213    -0.56784     0.57017
    (Sigma)                    0.36419     0.0038798      93.868           0

Number of observations: 4378
Number of left-censored observations: 0
Number of uncensored observations: 4377
Number of right-censored observations: 1
Log-likelihood: -1791.06

Предскажите EAD

Предсказание EAD работает с базовой компактной статистической моделью и затем преобразовывает ожидаемые значения назад к шкале EAD. Можно задать predict функция с различными вариантами для 'ModelLevel' аргумент значения имени.

predictedEAD = predict(eadModel,EADData(TestInd,:),'ModelLevel','ead');
predictedConversion = predict(eadModel,EADData(TestInd,:),'ModelLevel','ConversionMeasure');

Подтвердите модель EAD

Для проверки допустимости модели используйте modelDiscrimination, modelDiscriminationPlot, modelAccuracy, и modelAccuracyPlot.

Используйте modelDiscrimination и затем modelDiscriminationPlot построить кривую ROC.

ModelLevel = "ead";

[DiscMeasure1, DiscData1] = modelDiscrimination (eadModel, EADData (TestInd, :),'ModelLevel', ModelLevel);
modelDiscriminationPlot (eadModel, EADData (TestInd, :),'ModelLevel', ModelLevel,'SegmentBy','Marriage');

Figure contains an axes object. The axes object with title EAD ROC Segmented by Marriage contains 2 objects of type line. These objects represent Tobit, married, AUROC = 0.80824, Tobit, not married, AUROC = 0.81925.

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

YData = "Observed";

[AccMeasure1, AccData1] = modelAccuracy (eadModel, EADData (TestInd, :),'ModelLevel', ModelLevel)
AccMeasure1=1×4 table
             RSquared    RMSE     Correlation    SampleMeanError
             ________    _____    ___________    _______________

    Tobit    0.39127     42545      0.62552          -1713.1    

AccData1=1751×3 table
     Observed     Predicted_Tobit    Residuals_Tobit
    __________    _______________    _______________

         44740           15177              29563   
        54.175          8900.3            -8846.1   
        987.39           13430             -12443   
        9606.4          7422.4               2184   
        83.809           27852             -27768   
         73538           46229              27309   
        96.949          5582.8            -5485.9   
        873.21          4527.1            -3653.9   
        328.35          6079.8            -5751.5   
         55237           28295              26942   
         30359           19177              11182   
         39211           28753              10457   
    2.0885e+05      1.0725e+05          1.016e+05   
        1921.7           20132             -18210   
         15230          5526.4             9703.5   
         20063          9501.2              10562   
      ⋮

modelAccuracyPlot(eadModel,EADData(TestInd,:),'ModelLevel',ModelLevel,'YData',YData);

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

Regression модели поддерживают все три уровня модели, но Tobit модель поддерживает уровни модели только для 'ead' и 'conversionMeasure'.

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

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

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

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

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

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

свернуть все

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

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

Больше о

свернуть все

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

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

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

    EADobs=a+bEADpred+ε

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

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

    RMSE=1Ni=1N(EADiobsEADipred)2

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

    corr(EADobs,EADpred)

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

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

    SampleMeanError=1Ni=1N(EADiobsEADipred)

Ссылки

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

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

[3] Браун, Иэн. Разработка Моделей Кредитного риска Используя Шахтера Предприятия SAS и SAS/STAT: Теория и Приложения. SAS Institute, 2014.

[4] Roesch, Дэниел и Харальд Шойле. Глубокий Кредитный риск. Независимо опубликованный, 2020.

Введенный в R2021b