Scénario de test & Cas d'usage
Simulación de una cartera de 2000 clientes con variables demográficas y conteo de siniestros con sobredispersión.
| 1 | |
| 2 | DATA casuser.cartera_seguros; |
| 3 | call streaminit(12345); |
| 4 | DO id=1 to 2000; |
| 5 | edad = floor(40 + rand('Normal', 0, 10)); |
| 6 | IF edad < 18 THEN edad=18; |
| 7 | valor_auto = 15000 + rand('Normal', 5000, 2000); |
| 8 | zona_riesgo = rand('Bernoulli', 0.3); |
| 9 | mu = exp(-2 + 0.01*edad + 0.5*zona_riesgo); |
| 10 | /* Generar sobredispersión */ n_siniestros = rand('NegBin', 1/(1+mu), 1); |
| 11 | OUTPUT; |
| 12 | END; |
| 13 | |
| 14 | RUN; |
| 15 |
| 1 | |
| 2 | PROC CAS; |
| 3 | |
| 4 | SIMPLE.summary / TABLE={name='cartera_seguros', caslib='casuser'}; |
| 5 | |
| 6 | RUN; |
| 7 |
| 1 | PROC CAS; |
| 2 | countreg.countregFitModel / |
| 3 | TABLE={name='cartera_seguros', caslib='casuser'}, |
| 4 | model={depVars={{name='n_siniestros'}}, |
| 5 | effects={{vars={'edad', 'valor_auto', 'zona_riesgo'}}}, |
| 6 | modeloptions={modeltype='NEGBIN2'}}, |
| 7 | outputTables={names={parameterEstimates='est_params_seguros'}}; |
| 8 | RUN; |
La acción debe ejecutarse sin errores, produciendo una tabla 'est_params_seguros'. Los coeficientes para 'zona_riesgo' deben ser positivos y significativos, reflejando el mayor riesgo simulado.