Рабочий процесс симуляции creditDefaultCopula

Этот пример показывает общий рабочий процесс для использования объекта creditDefaultCopula для портфеля инструментов кредита.

Для примера усовершенствованного рабочего процесса с помощью объекта creditDefaultCopula смотрите Моделирование Коррелированые Значения по умолчанию со Связками.

Шаг 1. Создайте объект creditDefaultCopula с 2D факторной моделью.

Загрузите сохраненные данные о портфеле. Создайте объект creditDefaultCopula с использованием 2D факторной модели со значениями EAD, PD, LGD и Weights2F.

load CreditPortfolioData.mat;
cdc = creditDefaultCopula(EAD, PD, LGD,Weights2F,'FactorCorrelation',FactorCorr2F);
disp(cdc)
  creditDefaultCopula with properties:

            Portfolio: [100x5 table]
    FactorCorrelation: [2x2 double]
             VaRLevel: 0.9500
          UseParallel: 0
      PortfolioLosses: []
disp(cdc.Portfolio(1:10:100,:))
    ID     EAD          PD        LGD              Weights          
    __    ______    __________    ____    __________________________

     1    21.627     0.0050092    0.35      0.35         0      0.65
    11    29.338     0.0050092    0.55      0.35         0      0.65
    21    3.8275     0.0020125    0.25    0.1125    0.3375      0.55
    31    26.286     0.0020125    0.55    0.1125    0.0375      0.85
    41    42.868     0.0050092    0.55      0.25         0      0.75
    51    7.1259    0.00099791    0.25         0      0.25      0.75
    61    10.678     0.0020125    0.35         0      0.15      0.85
    71     2.395    0.00099791    0.55         0      0.15      0.85
    81    26.445      0.060185    0.55         0      0.45      0.55
    91    7.1637       0.11015    0.25      0.35         0      0.65

Шаг 2. Установите VaRLevel на 99%.

Установите свойство VarLevel для объекта creditDefaultCopula к 99% (значение по умолчанию составляет 95%).

cdc.VaRLevel = 0.99;

Шаг 3. Запустите симуляцию.

Используйте функцию simulate, чтобы запустить симуляцию на объекте creditDefaultCopula для 100 000 сценариев.

 cdc = simulate(cdc,1e5)
cdc = 
  creditDefaultCopula with properties:

            Portfolio: [100x5 table]
    FactorCorrelation: [2x2 double]
             VaRLevel: 0.9900
          UseParallel: 0
      PortfolioLosses: [1x100000 double]

Шаг 4. Сгенерируйте отчет для портфельного риска.

Используйте функцию portfolioRisk, чтобы получить отчет для мер по риску и доверительные интервалы для EL, Std, VaR и CVaR.

[portRisk,RiskConfidenceInterval] = portfolioRisk(cdc)
portRisk=1×4 table
      EL       Std       VaR       CVaR 
    ______    ______    ______    ______

    24.774    23.693    101.57    120.22

RiskConfidenceInterval=1×4 table
           EL                 Std                 VaR                CVaR      
    ________________    ________________    ________________    _______________

    24.627     24.92    23.589    23.797    100.65    102.82    119.1    121.35

Шаг 5. Визуализируйте распределение.

Используйте функцию histogram, чтобы отобразить распределение для EL, VaR и CVaR.

histogram(cdc.PortfolioLosses);
title('Distribution of Portfolio Losses');

Шаг 6. Сгенерируйте отчет вкладов риска.

Используйте функцию riskContribution, чтобы отобразить вклад риска. Вклады риска, EL и CVaR, являются дополнением. Если вы суммируете каждую из этих двух метрик по всем контрагентам, вы сообщили о значениях для целого портфеля в таблице portfolioRisk.

rc = riskContribution(cdc);

disp(rc(1:10,:))
    ID        EL           Std          VaR          CVaR   
    __    __________    __________    ________    __________

     1      0.038604       0.02495     0.10482       0.12868
     2      0.067068      0.036472     0.17378       0.24527
     3        1.2527       0.62684      2.0384        2.3103
     4     0.0023253    0.00073407           0     0.0026274
     5       0.11766      0.042185     0.27028       0.26223
     6       0.12437       0.07545     0.37669       0.47915
     7       0.82913        0.3475         1.6        1.6516
     8    0.00085629    4.3929e-05    0.001544    0.00089197
     9       0.91406       0.87311        3.55         4.009
    10       0.24352       0.36543      1.5864        2.2781

Шаг 7. Моделируйте рискозависимость с t связкой.

Используйте функцию simulate с дополнительными входными параметрами для Copula и t. Сохраните результаты в новый объект creditDefaultCopula (cct).

cdct = simulate(cdc,1e5,'Copula','t','DegreesOfFreedom',10)
cdct = 
  creditDefaultCopula with properties:

            Portfolio: [100x5 table]
    FactorCorrelation: [2x2 double]
             VaRLevel: 0.9900
          UseParallel: 0
      PortfolioLosses: [1x100000 double]

Шаг 8. Сравните полосы уверенности для различных связок.

Используйте функцию confidenceBands, чтобы сравнить полосы уверенности для двух различных связок.

confidenceBands(cdc,'RiskMeasure','Std','ConfidenceIntervalLevel',0.90,'NumPoints',10) 
ans=10×4 table
    NumScenarios    Lower      Std      Upper 
    ____________    ______    ______    ______

       10000        23.467    23.739    24.019
       20000        23.781    23.977    24.176
       30000        23.589    23.747    23.908
       40000        23.484     23.62    23.758
       50000        23.486    23.608    23.732
       60000        23.521    23.632    23.745
       70000        23.558    23.662    23.767
       80000        23.575    23.672    23.769
       90000        23.602    23.693    23.785
       1e+05        23.606    23.693     23.78

confidenceBands(cdct,'RiskMeasure','Std','ConfidenceIntervalLevel',0.90,'NumPoints',10)
ans=10×4 table
    NumScenarios    Lower      Std      Upper 
    ____________    ______    ______    ______

       10000        32.578    32.957    33.345
       20000        32.428    32.694    32.966
       30000        32.505    32.723    32.945
       40000        32.131    32.318    32.507
       50000        32.018    32.185    32.353
       60000        31.875    32.026    32.179
       70000        31.984    32.124    32.266
       80000        32.006    32.137     32.27
       90000        31.939    32.063    32.188
       1e+05        31.903     32.02    32.138

Для просмотра документации необходимо авторизоваться на сайте