Publicado el :
Estadística CREACION_INTERNA

Modelo de Efectos Aleatorios Normales Multivariados

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script ilustra el uso del procedimiento MCMC para el análisis de un modelo jerárquico. Los datos, creados internamente, siguen la evolución del peso de 30 ratas durante cinco períodos. El modelo supone que el crecimiento del peso para cada rata sigue una línea recta (pendiente e intercepto), pero que estos parámetros (efectos aleatorios) son propios de cada rata y provienen de una distribución normal multivariada común. El procedimiento estima los parámetros de esta distribución de grupo, así como la varianza residual del modelo.
Análisis de datos

Type : CREACION_INTERNA


El conjunto de datos 'rats' se genera mediante una instrucción DATALINES. El código transforma los datos de un formato ancho (varias medidas por línea) a un formato largo (una medida por línea con variables 'subject' y 'age' correspondientes).

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque de datos lee los pesos de las ratas desde 'datalines'. Utiliza un array (ARRAY) para mapear los días de medición y cálculos sobre la variable automática `_n_` para asignar un identificador de sujeto (`subject`) y la edad (`age`) a cada medición. La instrucción 'input weight @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;' se utiliza para leer múltiples observaciones de peso desde una sola línea de datos, creando así un conjunto de datos en formato largo.
¡Copiado!
1title 'Multivariate Normal Random-Effects Model';
2DATA rats;
3 array days[5] (8 15 22 29 36);
4 INPUT weight @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
5 subject = ceil(_n_/5);
6 index = mod(_n_-1, 5) + 1;
7 age = days[index];
8 drop index days:;
9 DATALINES;
10151 199 246 283 320 145 199 249 293 354
11147 214 263 312 328 155 200 237 272 297
12135 188 230 280 323 159 210 252 298 331
13141 189 231 275 305 159 201 248 297 338
14177 236 285 350 376 134 182 220 260 296
15160 208 261 313 352 143 188 220 273 314
16154 200 244 289 325 171 221 270 326 358
17163 216 242 281 312 160 207 248 288 324
18142 187 234 280 316 156 203 243 283 317
19157 212 259 307 336 152 203 246 286 321
20154 205 253 298 334 139 190 225 267 302
21146 191 229 272 302 157 211 250 285 323
22132 185 237 286 331 160 207 257 303 345
23169 216 261 295 333 157 205 248 289 316
24137 180 219 258 291 153 200 244 286 324
25;
26RUN;
2 Bloque de código
PROC MCMC
Explicación :
Este bloque aplica el procedimiento MCMC para realizar un análisis bayesiano. Define los parámetros del modelo, incluyendo los hiperparámetros (theta_c, Sig_c, var_y) y sus distribuciones a priori (PRIOR). La instrucción RANDOM especifica que los parámetros alfa y beta (agrupados en el array 'theta') son efectos aleatorios por sujeto, siguiendo una distribución normal multivariada. La instrucción MODEL define el modelo de verosimilitud para el peso ('weight'). El procedimiento genera 10000 muestras de la distribución a posteriori de los parámetros, que se almacenan en la tabla 'postout'.
¡Copiado!
1PROC MCMC DATA=rats nmc=10000 outpost=postout
2 seed=17 init=random;
3 ods select Parameters REParameters PostSumInt;
4 array theta[2] alpha beta;
5 array theta_c[2];
6 array Sig_c[2,2];
7 array mu0[2] (0 0);
8 array Sig0[2,2] (1000 0 0 1000);
9 array S[2,2] (0.02 0 0 20);
10 
11 parms theta_c Sig_c {121 0 0 0.26} var_y;
12 prior theta_c ~ mvn(mu0, Sig0);
13 prior Sig_c ~ iwish(2, S);
14 prior var_y ~ igamma(0.01, scale=0.01);
15 
16 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);
20RUN;
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