Publié le :
Statistique CREATION_INTERNE

Exemple d'utilisation de PROC FMM pour les mélanges de distributions binomiales

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script démontre les capacités de la procédure FMM. Il commence par créer un jeu de données 'yeast' en mémoire. Ensuite, il exécute une première analyse FMM pour ajuster un modèle de mélange à 2 composantes. Une deuxième exécution génère un jeu de données en sortie avec les probabilités a posteriori, qui est ensuite traité pour calculer les effectifs prédits par composante. Enfin, le script réalise une analyse bayésienne du même modèle, en activant les graphiques ODS pour la visualisation et en spécifiant l'utilisation de 2 cœurs CPU pour la performance.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données 'yeast' est créé directement dans le script via une étape DATA et une instruction 'datalines'. Il contient des comptages de cellules et leur fréquence observée.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc crée le jeu de données 'yeast'. Il contient les variables 'count' (nombre de succès), 'f' (fréquence de ce comptage) et 'n' (nombre d'essais, fixé à 5), qui seront utilisées dans l'analyse de la distribution binomiale.
Copié !
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 Bloc de code
PROC FMM
Explication :
Première exécution de la procédure FMM. Elle ajuste un modèle de mélange fini (finite mixture model) avec k=2 composantes binomiales aux données. La variable 'count' est la réponse, 'n' le nombre d'essais, et 'f' est la variable de fréquence.
Copié !
1PROC FMM DATA=yeast;
2 model count/n = / k=2;
3 freq f;
4RUN;
3 Bloc de code
PROC FMM Data
Explication :
Deuxième exécution de PROC FMM. En plus de l'analyse, cette étape génère un jeu de données de sortie nommé 'fmmout'. Ce jeu contient les prédictions pour chaque composante et les probabilités a posteriori d'appartenance à chaque composante.
Copié !
1PROC FMM DATA=yeast;
2 model count/n = / k=2;
3 freq f;
4 OUTPUT out=fmmout pred(components) posterior;
5RUN;
4 Bloc de code
DATA STEP Data
Explication :
Ce bloc de données traite le jeu de sortie 'fmmout'. Il calcule les effectifs prédits pour chaque composante ('PredCount_1', 'PredCount_2') en multipliant la probabilité a posteriori de chaque observation par sa fréquence ('f').
Copié !
1DATA fmmout;
2 SET fmmout;
3 PredCount_1 = post_1 * f;
4 PredCount_2 = post_2 * f;
5RUN;
5 Bloc de code
PROC PRINT
Explication :
Affiche le contenu du jeu de données 'fmmout' enrichi, permettant d'inspecter les probabilités a posteriori et les effectifs prédits pour chaque observation et chaque composante.
Copié !
1PROC PRINT DATA=fmmout;
2RUN;
6 Bloc de code
PROC FMM
Explication :
Ce bloc effectue une analyse bayésienne du modèle de mélange à 2 composantes via l'instruction 'BAYES'. Les graphiques ODS sont activés pour visualiser les résultats (comme les distributions a posteriori). La déclaration 'PERFORMANCE' suggère d'utiliser deux threads pour les calculs.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.