Ce script illustre l'utilisation de la procédure NLMIXED pour ajuster un modèle Poisson-Normal à des données de comptage. Il commence par créer un jeu de données interne appelé 'pump' qui contient des variables 'y', 't' et 'group', ainsi que des variables dérivées 'pump' et 'logtstd'. Ensuite, la procédure NLMIXED est appelée avec ce jeu de données pour estimer les paramètres d'un modèle non linéaire à effets mixtes. Le modèle inclut des paramètres fixes (beta1, beta2, alpha1, alpha2) et un effet aléatoire (e) distribué normalement, avec une variance modélisée par logsig. Des estimations de contrastes sont également demandées.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données 'pump' est créé directement dans le script SAS à l'aide de l'instruction DATALINES, ce qui signifie que les données sont embarquées et générées en interne pour l'exécution du script.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc DATA STEP crée le jeu de données 'pump'. Il lit les variables 'y', 't' et 'group' à partir des données embarquées (datalines). Il crée également une variable 'pump' qui est un identifiant unique pour chaque observation (_n_), et 'logtstd' qui est la transformation logarithmique standardisée de 't'.
Explication : Ce bloc utilise PROC NLMIXED pour ajuster un modèle non linéaire à effets mixtes. Il déclare les paramètres du modèle (logsig, beta1, beta2, alpha1, alpha2) avec leurs valeurs initiales. La variable 'eta' est définie différemment selon la valeur de 'group'. 'lambda' est la transformation exponentielle de 'eta'. Le modèle suppose que 'y' suit une distribution de Poisson avec le paramètre 'lambda'. Un effet aléatoire 'e' est inclus, suivant une distribution normale avec une variance modélisée par 'exp(2*logsig)', et est spécifié par 'subject=pump'. Enfin, des estimations de contrastes entre les paramètres 'alpha' et 'beta' des deux groupes sont calculées.
Copié !
proc nlmixed data=pump;
parms logsig 0 beta1 1 beta2 1 alpha1 1 alpha2 1;
if (group = 1) then eta = alpha1 + beta1*logtstd + e;
else eta = alpha2 + beta2*logtstd + e;
lambda = exp(eta);
model y ~ poisson(lambda);
random e ~ normal(0,exp(2*logsig)) subject=pump;
estimate 'alpha1-alpha2' alpha1-alpha2;
estimate 'beta1-beta2' beta1-beta2;
run;
1
PROC NLMIXEDDATA=pump;
2
parms logsig 0 beta1 1 beta2 1 alpha1 1 alpha2 1;
3
IF (group = 1) THEN eta = alpha1 + beta1*logtstd + e;
4
ELSE eta = alpha2 + beta2*logtstd + e;
5
lambda = exp(eta);
6
model y ~ poisson(lambda);
7
random e ~ normal(0,exp(2*logsig)) subject=pump;
8
estimate 'alpha1-alpha2' alpha1-alpha2;
9
estimate 'beta1-beta2' beta1-beta2;
10
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; NAME: nlmex4; TITLE: Documentation Example 4 for PROC NLMIXED; PRODUCT: STAT
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.