Scénario de test & Cas d'usage
Datos con alta curtosis para simular eventos extremos frecuentes.
| 1 | |
| 2 | PROC CAS; |
| 3 | dataStep.runCode / code = " |
| 4 | data casuser.stress_copula; |
| 5 | call streaminit(888); |
| 6 | do i = 1 to 2000; |
| 7 | u_mercado = rand('UNIFORM'); |
| 8 | u_credito = rand('UNIFORM'); |
| 9 | output; |
| 10 | end; |
| 11 | |
| 12 | run; |
| 13 | |
| 14 | data casuser.stress_mercado; |
| 15 | call streaminit(11); |
| 16 | do i = 1 to 5000; |
| 17 | pnl = rand('T', 3) * 10000; |
| 18 | if pnl > 0 then output; |
| 19 | end; |
| 20 | |
| 21 | run; |
| 22 | |
| 23 | data casuser.stress_credito; |
| 24 | call streaminit(22); |
| 25 | do i = 1 to 5000; |
| 26 | pnl = rand('LOGNORMAL', 6, 2); |
| 27 | output; |
| 28 | end; |
| 29 | |
| 30 | run; |
| 31 | "; |
| 32 | |
| 33 | RUN; |
| 34 |
| 1 | |
| 2 | PROC CAS; |
| 3 | ecm.ecm / copulaSample={name="stress_copula", caslib="casuser"} marginals={{TABLE={name="stress_mercado", caslib="casuser"}, sampleVarName="pnl"}, {TABLE={name="stress_credito", caslib="casuser"}, sampleVarName="pnl"}} analysisVariables={"u_mercado", "u_credito"} tailStart=0.95 tailEDFAccuracy=0.0001 OUTPUT={outSample={name="stress_results", caslib="casuser"}} outsum={outSummary={name="stress_stats", caslib="casuser"}, tVaRLevels={{percentileLevel=99}, {percentileLevel=99.9}}} seed=777; |
| 4 | |
| 5 | RUN; |
| 6 |
La acción modela específicamente el comportamiento a partir del cuantil 0.95 (`tailStart=0.95`), aplicando una precisión estricta (`tailEDFAccuracy`) para asegurar que las estimaciones de TVaR al 99.9% sean matemáticamente robustas frente a la escasez de datos en la cola extrema.