Ce script illustre l'utilisation de la procédure MCMC pour l'analyse d'un modèle hiérarchique. Les données, créées en interne, suivent l'évolution du poids de 30 rats sur cinq périodes. Le modèle suppose que la croissance du poids pour chaque rat suit une droite (pente et ordonnée à l'origine), mais que ces paramètres (effets aléatoires) sont propres à chaque rat et proviennent d'une distribution normale multivariée commune. La procédure estime les paramètres de cette distribution de groupe ainsi que la variance résiduelle du modèle.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données 'rats' est généré via une instruction DATALINES. Le code transforme les données d'un format large (plusieurs mesures par ligne) en un format long (une mesure par ligne avec des variables 'subject' et 'age' correspondantes).
1 Bloc de code
DATA STEP Data
Explication : Ce bloc de données lit les poids des rats à partir des 'datalines'. Il utilise un tableau (ARRAY) pour mapper les jours de mesure et des calculs sur la variable automatique `_n_` pour assigner un identifiant de sujet (`subject`) et l'âge (`age`) à chaque mesure. L'instruction 'input weight @@;' est utilisée pour lire plusieurs observations de poids à partir d'une seule ligne de données, créant ainsi un jeu de données au format long.
Explication : Ce bloc applique la procédure MCMC pour réaliser une analyse bayésienne. Il définit les paramètres du modèle, incluant les hyperparamètres (theta_c, Sig_c, var_y) et leurs distributions a priori (PRIOR). L'instruction RANDOM spécifie que les paramètres alpha et beta (regroupés dans le tableau 'theta') sont des effets aléatoires par sujet, suivant une distribution normale multivariée. L'instruction MODEL définit le modèle de vraisemblance pour le poids ('weight'). La procédure génère 10000 échantillons de la distribution a posteriori des paramètres, qui sont stockés dans la table 'postout'.
random theta ~ mvn(theta_c, Sig_c) subject=subject
17
monitor=(alpha_9 beta_9 alpha_25 beta_25);
18
mu = alpha + beta * age;
19
model weight ~ normal(mu, var=var_y);
20
RUN;
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
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.