Este script ilustra el uso del procedimiento NLMIXED para ajustar un modelo Poisson-Normal a datos de conteo. Comienza creando un conjunto de datos interno llamado 'pump' que contiene las variables 'y', 't' y 'group', así como las variables derivadas 'pump' y 'logtstd'. Luego, se invoca el procedimiento NLMIXED con este conjunto de datos para estimar los parámetros de un modelo no lineal de efectos mixtos. El modelo incluye parámetros fijos (beta1, beta2, alpha1, alpha2) y un efecto aleatorio (e) distribuido normalmente, con una varianza modelada por logsig. También se solicitan estimaciones de contrastes.
Análisis de datos
Type : CREATION_INTERNE
El conjunto de datos 'pump' se crea directamente en el script SAS utilizando la instrucción DATALINES, lo que significa que los datos están incrustados y se generan internamente para la ejecución del script.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP crea el conjunto de datos 'pump'. Lee las variables 'y', 't' y 'group' de los datos incrustados (datalines). También crea una variable 'pump' que es un identificador único para cada observación (_n_), y 'logtstd' que es la transformación logarítmica estandarizada de 't'.
Explicación : Este bloque utiliza PROC NLMIXED para ajustar un modelo no lineal de efectos mixtos. Declara los parámetros del modelo (logsig, beta1, beta2, alpha1, alpha2) con sus valores iniciales. La variable 'eta' se define de manera diferente según el valor de 'group'. 'lambda' es la transformación exponencial de 'eta'. El modelo asume que 'y' sigue una distribución de Poisson con el parámetro 'lambda'. Se incluye un efecto aleatorio 'e', siguiendo una distribución normal con una varianza modelada por 'exp(2*logsig)', y se especifica por 'subject=pump'. Finalmente, se calculan estimaciones de contrastes entre los parámetros 'alpha' y 'beta' de los dos grupos.
¡Copiado!
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;
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; NAME: nlmex4; TITLE: Documentation Example 4 for PROC NLMIXED; PRODUCT: STAT
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.