matlab使用Copula仿真優(yōu)化市場風(fēng)險(xiǎn)數(shù)據(jù)VaR分析
原文http://tecdat.cn/?p=4305
?
使用Copula建模相關(guān)默認(rèn)值
?
此示例探討了如何使用多因素copula模型模擬相關(guān)的交易對手違約。
鑒于違約風(fēng)險(xiǎn)敞口,違約概率和違約信息損失,估計(jì)交易對手組合的潛在損失。一個(gè)creditDefaultCopula對象用于每個(gè)債務(wù)人的信用與潛在變量模型。潛在變量由一系列加權(quán)潛在信用因子以及每個(gè)債務(wù)人的特殊信用因子組成。潛在變量根據(jù)其默認(rèn)概率映射到每個(gè)方案的債務(wù)人的默認(rèn)或非默認(rèn)狀態(tài)。該creditDefaultCopula對象支持投資組合風(fēng)險(xiǎn)度量,交易對手級別的風(fēng)險(xiǎn)貢獻(xiàn)以及模擬收斂信息。
這個(gè)例子還探討了風(fēng)險(xiǎn)度量對用于模擬的copula(高斯copula與t copula)類型的敏感性。
加載和檢查投資組合數(shù)據(jù)
投資組合包含100個(gè)交易對手及其相關(guān)的信用風(fēng)險(xiǎn)敞口(默認(rèn)值EAD),違約概率(PD)和默認(rèn)損失(LGD)。使用creditDefaultCopula對象,您可以模擬某個(gè)固定時(shí)間段(例如,一年)的默認(rèn)值和損失。的EAD,PD和LGD輸入必須是針對特定的時(shí)間范圍。
在此示例中,每個(gè)交易對手都使用一組權(quán)重映射到兩個(gè)基礎(chǔ)信用因子。該Weights2F變量是一個(gè)NumCounterparties-by-3矩陣,其中每一行包含一個(gè)單一的對方的權(quán)重。前兩列是兩個(gè)信用因子的權(quán)重,最后一列是每個(gè)交易對手的特殊權(quán)重。此示例(FactorCorr2F)中還提供了兩個(gè)基本因子的相關(guān)矩陣。
加載CreditPortfolioData.mat
使用creditDefaultCopula投資組合信息和因子相關(guān)性初始化對象。
rng('default');
cc = creditDefaultCopula(EAD,PD,LGD,Weights2F,'FactorCorrelation',F(xiàn)actorCorr2F);
cc.VaRLevel = 0.99;
DISP(CC)
creditDefaultCopula with properties:
FactorCorrelation:[2x2 double]
VaRLevel:0.9900
PortfolioLosses:[]
cc.Portfolio(1:5,:)
ans =
5x5表
ID EAD PD LGD重量
__ ______ _________ ____ ____________________
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
?
模擬模型和繪制潛在損失
使用該simulate函數(shù)模擬多因素模型。默認(rèn)情況下,使用高斯copula。此函數(shù)在內(nèi)部將已實(shí)現(xiàn)的潛在變量映射到默認(rèn)狀態(tài),并計(jì)算相應(yīng)的損失。在模擬之后,creditDefaultCopula對象使用模擬結(jié)果填充PortfolioLosses和CounterpartyLosses屬性。
cc = simulate(cc,1e5);
DISP(CC)
creditDefaultCopula with properties:
FactorCorrelation:[2x2 double]
VaRLevel:0.9900
PortfolioLosses:[1x100000雙]
?
該portfolioRisk函數(shù)返回總投資組合損失分布的風(fēng)險(xiǎn)度量,并且可選地返回它們各自的置信區(qū)間。VaRLevel在creditDefaultCopula對象的屬性中設(shè)置的級別報(bào)告風(fēng)險(xiǎn)值(VaR)和條件風(fēng)險(xiǎn)值(CVaR)。
[pr,pr_ci] = portfolioRisk(cc);
fprintf('投資組合風(fēng)險(xiǎn)指標(biāo):\ n');
DISP(PR)
fprintf('\ n \ n風(fēng)險(xiǎn)衡量的保密間隔:\ n');
DISP(pr_ci)
投資組合風(fēng)險(xiǎn)衡量
EL Std VaR CVaR
______ ______ ______ ______
24.774 23.693 101.57 120.22
風(fēng)險(xiǎn)衡量的置信區(qū)間:
EL Std VaR CVaR
________________ ________________ ________________ _______________
24.627 24.92 23.589 23.797 100.65 102.82 119.1 121.35
?
看看投資組合損失的分布。預(yù)期損耗(EL),VaR和CVaR標(biāo)記為垂直線。由VaR和EL之間的差異給出的經(jīng)濟(jì)資本顯示為EL和VaR之間的陰影區(qū)域。
plotline = @(x,color)plot([xx],ylim,'LineWidth',2,'Color',color);
cvarline = plotline(pr.CVaR,'m');
%遮蔽預(yù)期損失和經(jīng)濟(jì)資本的領(lǐng)域。
plotband = @(x,color)patch([x fliplr(x)],[0 0 repmat(max(ylim),1,2)],...
color,'FaceAlpha',0.15);
elband = plotband([0 pr.EL],'blue');
ulband = plotband([pr.EL pr.VaR],'red');
?
?

找出交易對手的集中風(fēng)險(xiǎn)
使用該riskContribution函數(shù)查找投資組合中的集中度風(fēng)險(xiǎn)。riskContribution返回每個(gè)交易對手對投資組合EL和CVaR的貢獻(xiàn)。這些附加值貢獻(xiàn)與相應(yīng)的總投資組合風(fēng)險(xiǎn)度量相加。
rc = riskContribution(cc);
報(bào)告EL和CVaR的風(fēng)險(xiǎn)貢獻(xiàn)百分比。
RC(1:5,:)
ans =
5x5表
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
?
通過CVaR貢獻(xiàn)找出風(fēng)險(xiǎn)最大的交易對手。
[rc_sorted,idx] = sortrows(rc,'CVaR','descend');
rc_sorted(1:5,:)
ans =
5x5表
ID EL Std VaR CVaR
__ _______ ______ ______ ______
89 2.261 2.2158 8.1095 9.2257
22 1.5672 1.8293 6.275 7.4602
66 0.85227 1.4063 6.3827 7.2691
16 1.6236 1.5011 5.8949 7.1083
?
??繪制交易對手風(fēng)險(xiǎn)和CVaR貢獻(xiàn)。具有最高CVaR貢獻(xiàn)的交易對手以紅色和橙色繪制。
pointSize = 50;
colorVector = rc_sorted.CVaR;
scatter(cc.Portfolio(idx,:)。EAD,rc_sorted.CVaR,...
pointSize,colorVector,'filled')
colormap('jet')
?

用置信帶研究模擬收斂性
使用該confidenceBands函數(shù)來研究模擬的收斂性。默認(rèn)情況下,會(huì)報(bào)告CVaR置信區(qū)間,但使用可選RiskMeasure參數(shù)支持所有風(fēng)險(xiǎn)度量的置信區(qū)間。
cb = confidenceBands(cc);
%置信帶存儲在表格中。
CB(1:5,:)
ans =
5x4表
NumScenarios降低CVaR上限
____________ ______ ______ ______
1000 113.92 124.76 135.59
2000 111.02 117.74 124.45
3000 113.58 118.97 124.36
4000 113.06 117.44 121.81
5000 114.38 118.99 123.6
?
繪制置信區(qū)間以查看估算收斂的速度。

找到必要數(shù)量的方案以獲得特定寬度的置信區(qū)間。
width =(cb.Upper - cb.Lower)./ cb.CVaR;
* 100,'LineWidth',2);
%找到置信帶在
%CVaR的1%(雙側(cè))范圍內(nèi)的點(diǎn)。
thresh = 0.02;
scenIdx = find(width <= thresh,1,'first');
scenValue = cb.NumScenarios(scenIdx);
widthValue = width(scenIdx);
?

比較Gaussian和t Copulas的尾部風(fēng)險(xiǎn)
切換到t copula會(huì)增加交易對手之間的默認(rèn)關(guān)聯(lián)。這導(dǎo)致投資組合損失的尾部分布更加嚴(yán)重,并且在壓力情景中導(dǎo)致更高的潛在損失。
cc_t = simulate(cc,1e5,'Copula','t');
pr_t = portfolioRisk(cc_t);
了解投資組合風(fēng)險(xiǎn)如何隨著t copula而變化。
高斯copula的投資組合風(fēng)險(xiǎn):
EL Std VaR CVaR
______ ______ ______ ______
24.774 23.693 101.57 120.22
t copula的投資組合風(fēng)險(xiǎn)(dof = 5):
EL Std VaR CVaR
______ ______ ______ ______
24.924 38.982 186.33 251.38
?
比較每種型號的尾部損失。
使用具有五個(gè)自由度的t copula,尾部風(fēng)險(xiǎn)測量值VaR和CVaR顯著更高。t copulas 的默認(rèn)相關(guān)性較高,因此有多個(gè)交易對手默認(rèn)的情況更多。自由度的數(shù)量起著重要作用。對于非常高的自由度,使用t copula的結(jié)果與使用高斯copula的結(jié)果相似。五是自由度非常低,因此結(jié)果顯示出顯著的差異。此外,這些結(jié)果強(qiáng)調(diào)極端損失的可能性對于copula的選擇和自由度的數(shù)量非常敏感。