Publié le :
Statistique CREATION_INTERNE

Exemple 6 de documentation pour PROC NLMIXED

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script initialise des variables macro pour contrôler la taille des données simulées. Il génère ensuite un jeu de données nommé 'nested' avec des effets aléatoires imbriqués (A, B(A)) et une variable de réponse 'resp' basée sur un modèle linéaire avec des erreurs normalement distribuées. Enfin, il utilise PROC NLMIXED pour ajuster un modèle linéaire mixte à ces données, spécifiant des bornes pour les variances des effets aléatoires et la structure d'imbrication.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données 'nested' est entièrement créé et simulé à l'intérieur du script SAS en utilisant des fonctions de génération de nombres aléatoires.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée un jeu de données 'nested' en simulant des observations. Trois boucles imbriquées génèrent des niveaux pour les variables 'A', 'B' (imbriquée dans 'A') et 'rep'. Des erreurs aléatoires normalement distribuées (err1, err2, err3) sont générées à l'aide de la fonction RANNOR() pour simuler une structure d'effets aléatoires. La variable 'resp' est calculée comme une somme d'une constante et de ces erreurs aléatoires.
Copié !
1%let na = 100;
2%let nb = 5;
3%let nr = 2;
4DATA nested;
5 DO A = 1 to &na;
6 err1 = 3*rannor(339205);
7 DO B = 1 to &nb;
8 err2 = 2*rannor(0);
9 DO rep = 1 to &nr;
10 err3 = 1*rannor(0);
11 resp = 10 + err1 + err2 + err3;
12 OUTPUT;
13 END;
14 END;
15 END;
16RUN;
2 Bloc de code
PROC NLMIXED
Explication :
Ce bloc utilise PROC NLMIXED pour ajuster un modèle linéaire mixte au jeu de données 'nested'. Les bornes sont définies pour les variances des effets aléatoires (vara, varb_a) afin qu'elles soient non négatives. La partie fixe du modèle est définie par 'mean', et la variable de réponse 'resp' est modélisée selon une distribution normale. Deux effets aléatoires sont spécifiés : 'aeffect' pour le sujet 'A' et 'beffect' pour le sujet 'B' imbriqué dans 'A' (B(A)), chacun avec une distribution normale de moyenne 0 et des variances vara et varb_a respectivement.
Copié !
1PROC NLMIXED DATA = nested;
2 bounds vara >=0, varb_a >=0;
3 mean = intercept + aeffect + beffect;
4 model resp ~ normal (mean, s2);
5 random aeffect ~ normal(0,vara) subject = A;
6 random beffect ~ normal(0,varb_a) subject = B(A);
7RUN;
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