El script comienza creando un conjunto de datos 'pump' que contiene información sobre la fiabilidad de las bombas (número de fallos 'y', tiempo de funcionamiento 't' y grupo 'group'). A continuación, se utilizan dos procedimientos estadísticos: 'PROC GLIMMIX' para ajustar un modelo lineal mixto generalizado con una distribución de Poisson y una función de enlace logarítmica, incluyendo un efecto aleatorio por bomba y estimando las diferencias en los interceptos y las pendientes entre los grupos. El segundo procedimiento, 'PROC NLMIXED', ajusta un modelo mixto no lineal para los mismos datos, definiendo un predictor lineal condicional 'eta' y un parámetro de tasa 'lambda' para una distribución de Poisson, con un efecto aleatorio distribuido normalmente y estimaciones para las diferencias entre los parámetros de grupo y la varianza del efecto aleatorio. El análisis completo se genera en formato HTML gracias a ODS.
Análisis de datos
Type : CREACIÓN_INTERNA
Los datos del conjunto de datos 'pump' se crean y se integran directamente en el script a través de una instrucción DATALINES.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP crea el conjunto de datos 'pump'. 'pump' es un identificador único basado en el número de observación. 'y' representa el número de fallos, 't' el tiempo de funcionamiento y 'group' es una variable categórica. 'logtstd' es una variable transformada (logaritmo de 't' menos una constante), potencialmente estandarizada o centrada. Los datos se proporcionan directamente en el script a través de la instrucción DATALINES.
Explicación : Este bloque utiliza 'PROC GLIMMIX' para ajustar un modelo lineal mixto generalizado a los datos 'pump'. Se especifica el método de integración por cuadratura ('method=quad'). La variable 'group' se declara como variable de clasificación. El modelo especifica 'y' como variable de respuesta, 'group' y la interacción 'logtstd*group' como predictores. La opción 'noint' suprime la intercepción automática, 'dist=poisson' indica una distribución de Poisson para la respuesta, y 'link=log' utiliza una función de enlace logarítmica. 'ddfm=residual' especifica el método de cálculo de los grados de libertad. Se incluye un efecto aleatorio ('random int') para cada 'pump'. Finalmente, se realizan estimaciones para las diferencias entre los interceptos y las pendientes de los dos grupos. Los comandos ODS abren y cierran la salida HTML.
¡Copiado!
ods html;
title "Pump Reliability at a Pressurized Water Reactor Nuclear Power Plant";
proc glimmix data=pump method=quad;
class group;
model y = group logtstd*group / noint dist=poisson link=log
dfml=residual;
random int / subject=pump;
estimate "Difference Y-intercepts" group 1 -1;
estimate "Difference Slopes" logtstd*group 1 -1;
run;
ods html close;
1
ods html;
2
title "Pump Reliability at a Pressurized Water Reactor Nuclear Power Plant";
3
PROC GLIMMIXDATA=pump method=quad;
4
class group;
5
model y = group logtstd*group / noint dist=poisson link=log
6
dfml=residual;
7
random int / subject=pump;
8
estimate "Difference Y-intercepts" group 1 -1;
9
estimate "Difference Slopes" logtstd*group 1 -1;
10
RUN;
11
ods html close;
3 Bloque de código
PROC NLMIXED
Explicación : Este bloque utiliza 'PROC NLMIXED' para ajustar un modelo mixto no lineal. Los parámetros iniciales ('parms') se definen para 'logsig', 'beta1', 'beta2', 'alpha1' y 'alpha2'. La variable 'eta' se define condicionalmente según el valor de 'group', integrando parámetros fijos ('alpha1', 'alpha2', 'beta1', 'beta2') y un efecto aleatorio 'e'. 'lambda' se calcula como la exponencial de 'eta'. El modelo especifica que 'y' sigue una distribución de Poisson con el parámetro 'lambda'. El efecto aleatorio 'e' se supone que sigue una distribución normal con una media de 0 y una varianza de 'exp(2*logsig)', con 'pump' como sujeto para los efectos aleatorios. Se proporcionan estimaciones para las diferencias entre los parámetros 'alpha' y 'beta' de los grupos, así como para la varianza ('Sigma**2') del efecto aleatorio.
¡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;
estimate 'Sigma**2' exp(2*logsig);
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
estimate 'Sigma**2' exp(2*logsig);
11
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 : Gaver and O’Muircheartaigh (1987), Draper (1996)
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.