ecm

ecm

Descripción

La acción `ecm` (Economic Capital Modeling) crea una muestra de la pérdida a nivel de toda la empresa combinando una simulación de cópula con las distribuciones empíricas marginales de las pérdidas en las líneas de negocio. Esta acción es fundamental en la gestión de riesgos para agregar pérdidas de diferentes fuentes operativas o de negocio, preservando la estructura de dependencia entre ellas definida por la cópula y respetando las características individuales de las colas de distribución de cada riesgo.

ecm.ecm <result=results> <status=rc> / analysisVariables={"string-1" <, "string-2", ...>}, bodySampleFrac=double, copulaSample={caslib="string", dataSourceOptions={key-1=value-1 <, ...>}, importOptions={...}, name="table-name", orderBy={{...}}, where="where-expression", whereTable={...}}, display={caseSensitive=TRUE|FALSE, exclude=TRUE|FALSE, names={"string-1"...}, traceNames=TRUE|FALSE}, doExactFinalCount=TRUE|FALSE, edfAccuracy=double, marginalDrawId=integer, marginals={{drawId=integer, idVarValue="string", percentileMethod=integer, sampleVarName="string", table={...}} <, ...>}, optMaxIter=integer, optTolerance=double, output={outSample={name="table-name", ...}, varName="string", writeMarginals=TRUE|FALSE}, outputTables={names={"string-1"...}, ...}, outsum={outSummary={name="table-name"...}, pctlndec=integer, pctlPrefix="string", percentiles={{percentile=double, variable="string"}...}, summaryStatistics={{statistic="MEAN"|"STDDEV"...}...}, tVaRLevels={{percentileLevel=double...}...}, tVaRPrefix="string"}, percentileMethod=integer, seed=64-bit-integer, shuffleData=TRUE|FALSE, tailEDFAccuracy=double, tailStart=double, varianceDivisor="DF"|"N";
Parámetros
ParámetroDescripción
copulaSampleEspecifica la tabla de entrada que contiene la simulación de la cópula en márgenes uniformes. Esta tabla es esencialmente la estructura de dependencia multivariante.
marginalsLista de tablas de entrada que contienen las muestras empíricas de las distribuciones marginales de las líneas de negocio o tipos de riesgo.
analysisVariablesEspecifica los nombres de las variables marginales en la tabla `copulaSample` que se utilizarán para el análisis.
outputDefine los detalles de la tabla de salida donde se escribirá la muestra generada de la pérdida agregada a nivel empresarial.
outsumEspecifica la tabla de salida para escribir estimaciones de estadísticas descriptivas, percentiles y Valor en Riesgo de Cola (TVaR).
seedValor entero para la semilla del generador de números pseudoaleatorios, garantizando la reproducibilidad de la simulación.
tailStartValor doble (entre 0 y 1) que indica el punto de la función de distribución empírica (EDF) donde se considera que comienza la región de la cola.
edfAccuracyPrecisión deseada para la función de distribución empírica en la región del cuerpo de la distribución.
tailEDFAccuracyPrecisión deseada para la función de distribución empírica en la región de la cola, generalmente más estricta que para el cuerpo.
Preparación de Datos para ECM

Se generan datos simulados: una tabla con estructura de dependencia (cópula) y dos tablas con distribuciones de pérdidas marginales para diferentes líneas de negocio.

¡Copiado!
1 
2PROC CAS;
3dataStep.runCode / code = "
4data casuser.simulacion_copula;
5call streaminit(123);
6do i = 1 to 10000;
7u_riesgo1 = rand('UNIFORM');
8u_riesgo2 = rand('UNIFORM');
9output;
10end;
11 
12run;
13 
14data casuser.marginal_a;
15call streaminit(123);
16do i = 1 to 2000;
17perdida = rand('LOGNORMAL', 4, 1);
18output;
19end;
20 
21run;
22 
23data casuser.marginal_b;
24call streaminit(456);
25do i = 1 to 2000;
26perdida = rand('GAMMA', 3, 500);
27output;
28end;
29 
30run;
31";
32 
33RUN;
34 

Ejemplos

Combina la simulación de cópula con las marginales para estimar la pérdida total.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3ecm.ecm / copulaSample={name="simulacion_copula", caslib="casuser"} marginals={{TABLE={name="marginal_a", caslib="casuser"}, sampleVarName="perdida"}, {TABLE={name="marginal_b", caslib="casuser"}, sampleVarName="perdida"}} analysisVariables={"u_riesgo1", "u_riesgo2"} OUTPUT={outSample={name="perdida_total", caslib="casuser"}} seed=999;
4 
5RUN;
6 
Resultado :
Genera una tabla 'perdida_total' que contiene las muestras simuladas de la pérdida agregada combinando los riesgos.

Ejecución completa solicitando estadísticas detalladas, percentiles específicos y métricas de riesgo de cola (TVaR).

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3ecm.ecm / copulaSample={name="simulacion_copula", caslib="casuser"} marginals={{TABLE={name="marginal_a", caslib="casuser"}, sampleVarName="perdida"}, {TABLE={name="marginal_b", caslib="casuser"}, sampleVarName="perdida"}} analysisVariables={"u_riesgo1", "u_riesgo2"} OUTPUT={outSample={name="ecm_detalle", caslib="casuser"}, varName="TotalLoss"} outsum={outSummary={name="ecm_resumen", caslib="casuser"}, summaryStatistics={{statistic="MEAN"}, {statistic="STDDEV"}, {statistic="SKEWNESS"}}, percentiles={{percentile=95}, {percentile=99.9}}, tVaRLevels={{percentileLevel=99}, {percentileLevel=99.5}}} tailStart=0.9 seed=12345;
4 
5RUN;
6 
Resultado :
Crea 'ecm_detalle' con los datos simulados y 'ecm_resumen' con media, desviación, asimetría, VaR al 95% y 99.9%, y TVaR al 99% y 99.5%.

FAQ

¿Cuál es la función principal de la acción ecm?
¿Qué información debe contener la tabla especificada en el parámetro copulaSample?
¿Para qué se utiliza el parámetro marginals?
¿Qué define el parámetro tailStart?
¿Cómo afecta el parámetro bodySampleFrac al muestreo?
¿Qué precisión busca el parámetro tailEDFAccuracy?
¿Cómo se pueden obtener estadísticas resumidas y valores de riesgo de cola (TVaR) en una tabla de salida?
¿Qué hace el parámetro shuffleData?

Escenarios asociados

Caso de uso
Cálculo de Capital Solvencia II para Seguros

Una compañía de seguros necesita calcular el Capital Económico requerido bajo la normativa Solvencia II. Se deben agregar las pérdidas operativas de dos líneas de negocio princi...

Caso de uso
Agregación de Riesgo Operativo a Gran Escala

Un banco internacional está modelando el Riesgo Operativo global. Necesitan simular millones de escenarios combinando riesgos de 'Fraude Externo', 'Fallas TI' y 'Prácticas Labor...

Caso de uso
Prueba de Estrés: Alta Precisión en la Cola

El departamento de Riesgos está realizando un 'Stress Test' para eventos de cisne negro (extremadamente raros). Se requiere forzar el análisis para que se concentre exclusivamen...