ecm ecm

Operational Risk Aggregation for Banking

Scénario de test & Cas d'usage

Business Context

A retail bank needs to calculate its Economic Capital by aggregating operational risks from two main business lines: 'Internal Fraud' and 'IT System Failures'. The Risk Management department requires the calculation of Value-at-Risk (VaR) and Tail Value-at-Risk (TVaR) at the 99.5% confidence level to comply with regulatory standards.
Data Preparation

Simulate a Copula table representing the correlation between Fraud and IT risks, and generate two marginal loss distribution tables (Log-Normal for Fraud, Weibull for IT).

Copied!
1 
2DATA casuser.cop_risk;
3call streaminit(101);
4DO i = 1 to 5000;
5u_fraud = rand('UNIFORM');
6u_it = rand('UNIFORM');
7OUTPUT;
8END;
9 
10RUN;
11 
12DATA casuser.marg_fraud;
13call streaminit(102);
14DO i = 1 to 5000;
15_DRAWID_=1;
16_LOSS_ = rand('LOGNORMAL', 9, 2);
17OUTPUT;
18END;
19 
20RUN;
21 
22DATA casuser.marg_it;
23call streaminit(103);
24DO i = 1 to 5000;
25_DRAWID_=1;
26_LOSS_ = rand('WEIBULL', 1.2, 5000);
27OUTPUT;
28END;
29 
30RUN;
31 

Étapes de réalisation

1
Execute ECM action to aggregate risks and calculate TVaR at 99.5%.
Copied!
1 
2PROC CAS;
3ecm.ecm / copulaSample={name='cop_risk'} marginals={{name='marg_fraud', sampleVarName='_LOSS_', idVarValue='u_fraud'}, {name='marg_it', sampleVarName='_LOSS_', idVarValue='u_it'}} analysisVariables={'u_fraud', 'u_it'} outsum={outSummary={name='risk_metrics', replace=true}, tVaRLevels={{percentileLevel=99.5}}, percentiles={{percentile=50}, {percentile=99.5}}, summaryStatistics={{statistic='MEAN'}, {statistic='STDDEV'}}} OUTPUT={outSample={name='agg_loss_sample', replace=true}, varName='Total_Op_Risk'} seed=12345;
4 
5RUN;
6 

Expected Result


The action successfully generates 'agg_loss_sample' with total losses and 'risk_metrics' containing the TVaR at 99.5%, Mean, and StdDev, accurately reflecting the combined risk profile.