cdm

cdm

Descripción

La acción `cdm` en el conjunto de acciones `cdm` (Compound Distribution Model) se utiliza para simular una muestra de una distribución de pérdida agregada, que se construye a partir de distribuciones de frecuencia y severidad. Es una herramienta fundamental en el modelado de riesgos para estimar la distribución de pérdidas totales en un período determinado.

cdm.cdm { adjustedSeverity={adjParm}, aggLossModelType="COLLECTIVERISK" | "CUSTOM" | "PUREPREMIUM", countDistributions={{countDist-1} <, {countDist-2}, ...>}, countStore={castable}, countVariable="variable-name", display={displayTables}, idVariable="variable-name", ignoreParmCovariance=TRUE | FALSE, maxCountDraw=integer, nPerturbedSamples=integer, nReplicates=64-bit-integer, outDraw={casouttable}, output={outsampleParm}, outputTables={outputTables}, outsum={outsumParm}, percentileMethod=integer, perturbMode="AUTO" | "DIST", plotTable={plotTable}, seed=integer, severityDefinitions={castable}, severityDistributions={"string-1" <, "string-2", ...>}, severityEst={castable}, severityStore={castable}, severityTruncationLeft=double, severityTruncationRight=double, simulatedSymbols={{simSymbol-1} <, {simSymbol-2}, ...>}, table={castable}, truncateZeros=TRUE | FALSE, varianceDivisor="DF" | "N" };
Parámetros
ParámetroDescripción
adjustedSeverity Especifica los símbolos de severidad ajustados y un programa SAS para calcularlos. Se estima una distribución agregada para cada símbolo de severidad ajustado.
aggLossModelType Especifica el tipo de modelo a utilizar para la pérdida agregada.
countDistributions Especifica las distribuciones de conteo y los valores de sus parámetros.
countStore Especifica una tabla de almacén de ítems para leer las estimaciones del modelo de conteo. Debe ser una tabla creada por la acción `countregFitModel`.
countVariable Especifica la variable de conteo.
display Especifica una lista de tablas de resultados para enviar al cliente para su visualización.
idVariable Especifica el nombre de la variable de ID de replicación.
ignoreParmCovariance Si es `TRUE`, ignora las estimaciones de covarianza de los parámetros y utiliza solo sus errores estándar para perturbarlos.
maxCountDraw Especifica un límite superior en el número de eventos de pérdida (conteo) que se utiliza para simular un punto de muestra de pérdida agregada.
nPerturbedSamples Especifica el número de muestras perturbadas a producir para realizar el análisis de perturbación de parámetros.
nReplicates Especifica un número que controla el tamaño de la muestra de la distribución compuesta que la acción simula.
outDraw Especifica los detalles de la tabla de salida para escribir los sorteos de severidad.
output Especifica los detalles de la tabla de salida para escribir las muestras.
outputTables Lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
outsum Especifica los detalles de la tabla de salida para escribir estadísticas de resumen.
percentileMethod Especifica el método para calcular los percentiles de la distribución compuesta.
perturbMode Especifica cómo organizar las muestras perturbadas cuando las simulaciones utilizan más de un nodo de trabajo.
plotTable Especifica la información que controla la creación y el contenido de la tabla de resultados PlotData.
seed Especifica la semilla para el generador de números aleatorios.
severityDefinitions Especifica el nombre de la tabla CAS que contiene las definiciones de la distribución de severidad.
severityDistributions Especifica la lista de nombres de distribuciones de severidad a analizar.
severityEst Especifica una tabla para leer las estimaciones del modelo de severidad desde una tabla `OUTEST`.
severityStore Especifica una tabla de almacén de ítems para leer las estimaciones del modelo de severidad.
severityTruncationLeft Especifica el umbral de truncamiento izquierdo a aplicar a cada valor de severidad.
severityTruncationRight Especifica el límite de truncamiento derecho a aplicar a cada valor de severidad.
simulatedSymbols Especifica los símbolos simulados y sus distribuciones de probabilidad.
table Especifica la tabla de datos de entrada.
truncateZeros Si es `TRUE`, trunca (elimina) las pérdidas agregadas con valor cero de la muestra agregada.
varianceDivisor Especifica el divisor a utilizar en el cálculo de la varianza, desviación estándar, curtosis y asimetría de la muestra de la distribución compuesta.
Creación de Datos de Definición de Severidad

Para usar la acción `cdm`, primero se necesita una tabla que defina los modelos de severidad. El siguiente código crea una tabla `sevdefs` en la caslib `casuser`. Esta tabla especifica una distribución Lognormal (`Lognormal`) con sus parámetros `mu` y `sigma`.

¡Copiado!
1DATA casuser.sevdefs;
2 LENGTH model $20 distribution $20;
3 model='sev1'; distribution='Lognormal';
4 OUTPUT;
5RUN;
6 
7DATA casuser.sevest;
8 LENGTH _model_ $20 _name_ $20;
9 _model_='sev1'; _name_='mu'; estimate=1.5; OUTPUT;
10 _model_='sev1'; _name_='sigma'; estimate=0.5; OUTPUT;
11RUN;

Ejemplos

Este ejemplo realiza una simulación básica de un modelo de riesgo colectivo. Utiliza una distribución de Poisson para la frecuencia (número de siniestros) y la distribución Lognormal definida en `casuser.sevdefs` y `casuser.sevest` para la severidad (monto de cada siniestro). Se generan 100,000 réplicas de la pérdida agregada.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 cdm.cdm
3 nReplicates=100000,
4 seed=1234,
5 countDistributions={{name='Poisson', parmValues={{value=2}}}},
6 severityEst={name='sevest', caslib='casuser'},
7 severityDefinitions={name='sevdefs', caslib='casuser'},
8 OUTPUT={outSample={name='myaggloss', caslib='casuser', replace=true}};
9RUN;
Resultado :
La acción genera una tabla CAS llamada `myaggloss` en la caslib `casuser`. Esta tabla contiene 100,000 observaciones de la variable de pérdida agregada simulada, que por defecto se llama `_AGGSEV_`.

Este ejemplo más detallado simula un modelo de pérdida agregada utilizando dos distribuciones de severidad diferentes (Lognormal y Gamma). Se especifica la tabla `severityEst` para los parámetros. Además, se utiliza el parámetro `outsum` para calcular y guardar estadísticas descriptivas (media, desviación estándar) y percentiles específicos (95, 97.5, 99, 99.5) de la muestra de pérdida agregada en una nueva tabla llamada `myaggsummary`.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 cdm.cdm
3 nReplicates=200000,
4 seed=5678,
5 countDistributions={{name='NegativeBinomial', parmValues={{value=3},{value=0.5}}}},
6 severityEst={name='sevest', caslib='casuser'},
7 severityDefinitions={name='sevdefs', caslib='casuser'},
8 OUTPUT={outSample={name='myaggloss_detailed', caslib='casuser', replace=true}},
9 outsum={
10 outSummary={name='myaggsummary', caslib='casuser', replace=true},
11 percentiles={{percentile=95},{percentile=97.5},{percentile=99},{percentile=99.5}},
12 summaryStatistics={{statistic='mean'},{statistic='stddev'}}
13 };
14RUN;

Este ejemplo demuestra cómo realizar un análisis de sensibilidad o perturbación de parámetros. Se generan 500 muestras perturbadas (`nPerturbedSamples=500`). Para cada muestra perturbada, los parámetros de las distribuciones de conteo y severidad se extraen de una distribución normal multivariante definida por sus estimaciones y la matriz de covarianza (si está disponible en `countStore` o `severityEst`). Esto permite evaluar el impacto de la incertidumbre de los parámetros en la distribución de la pérdida agregada.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1/* Se asume que se ha creado un almacén de ítems 'mycountstore' con la acción countreg.fitModel */
2/* y un almacén 'mysevstore' con la acción severity.severity */
3PROC CAS;
4 cdm.cdm
5 nReplicates=10000,
6 nPerturbedSamples=500,
7 seed=123,
8 countStore={name='mycountstore', caslib='casuser'},
9 severityStore={name='mysevstore', caslib='casuser'},
10 OUTPUT={
11 outSample={name='aggperturbsample', caslib='casuser', replace=true},
12 perturbOut=true
13 },
14 outsum={
15 outSummary={name='aggperturbsummary', caslib='casuser', replace=true},
16 percentiles={{percentile=99.5}}
17 };
18RUN;

FAQ

¿Para qué se utiliza la acción cdm en SAS Viya?
¿Qué tipos de modelos de pérdida agregada soporta la acción cdm?
¿Cómo se define la distribución de severidad para la simulación?
¿Es posible generar muestras perturbadas para análisis de sensibilidad?
¿Qué hace el parámetro 'adjustedSeverity'?
¿Qué es la acción `cdm`?
¿Cuál es el propósito principal del conjunto de acciones de Modelado de Pérdidas Agregadas?
¿Qué tipos de modelos de pérdida agregada soporta la acción `cdm`?
¿Cómo se especifican las distribuciones de severidad para la simulación?
¿Qué hace el parámetro `nPerturbedSamples`?
¿Es posible ajustar la muestra de severidad generada?

Escenarios asociados

Caso de uso
Estimación de Reservas para Seguros de Automóviles (Riesgo Colectivo)

Una compañía de seguros necesita estimar el capital de reserva necesario para cubrir siniestros de automóviles el próximo año. Utilizan datos históricos que indican una frecuenc...

Caso de uso
Pruebas de Estrés Financiero y Perturbación de Parámetros

Un banco internacional está realizando pruebas de estrés (CCAR) para riesgos operativos. Necesitan no solo la pérdida esperada, sino entender qué tan sensible es su modelo a peq...

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

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...