Este script demuestra varias facetas de PROC HPFMM. Comienza creando una tabla de datos 'catch' que contiene variables demográficas y una variable de conteo 'count'. Luego, aplica progresivamente modelos más complejos: un modelo de Poisson base, un modelo de mezcla de Poisson 'zero-inflated' para tener en cuenta un exceso de ceros, y finalmente un análisis bayesiano de este último modelo. El script también muestra cómo optimizar la ejecución (nthreads) y generar gráficos específicos (ODS Graphics).
Análisis de datos
Type : CREATION_INTERNE
Los datos son generados completamente y contenidos en el script a través de un paso DATA con una instrucción DATALINES.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque crea la tabla 'catch' a partir de datos internos. La instrucción 'input' lee las variables 'gender', 'age' y 'count'. El doble 'at' ( @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json) indica a SAS que lea múltiples observaciones de la misma línea de datos.
¡Copiado!
data catch;
input gender $ age count @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
datalines;
F 54 18 M 37 0 F 48 12 M 27 0
M 55 0 M 32 0 F 49 12 F 45 11
M 39 0 F 34 1 F 50 0 M 52 4
M 33 0 M 32 0 F 23 1 F 17 0
F 44 5 M 44 0 F 26 0 F 30 0
F 38 0 F 38 0 F 52 18 M 23 1
F 23 0 M 32 0 F 33 3 M 26 0
F 46 8 M 45 5 M 51 10 F 48 5
F 31 2 F 25 1 M 22 0 M 41 0
M 19 0 M 23 0 M 31 1 M 17 0
F 21 0 F 44 7 M 28 0 M 47 3
M 23 0 F 29 3 F 24 0 M 34 1
F 19 0 F 35 2 M 39 0 M 43 6
;
1
DATA catch;
2
INPUT gender $ age count @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
3
DATALINES;
4
F 5418 M 37 0 F 4812 M 27 0
5
M 55 0 M 32 0 F 4912 F 4511
6
M 39 0 F 341 F 50 0 M 524
7
M 33 0 M 32 0 F 231 F 17 0
8
F 445 M 44 0 F 26 0 F 30 0
9
F 38 0 F 38 0 F 5218 M 231
10
F 23 0 M 32 0 F 333 M 26 0
11
F 468 M 455 M 5110 F 485
12
F 312 F 251 M 22 0 M 41 0
13
M 19 0 M 23 0 M 311 M 17 0
14
F 21 0 F 447 M 28 0 M 473
15
M 23 0 F 293 F 24 0 M 341
16
F 19 0 F 352 M 39 0 M 436
17
;
2 Bloque de código
PROC HPFMM
Explicación : Este bloque ejecuta un primer modelo de regresión de Poisson simple. La variable 'count' se modela en función de la interacción entre 'gender' y 'age'.
¡Copiado!
proc hpfmm data=catch;
class gender;
model count = gender*age / dist=Poisson;
run;
1
PROC HPFMMDATA=catch;
2
class gender;
3
model count = gender*age / dist=Poisson;
4
RUN;
3 Bloque de código
PROC HPFMM
Explicación : Este bloque ajusta un modelo de mezcla de dos componentes, conocido como modelo de Poisson 'zero-inflated' (ZI). La primera instrucción MODEL especifica el componente de Poisson, y la segunda MODEL con 'dist=Constant' añade un componente que modela el exceso de ceros.
¡Copiado!
proc hpfmm data=catch;
class gender;
model count = gender*age / dist=Poisson ;
model + / dist=Constant;
run;
1
PROC HPFMMDATA=catch;
2
class gender;
3
model count = gender*age / dist=Poisson ;
4
model + / dist=Constant;
5
RUN;
4 Bloque de código
PROC HPFMM
Explicación : Este bloque realiza un análisis bayesiano del modelo de Poisson 'zero-inflated'. La instrucción 'BAYES' solicita la inferencia bayesiana para los parámetros del modelo. 'PERFORMANCE NTHREADS=2' se utiliza para acelerar el cálculo usando dos hilos.
¡Copiado!
proc hpfmm data=catch seed=12345;
class gender;
model count = gender*age / dist=Poisson;
model + / dist=constant;
performance nthreads=2;
bayes;
run;
1
PROC HPFMMDATA=catch seed=12345;
2
class gender;
3
model count = gender*age / dist=Poisson;
4
model + / dist=constant;
5
performance nthreads=2;
6
bayes;
7
RUN;
5 Bloque de código
PROC HPFMM
Explicación : Este último bloque vuelve a ejecutar el análisis bayesiano, pero activando la generación de gráficos a través de 'ODS GRAPHICS ON'. 'ODS SELECT TADPanel' filtra la salida para mostrar solo el panel de gráficos de diagnóstico bayesiano (Trace, Autocorrelation, Density).
¡Copiado!
ods graphics on;
ods select TADPanel;
proc hpfmm data=catch seed=12345;
class gender;
model count = gender*age / dist=Poisson;
model + / dist=constant;
performance nthreads=2;
bayes;
run;
ods graphics off;
1
ods graphics on;
2
ods select TADPanel;
3
PROC HPFMMDATA=catch seed=12345;
4
class gender;
5
model count = gender*age / dist=Poisson;
6
model + / dist=constant;
7
performance nthreads=2;
8
bayes;
9
RUN;
10
ods 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
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.