Publicado el :
Estadística CREATION_INTERNE

Ejemplo de regresión de Poisson con inflación de ceros con PROC FMM

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script es un ejemplo de uso del procedimiento FMM (Finite Mixture Models). Demuestra cómo modelar datos de conteo ('count') que tienen más ceros de los que predeciría un modelo de Poisson estándar. El script comienza creando un conjunto de datos, luego aplica progresivamente modelos más complejos: un modelo de Poisson básico, un modelo de mezcla de dos componentes (Poisson y una constante para los ceros excedentes), y finalmente una versión bayesiana de este modelo de mezcla. Las opciones ODS se utilizan para generar gráficos de diagnóstico para el análisis bayesiano.
Análisis de datos

Type : CREATION_INTERNE


Los datos se crean directamente en el script a través de un paso DATA y la instrucción DATALINES. La tabla 'catch' contiene el género, la edad y un número ('count'). El operador ' @@' se utiliza para leer múltiples observaciones de una sola línea de datos.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque de código crea la tabla de trabajo 'catch'. Lee las variables 'gender', 'age' y 'count' a partir de datos integrados directamente en el programa a través de la instrucción 'datalines'. El indicador ' @@' en la instrucción 'input' permite leer múltiples observaciones de la misma línea de datos brutos.
¡Copiado!
1DATA catch;
2 INPUT gender $ age count @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
3 DATALINES;
4 F 54 18 M 37 0 F 48 12 M 27 0
5 M 55 0 M 32 0 F 49 12 F 45 11
6 M 39 0 F 34 1 F 50 0 M 52 4
7 M 33 0 M 32 0 F 23 1 F 17 0
8 F 44 5 M 44 0 F 26 0 F 30 0
9 F 38 0 F 38 0 F 52 18 M 23 1
10 F 23 0 M 32 0 F 33 3 M 26 0
11 F 46 8 M 45 5 M 51 10 F 48 5
12 F 31 2 F 25 1 M 22 0 M 41 0
13 M 19 0 M 23 0 M 31 1 M 17 0
14 F 21 0 F 44 7 M 28 0 M 47 3
15 M 23 0 F 29 3 F 24 0 M 34 1
16 F 19 0 F 35 2 M 39 0 M 43 6
17;
2 Bloque de código
PROC FMM
Explicación :
Este bloque ejecuta un primer modelo de regresión de Poisson simple. La variable de respuesta 'count' se modela en función de la interacción entre 'gender' y 'age'. El procedimiento FMM se utiliza aquí con un solo componente, lo que equivale a un Modelo Lineal Generalizado (GLM) estándar con una distribución de Poisson.
¡Copiado!
1PROC FMM DATA=catch;
2 class gender;
3 model count = gender*age / dist=Poisson;
4RUN;
3 Bloque de código
PROC FMM
Explicación :
Este bloque define un modelo de mezcla de dos componentes, típico de una regresión con 'inflación de ceros'. La primera instrucción 'model' especifica el componente de Poisson. La segunda instrucción 'model +' añade un segundo componente, aquí una distribución 'Constant', que modela la probabilidad de tener un cero excedente (un cero que no proviene del proceso de Poisson).
¡Copiado!
1PROC FMM DATA=catch;
2 class gender;
3 model count = gender*age / dist=Poisson ;
4 model + / dist=Constant;
5RUN;
4 Bloque de código
PROC FMM
Explicación :
Este bloque ejecuta el mismo modelo con 'inflación de ceros' que el anterior, pero utilizando un enfoque de inferencia bayesiana, activado por la instrucción 'BAYES'. Se define una semilla ('seed') para asegurar la reproducibilidad de los resultados. La opción 'performance' se utiliza para sugerir el uso de dos procesadores para acelerar los cálculos.
¡Copiado!
1PROC FMM DATA=catch seed=12345;
2 class gender;
3 model count = gender*age / dist=Poisson;
4 model + / dist=constant;
5 performance cpucount=2;
6 bayes;
7RUN;
5 Bloque de código
PROC FMM
Explicación :
Este último bloque re-ejecuta el análisis bayesiano, pero activando la salida gráfica ODS ('ods graphics on'). La instrucción 'ods select TADPanel' restringe la salida gráfica a un panel específico que contiene los gráficos de diagnóstico de la convergencia de las cadenas MCMC (Trace, Autocorrelation, Density), que son esenciales para validar los resultados de un análisis bayesiano.
¡Copiado!
1ods graphics on;
2ods select TADPanel;
3PROC FMM DATA=catch seed=12345;
4 class gender;
5 model count = gender*age / dist=Poisson;
6 model + / dist=constant;
7 performance cpucount=2;
8 bayes;
9RUN;
10ods graphics off;
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.
Información de copyright : S A S S A M P L E L I B R A R Y