Scénario de test & Cas d'usage
Simulación de una estructura de dependencia (Cópula Gaussiana) y dos distribuciones de pérdidas marginales (Lognormal para Auto, Gamma para Hogar).
| 1 | |
| 2 | PROC CAS; |
| 3 | dataStep.runCode / code = " |
| 4 | data casuser.copula_riesgo; |
| 5 | call streaminit(789); |
| 6 | do i = 1 to 5000; |
| 7 | u_auto = rand('UNIFORM'); |
| 8 | u_hogar = rand('UNIFORM'); |
| 9 | output; |
| 10 | end; |
| 11 | |
| 12 | run; |
| 13 | |
| 14 | data casuser.perdidas_auto; |
| 15 | call streaminit(101); |
| 16 | do i = 1 to 1000; |
| 17 | monto = rand('LOGNORMAL', 5, 0.8); |
| 18 | output; |
| 19 | end; |
| 20 | |
| 21 | run; |
| 22 | |
| 23 | data casuser.perdidas_hogar; |
| 24 | call streaminit(202); |
| 25 | do i = 1 to 1000; |
| 26 | monto = rand('GAMMA', 2, 2000); |
| 27 | output; |
| 28 | end; |
| 29 | |
| 30 | run; |
| 31 | "; |
| 32 | |
| 33 | RUN; |
| 34 |
| 1 | PROC CAS; TABLE.tableInfo / caslib="casuser"; RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | ecm.ecm / copulaSample={name="copula_riesgo", caslib="casuser"} marginals={{TABLE={name="perdidas_auto", caslib="casuser"}, sampleVarName="monto"}, {TABLE={name="perdidas_hogar", caslib="casuser"}, sampleVarName="monto"}} analysisVariables={"u_auto", "u_hogar"} OUTPUT={outSample={name="total_perdidas_simuladas", caslib="casuser"}} outsum={outSummary={name="resumen_solvencia", caslib="casuser"}, percentiles={{percentile=99.5}, {percentile=99.9}}, tVaRLevels={{percentileLevel=99.5}}} seed=12345; |
| 4 | |
| 5 | RUN; |
| 6 |
El sistema genera la tabla 'resumen_solvencia' que contiene el VaR al 99.5% y el TVaR al 99.5%, cifras críticas para el reporte regulatorio de la aseguradora, agregando correctamente las correlaciones definidas en la cópula.