creditDefaultCopula
Рабочий процесс симуляцииЭтот пример показывает общий рабочий процесс для использования creditDefaultCopula
объект для портфеля инструментов кредита.
Для примера усовершенствованного рабочего процесса с помощью creditDefaultCopula
возразите, смотрите Моделирование Коррелированые Значения по умолчанию со Связками.
Загрузите сохраненные данные о портфеле. Создайте 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
Установите 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: [30.1008 3.6910 3.2895 19.2151 7.5761 44.5088 ... ]
Используйте portfolioRisk
функция, чтобы получить отчет для мер по риску и доверительные интервалы для EL
станд
var
, и CVaR
.
[portRisk,RiskConfidenceInterval] = portfolioRisk(cdc)
portRisk=1×4 table
EL Std VaR CVaR
______ ______ _____ ______
24.876 23.778 102.4 121.28
RiskConfidenceInterval=1×4 table
EL Std VaR CVaR
________________ ________________ ________________ ________________
24.729 25.023 23.674 23.883 101.19 103.5 120.13 122.42
Используйте histogram
функционируйте, чтобы отобразить распределение для EL
var
, и 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.036031 0.022762 0.083828 0.13625 2 0.068357 0.039295 0.23373 0.24984 3 1.2228 0.60699 2.3184 2.3775 4 0.002877 0.00079014 0.0024248 0.0013137 5 0.12127 0.037144 0.18474 0.24622 6 0.12638 0.078506 0.39779 0.48334 7 0.84284 0.3541 1.6221 1.8183 8 0.00090088 0.00011379 0.0016463 0.00089197 9 0.93117 0.87638 3.3868 3.9936 10 0.26054 0.37918 1.7399 2.3042
Используйте 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: [3.6910 1.9775 128.4550 2.1852 4.8512 0 26.2682 0 ... ]
Используйте confidenceBands
функция, чтобы сравнить полосы доверия для двух различных связок.
confidenceBands(cdc,'RiskMeasure','Std','ConfidenceIntervalLevel',0.90,'NumPoints',10)
ans=10×4 table
NumScenarios Lower Std Upper
____________ ______ ______ ______
10000 23.525 23.799 24.079
20000 23.564 23.758 23.955
30000 23.543 23.701 23.861
40000 23.621 23.758 23.897
50000 23.565 23.687 23.811
60000 23.604 23.716 23.829
70000 23.688 23.792 23.897
80000 23.663 23.76 23.858
90000 23.639 23.73 23.823
1e+05 23.691 23.778 23.866
confidenceBands(cdct,'RiskMeasure','Std','ConfidenceIntervalLevel',0.90,'NumPoints',10)
ans=10×4 table
NumScenarios Lower Std Upper
____________ ______ ______ ______
10000 31.923 32.294 32.675
20000 31.775 32.036 32.302
30000 31.759 31.972 32.188
40000 31.922 32.107 32.295
50000 32.012 32.179 32.347
60000 31.911 32.062 32.216
70000 31.879 32.019 32.161
80000 31.909 32.04 32.173
90000 31.866 31.99 32.114
1e+05 31.933 32.05 32.169
creditDefaultCopula
| simulate
| portfolioRisk
| riskContribution
| confidenceBands
| getScenarios
| asrf