Publié le :
Statistique CREATION_INTERNE

Exemple 4 pour PROC PLM - Modèle Logistique Bayésien

En attente de validation
Le script commence par créer deux tables SAS© : 'cow', qui contient des données sur la réponse de vaches à des chocs électriques, et 'prior', qui définit les a priori pour l'analyse bayésienne. Ensuite, la procédure GENMOD est utilisée pour ajuster un modèle logistique bayésien. Le modèle analyse la probabilité de réponse ('response'/'trial') en fonction du courant électrique ('current') et de l'expérience ('experiment'). Les résultats du modèle sont sauvegardés dans un 'item store' nommé 'cowgmd'. Finalement, la procédure PLM utilise cet 'item store' pour effectuer des estimations et des comparaisons sur les différences d'effets entre les expériences à différents niveaux de courant, d'abord sous forme de tableau, puis sous forme de graphique (boxplot).
Analyse des données

Type : CREATION_INTERNE


Les deux tables de données, 'cow' et 'prior', sont créées directement dans le script à l'aide d'instructions DATA STEP et de cartes de données (datalines).

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc crée la table de données 'cow' qui contient les variables 'current', 'response', 'trial' et 'experiment' utilisées pour l'analyse. Les données sont intégrées directement via l'instruction 'datalines'.
Copié !
1DATA cow;
2 INPUT current response trial experiment;
3 DATALINES;
40 0 35 1
50 0 35 2
61 6 35 1
71 3 35 2
82 13 35 1
92 8 35 2
103 26 35 1
113 21 35 2
124 33 35 1
134 27 35 2
145 34 35 1
155 29 35 2
16;
17 
2 Bloc de code
DATA STEP Data
Explication :
Ce bloc crée la table 'prior' qui spécifie les hyperparamètres (moyenne et variance) de la distribution a priori Normale pour les coefficients du modèle bayésien.
Copié !
1DATA prior;
2 INPUT _type_$ current;
3 DATALINES;
4mean 100
5var 50
6;
7 
3 Bloc de code
PROC GENMOD
Explication :
Cette procédure ajuste un modèle de régression logistique (dist=binomial) avec une approche bayésienne. Elle modélise la proportion de réponses ('response'/'trial') en fonction du courant ('current'), de l'expérience ('experiment') et de leur interaction. L'option 'BAYES' active l'inférence bayésienne en utilisant les a priori normaux spécifiés dans la table 'prior'. Le résultat du modèle est stocké dans un item store nommé 'cowgmd' pour une utilisation ultérieure.
Copié !
1PROC GENMOD DATA=cow;
2 class experiment;
3 bayes coeffprior=normal(INPUT=prior) seed=1;
4 model response/trial = current|experiment / dist=binomial;
5 store cowgmd;
6 title 'Bayesian Logistic Model on Cow';
7RUN;
4 Bloc de code
PROC PLM
Explication :
La procédure PLM (Post-fitting analysis) restaure le modèle ajusté par PROC GENMOD. L'instruction 'ESTIMATE' est utilisée pour calculer les différences de l'effet de 'experiment' à chaque niveau de 'current' (de 0 à 5). L'option 'EXP' exponentie les estimations (pour obtenir des odds ratios) et 'CL' demande les limites de confiance.
Copié !
1PROC PLM restore=cowgmd;
2 estimate
3 'Diff at current 0' experiment 1 -1 current*experiment [1, 0 1] [-1, 0 2],
4 'Diff at current 1' experiment 1 -1 current*experiment [1, 1 1] [-1, 1 2],
5 'Diff at current 2' experiment 1 -1 current*experiment [1, 2 1] [-1, 2 2],
6 'Diff at current 3' experiment 1 -1 current*experiment [1, 3 1] [-1, 3 2],
7 'Diff at current 4' experiment 1 -1 current*experiment [1, 4 1] [-1, 4 2],
8 'Diff at current 5' experiment 1 -1 current*experiment [1, 5 1] [-1, 5 2]
9 / exp cl;
10RUN;
5 Bloc de code
PROC PLM
Explication :
Ce bloc ré-exécute les mêmes estimations que précédemment, mais active la sortie graphique avec 'ODS GRAPHICS ON'. L'option 'plots=boxplot(orient=horizontal)' dans l'instruction 'ESTIMATE' génère un diagramme en boîtes (boxplot) horizontal pour visualiser les estimations et leurs intervalles de confiance, facilitant la comparaison des différences.
Copié !
1ods graphics on;
2PROC PLM restore=cowgmd;
3 estimate
4 'Diff at current 0' experiment 1 -1 current*experiment [1, 0 1] [-1, 0 2],
5 'Diff at current 1' experiment 1 -1 current*experiment [1, 1 1] [-1, 1 2],
6 'Diff at current 2' experiment 1 -1 current*experiment [1, 2 1] [-1, 2 2],
7 'Diff at current 3' experiment 1 -1 current*experiment [1, 3 1] [-1, 3 2],
8 'Diff at current 4' experiment 1 -1 current*experiment [1, 4 1] [-1, 4 2],
9 'Diff at current 5' experiment 1 -1 current*experiment [1, 5 1] [-1, 5 2]
10 / plots=boxplot(orient=horizontal);
11RUN;
12ods 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.
Informations de Copyright : S A S S A M P L E L I B R A R Y