creditDefaultCopula Рабочий процесс симуляцииЭтот пример показывает общий рабочий процесс для использования creditDefaultCopula объект для портфеля инструментов кредита.
Для примера усовершенствованного рабочего процесса с помощью creditDefaultCopula возразите, смотрите Моделирование Коррелированые Значения по умолчанию со Связками.
Загрузите сохраненные данные о портфеле. Создайте creditDefaultCopula объект с использованием 2D факторной модели со значениями EAD, PDlgd , и 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
Установите VarLevel свойство для creditDefaultCopula возразите против 99% (значение по умолчанию составляет 95%).
cdc.VaRLevel = 0.99;
Используйте 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]
Используйте portfolioRisk функция, чтобы получить отчет для мер по риску и доверительные интервалы для ELстанд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
Используйте histogram функционируйте, чтобы отобразить распределение для ELvar, и CVaR.
histogram(cdc.PortfolioLosses);
title('Distribution of Portfolio Losses');
Используйте 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
Используйте 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]
Используйте 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