Publicado el :
Général CREATION_INTERNE

Sans titre

Este código también está disponible en: Deutsch English Français
En espera de validación
El script inicializa variables macro para controlar el tamaño de los datos simulados. Luego genera un conjunto de datos llamado 'nested' con efectos aleatorios anidados (A, B(A)) y una variable de respuesta 'resp' basada en un modelo lineal con errores distribuidos normalmente. Finalmente, utiliza PROC NLMIXED para ajustar un modelo lineal mixto a estos datos, especificando límites para las varianzas de los efectos aleatorios y la estructura de anidación.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos 'nested' se crea y simula completamente dentro del script SAS utilizando funciones de generación de números aleatorios.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea un conjunto de datos 'nested' simulando observaciones. Tres bucles anidados generan niveles para las variables 'A', 'B' (anidada en 'A') y 'rep'. Errores aleatorios distribuidos normalmente (err1, err2, err3) se generan usando la función RANNOR() para simular una estructura de efectos aleatorios. La variable 'resp' se calcula como la suma de una constante y estos errores aleatorios.
¡Copiado!
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 Bloque de código
PROC NLMIXED
Explicación :
Este bloque utiliza PROC NLMIXED para ajustar un modelo lineal mixto al conjunto de datos 'nested'. Los límites se definen para las varianzas de los efectos aleatorios (vara, varb_a) para que sean no negativas. La parte fija del modelo se define por 'mean', y la variable de respuesta 'resp' se modela según una distribución normal. Se especifican dos efectos aleatorios: 'aeffect' para el sujeto 'A' y 'beffect' para el sujeto 'B' anidado en 'A' (B(A)), cada uno con una distribución normal de media 0 y varianzas vara y varb_a respectivamente.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : S A S S A M P L E L I B R A R Y