Publicado el :
Statistique CREATION_INTERNE

Ejemplo de uso de PROC FMM para mezclas de distribuciones binomiales

Este código también está disponible en: Deutsch English Français
En espera de validación
El script demuestra las capacidades del procedimiento FMM. Comienza creando un conjunto de datos 'yeast' en memoria. Luego, ejecuta un primer análisis FMM para ajustar un modelo de mezcla de 2 componentes. Una segunda ejecución genera un conjunto de datos de salida con las probabilidades a posteriori, que luego se procesa para calcular los recuentos predichos por componente. Finalmente, el script realiza un análisis bayesiano del mismo modelo, activando los gráficos ODS para la visualización y especificando el uso de 2 núcleos de CPU para el rendimiento.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos 'yeast' se crea directamente en el script a través de un paso DATA y una instrucción 'datalines'. Contiene recuentos de células y su frecuencia observada.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque crea el conjunto de datos 'yeast'. Contiene las variables 'count' (número de éxitos), 'f' (frecuencia de este recuento) y 'n' (número de ensayos, fijado en 5), que se utilizarán en el análisis de la distribución binomial.
¡Copiado!
1DATA yeast;
2 INPUT count f;
3 n = 5;
4 DATALINES;
5 0 213
6 1 128
7 2 37
8 3 18
9 4 3
10 5 1
11;
12RUN;
2 Bloque de código
PROC FMM
Explicación :
Primera ejecución del procedimiento FMM. Ajusta un modelo de mezcla finita (finite mixture model) con k=2 componentes binomiales a los datos. La variable 'count' es la respuesta, 'n' el número de ensayos y 'f' es la variable de frecuencia.
¡Copiado!
1PROC FMM DATA=yeast;
2 model count/n = / k=2;
3 freq f;
4RUN;
3 Bloque de código
PROC FMM Data
Explicación :
Segunda ejecución de PROC FMM. Además del análisis, este paso genera un conjunto de datos de salida llamado 'fmmout'. Este conjunto contiene las predicciones para cada componente y las probabilidades a posteriori de pertenencia a cada componente.
¡Copiado!
1PROC FMM DATA=yeast;
2 model count/n = / k=2;
3 freq f;
4 OUTPUT out=fmmout pred(components) posterior;
5RUN;
4 Bloque de código
DATA STEP Data
Explicación :
Este bloque de datos procesa el conjunto de salida 'fmmout'. Calcula los recuentos predichos para cada componente ('PredCount_1', 'PredCount_2') multiplicando la probabilidad a posteriori de cada observación por su frecuencia ('f').
¡Copiado!
1DATA fmmout;
2 SET fmmout;
3 PredCount_1 = post_1 * f;
4 PredCount_2 = post_2 * f;
5RUN;
5 Bloque de código
PROC PRINT
Explicación :
Muestra el contenido del conjunto de datos 'fmmout' enriquecido, permitiendo inspeccionar las probabilidades a posteriori y los recuentos predichos para cada observación y cada componente.
¡Copiado!
1PROC PRINT DATA=fmmout;
2RUN;
6 Bloque de código
PROC FMM
Explicación :
Este bloque realiza un análisis bayesiano del modelo de mezcla de 2 componentes a través de la instrucción 'BAYES'. Los gráficos ODS se activan para visualizar los resultados (como las distribuciones a posteriori). La declaración 'PERFORMANCE' sugiere usar dos hilos para los cálculos.
¡Copiado!
1ods graphics on;
2PROC FMM DATA=yeast seed=12345;
3 model count/n = / k=2;
4 freq f;
5 performance cpucount=2;
6 bayes;
7RUN;
8ods 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.