cdm cdm

Cálculo de Reaseguro con Lógica de Negocio Personalizada (Adjusted Severity)

Scénario de test & Cas d'usage

Contexto empresarial

Una reaseguradora quiere modelar el riesgo de una cartera donde solo pagan si el siniestro supera un deducible de $5,000. Si el siniestro es menor, la pérdida para ellos es cero. Necesitan aplicar esta lógica condicional directamente en la simulación para obtener la 'Prima Pura' correcta.
Sobre el conjunto : cdm

Herramientas para el modelo de datos común.

Descubrir todas las acciones de cdm
Preparación de datos

Configuración de una distribución Pareto para riesgos de cola larga.

¡Copiado!
1 
2DATA casuser.reins_defs;
3LENGTH model $20 distribution $20;
4model='catastrofe';
5distribution='Pareto';
6OUTPUT;
7 
8RUN;
9 
10DATA casuser.reins_est;
11LENGTH _model_ $20 _name_ $20;
12_model_='catastrofe';
13_name_='alpha';
14estimate=3;
15OUTPUT;
16_model_='catastrofe';
17_name_='theta';
18estimate=2000;
19OUTPUT;
20 
21RUN;
22 

Étapes de réalisation

1
Definición de datos preliminares.
¡Copiado!
1 
2PROC CAS;
3TABLE.fetch TABLE={name='reins_est', caslib='casuser'};
4 
5RUN;
6 
2
Uso de adjustedSeverity para aplicar el deducible y truncateZeros para limpiar datos.
¡Copiado!
1 
2PROC CAS;
3cdm.cdm nReplicates=25000, seed=777, countDistributions={{name='Poisson', parmValues={{value=20}}}}, severityDefinitions={name='reins_defs', caslib='casuser'}, severityEst={name='reins_est', caslib='casuser'}, adjustedSeverity={symbols={{name='PagoReaseguro', model='catastrofe'}}, sasCode='if category_loss > 5000 then PagoReaseguro = category_loss - 5000;
4else PagoReaseguro = 0;
5'}, truncateZeros=TRUE, OUTPUT={outSample={name='capa_reaseguro', caslib='casuser'}};
6 
7RUN;
8 

Resultado esperado


La tabla resultante 'capa_reaseguro' debe contener solo aquellos escenarios donde la pérdida agregada superó el deducible (gracias a truncateZeros). La variable 'PagoReaseguro' reflejará el monto neto pagado después de restar los 5,000 iniciales, validando la lógica SAS inyectada.