Publicado el :
Estadística CREATION_INTERNE

Regresión de Poisson con PROC MCMC

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script ilustra cómo realizar una regresión de Poisson en un marco bayesiano. Comienza creando un conjunto de datos 'insure' que contiene cuentas de seguro. Luego, utiliza PROC TRANSREG para crear una matriz de diseño para las variables categóricas. El análisis principal se realiza con PROC MCMC para estimar los parámetros del modelo. Finalmente, se lleva a cabo una validación comparativa utilizando PROC GENMOD con la instrucción BAYES.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan directamente en el script a través de un paso DATA que utiliza 'datalines'.

1 Bloque de código
DATA STEP Data
Explicación :
Creación del conjunto de datos 'insure' que contiene información sobre el número de pólizas (n), el número de siniestros (c), el tipo de coche (car) y la edad. Se calcula una variable de desplazamiento (offset) logarítmico 'ln'.
¡Copiado!
1title 'Poisson Regression';
2DATA insure;
3 INPUT n c car $ age;
4 ln = log(n);
5 DATALINES;
6 500 42 small 0
7 1200 37 medium 0
8 100 1 large 0
9 400 101 small 1
10 500 73 medium 1
11 300 14 large 1
12;
2 Bloque de código
PROC TRANSREG Data
Explicación :
Uso de PROC TRANSREG para generar las variables indicadoras (dummy variables) para la variable categórica 'car', preparando así los datos para PROC MCMC.
¡Copiado!
1PROC TRANSREG DATA=insure design;
2 model class(car / zero=last);
3 id n c age ln;
4 OUTPUT out=input_insure(drop=_: Int:);
5 RUN;
3 Bloque de código
PROC MCMC
Explicación :
Ejecución del análisis bayesiano con PROC MCMC. El modelo especifica una distribución de Poisson para la variable respuesta 'c', con una función de enlace log y un offset 'ln'. Los priors se definen como normales.
¡Copiado!
1PROC MCMC DATA=input_insure outpost=insureout nmc=5000 propcov=quanew
2 maxtune=0 seed=7;
3 ods select PostSumInt;
4 array DATA[4] 1 &_trgind age;
5 array beta[4] alpha beta_car1 beta_car2 beta_age;
6 parms alpha beta:;
7 prior alpha beta: ~ normal(0, prec = 1e-6);
8 call mult(DATA, beta, mu);
9 model c ~ poisson(exp(mu+ln));
10RUN;
4 Bloque de código
PROC GENMOD
Explicación :
Uso de PROC GENMOD con la instrucción BAYES para ajustar el mismo modelo de regresión de Poisson. Esto sirve como punto de comparación para validar los resultados obtenidos con PROC MCMC.
¡Copiado!
1PROC GENMOD DATA=insure;
2 ods select PostSummaries PostIntervals;
3 class car age(descending);
4 model c = car age / dist=poisson link=log offset=ln;
5 bayes seed=17 nmc=5000 coeffprior=normal;
6RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.