本例探讨如何使用多因素关联模型模拟相关交易对手违约。
根据交易对手在违约时的风险敞口、违约概率以及给定违约信息的损失,对其投资组合的潜在损失进行估计。一个creditDefaultCopula
对象,利用潜在变量对每个债务人的信用价值进行建模。潜在变量由一系列加权的基础信用因素以及每个债务人的特殊信用因素组成。潜在变量被映射到每个场景下债务人的违约或非违约状态,这是基于他们的违约概率。投资组合风险度量、交易对手层面的风险贡献和模拟收敛信息在金宝appcreditDefaultCopula
对象。
本例还探讨了风险度量对联结类型的敏感性(高斯联结与tCopula)用于模拟。
该投资组合包含100个交易对手及其违约时的相关信贷敞口(含铅
),违约概率(PD
),以及默认的损失(乐金显示器
).使用一个creditDefaultCopula
对象时,可以模拟某个固定时间段(例如,一年)内的违约和损失。的含铅
,PD
,乐金显示器
输入必须针对特定的时间范围。
在本例中,每个交易对手都被映射到两个具有一组权重的潜在信用因素。的Weights2F
变量是aNumCounterparties-by-3
矩阵,其中每行包含单个交易对手的权重。前两列是两个信贷因素的权重,最后一列是每个交易对手的特殊权重。本例还提供了两个基本因素的相关矩阵(FactorCorr2F
).
负载CreditPortfolioData.mat谁含铅PD乐金显示器Weights2FFactorCorr2F
名称大小字节分类属性EAD 100x1 800 double FactorCorr2F 2x2 32 double LGD 100x1 800 double PD 100x1 800 double Weights2F 100x3 2400 double
初始化creditDefaultCopula
对象使用投资组合信息和因子相关性。
rng (“默认”);cc = creditDefaultCopula(EAD,PD,LGD,Weights2F,“FactorCorrelation”, FactorCorr2F);将VaR级别更改为99%。cc.VaRLevel = 0.99;disp (cc)
creditDefaultCopula with properties: Portfolio: [100x5 table] FactorCorrelation: [2x2 double] VaRLevel: 0.9900 UseParallel: 0 PortfolioLosses: []
: cc.Portfolio (1:5)
ans = 5x5表ID EAD PD LGD Weights _________________ ____ ____________________ 1 21.627 0.0050092 0.35 0.35 0 0.65 2 3.2595 0.060185 0.35 0 0.45 0.55 3 20.391 0.11015 0.55 0.15 0 0.85 4 3.7534 0.0020125 0.35 0.25 0 0.75 5 5.7193 0.060185 0.35 0.35 0 0.65
方法模拟多因素模型模拟
函数。默认情况下,使用高斯copula。该函数在内部将实现的潜在变量映射到默认状态,并计算相应的损失。仿真完成后,creditDefaultCopula
对象填充PortfolioLosses
而且CounterpartyLosses
属性与仿真结果。
Cc =模拟(Cc,1e5);disp (cc)
creditDefaultCopula with properties: Portfolio: [100x5 table] FactorCorrelation: [2x2 double] VaRLevel: 0.9900 UseParallel: 0 PortfolioLosses: [1x100000 double]
的portfolioRisk
函数返回总投资组合损失分布的风险度量,并可选地返回它们各自的置信区间。风险价值(VaR)和条件风险价值(CVaR)是在VaRLevel
属性。creditDefaultCopula
对象。
[pr,pr_ci] = portfolio (cc);流(“投资组合风险指标:\n”);disp (pr)流(风险测度的置信区间:\n');disp (pr_ci)
投资组合风险措施:EL Std VaR CVaR ______ ______ _____ ______ 24.876 23.778 102.4 121.28置信区间风险措施:EL Std VaR CVaR ________________ ________________ ________________ ________________ 24.729 25.023 23.674 23.883 101.19 103.5 120.13 122.42
看看投资组合损失的分布。预期损失(EL), VaR和CVaR被标记为垂直线。经济资本,由VaR和EL之间的差异给出,显示为EL和VaR之间的阴影区域。
直方图(cc.PortfolioLosses)标题(“投资组合的损失”);包含(的损失(美元)) ylabel (“频率”)举行在在直方图上覆盖风险度量。xlim([0 1.1 * pr.CVaR]) plotline = @(x,color) plot([x x],ylim,“线宽”2,“颜色”、颜色);情节(公关。埃尔,“b”);情节(公关。VaR,“r”);故事情节(pr;CVaR,“米”);遮蔽预期损失和经济资本的区域。。Plotband = @(x,color) patch([x fliplr(x)],[0 0 repmat(max(ylim),1,2)],...的颜色,“FaceAlpha”, 0.15);elband = plotband([0 pr.EL],“蓝”);Ulband = plotband;EL pr.VaR),“红色”);传奇([elband、ulband cvarline),...{“预期损失”,“经济资本”,“CVaR(99%)”},...“位置”,“北”);
求投资组合中的集中风险riskContribution
函数。riskContribution
返回每个交易对手对投资组合EL和CVaR的贡献。这些相加的贡献加起来就是相应的总投资组合风险度量。
rc =风险贡献(cc);报告EL和CVaR的风险贡献。rc (1:5,:)
ans = 5x5表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
根据CVaR贡献找出风险最高的交易对手。
[rc_sorted,idx] = sortrows(rc,“CVaR”,“下”);: rc_sorted (1:5)
ans = 5x5表ID EL Std VaR CVaR __ _______ ______ ______ ______ 89 2.2647 2.2063 8.2676 8.9997 96 1.3515 1.6514 6.6157 7.7062 66 0.90459 1.474 6.4168 7.5149 22 1.5745 1.8663 6.0121 7.3814 16 1.6352 1.5288 6.3404 7.3462
绘制交易对手风险敞口和CVaR贡献。CVaR贡献最高的交易方用红色和橙色表示。
图;pointSize = 50;colorVector = rc_sorted.CVaR;散射(cc.Portfolio (idx:)。含铅,rc_sorted。CVaR,...pointSize colorVector,“填充”) colormap (“喷气机”)标题(“CVaR贡献vs风险敞口”)包含(“曝光”) ylabel (“CVaR贡献”网格)在
使用confidenceBands
函数来考察仿真的收敛性。默认情况下,报告CVaR置信区间,但是使用可选选项支持所有风险度量的置信区间金宝appRiskMeasure
论点。
cb = confidenceBands(cc);置信度区间存储在一个表中。cb (1:5,:)
ans = 5x4表numscenario Lower CVaR Upper ____________ ____________ ______ 1000 106.7 121.99 137.28 2000 109.18 117.28 125.38 3000 114.68 121.63 128.58 4000 114.02 120.06 126.11 5000 114.77 120.36 125.94
绘制置信区间,以查看估计收敛的速度。
图;图(...cb。NumScenarios,...cb {: {“上”“CVaR”“低”}},...“线宽”2);标题(“CVaR: 95%置信区间vs.场景数量”);包含(“# of scenario”);ylabel (“CVaR + 95% CI”)传说(上带的,“CVaR”,“低乐队”);网格在
找到必要的场景数量,以实现特定宽度的置信带。
宽度= (cb.)上- cb.Lower) ./ cb.CVaR;图;情节(cb。numscenario,宽度* 100,“线宽”2);标题(“CVaR: 95%置信区间宽度vs场景#”);包含(“# of scenario”);ylabel (“CI宽度作为值的%ile”网格)在的置信区间在1%(两边)以内的点% CVaR。脱粒= 0.02;scenIdx = find(width <= thresh,1,“第一”);scenValue = cb. numscenes (scenIdx);widthValue = width(scenIdx);持有在plot(xlim,100 * [widthValue],...[scenValue], ylim,...“线宽”2);标题(“宽度为2%的置信区间所需的场景”);
切换到tCopula增加了交易对手之间的违约相关性。这导致投资组合损失的尾部分布更大,在压力情景下潜在损失更高。
重新运行模拟t并计算新的投资组合风险指标。的默认自由度(dof)tCopula五岁。
Cc_t =模拟(cc,1e5,连系动词的,“t”);pr_t = portfolioRisk(cc_t);
看投资组合风险如何随t连系动词。
流('带高斯关联的投资组合风险:\n');disp (pr)流(带t关联函数(dof = 5)的投资组合风险:\n');disp (pr_t)
具有高斯关联的投资组合风险:EL Std VaR CVaR ______ ______ _____ ______ 24.876 23.778 102.4 121.28具有t关联的投资组合风险(dof = 5): EL Std VaR CVaR ______ ______ ______ ______ 24.808 38.749 186.08 250.59
比较每个模型的尾部损失。
绘制高斯联结尾。图;subplot(2,1,1) p1 =直方图(cc.PortfolioLosses);持有在情节(公关。VaR,[1 0.5 0.5]) plotline(pr.CVaR,[1 0 0]) xlim([0.8 * pr.VaR 1.2 * pr_t.CVaR]); ylim([0 1000]); grid在传奇(损失分布的,“VaR”,“CVaR”)标题(“高斯关联的投资组合损失”);包含(的损失(美元));ylabel (“频率”);绘制t联结尾。subplot(2,1,2) p2 =直方图(cc_t.PortfolioLosses);持有在情节(pr_t。VaR,[1 0.5 0.5]) plotline(pr_t.CVaR,[1 0 0]) xlim([0.8 * pr.VaR 1.2 * pr_t.CVaR]); ylim([0 1000]); grid在传奇(损失分布的,“VaR”,“CVaR”);标题(' t Copula的投资组合损失(dof = 5)');包含(的损失(美元));ylabel (“频率”);
尾部风险指标VaR和CVaR显著高于使用t有五个自由度的Copula。默认相关性较高t因此,有更多的情况下,多个交易对手违约。自由度的数量起着重要的作用。对于非常高的自由度,结果与t与Gaussian copula的结果相似。5是一个非常低的自由度,因此,结果显示出显著的差异。此外,这些结果强调,潜在的极端损失是非常敏感的copula的选择和自由度的数量。
confidenceBands
|creditDefaultCopula
|getScenarios
|portfolioRisk
|riskContribution
|模拟