Publicado el :
Estadística CREACIÓN_INTERNA

Análisis de fiabilidad de bombas mediante modelos mixtos

Este código también está disponible en: Deutsch English Français
En espera de validación
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.
¡Copiado!
1DATA pump;
2 pump = _n_;
3 INPUT y t group;
4 logtstd = log(t) - 2.4564900;
5 DATALINES;
6 5 94.320 1
7 1 15.720 2
8 5 62.880 1
9 14 125.760 1
10 3 5.240 2
11 19 31.440 1
12 1 1.048 2
13 1 1.048 2
14 4 2.096 2
15 22 10.480 2
16 ;
2 Bloque de código
PROC GLIMMIX
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!
1ods html;
2title "Pump Reliability at a Pressurized Water Reactor Nuclear Power Plant";
3PROC GLIMMIX DATA=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;
10RUN;
11ods 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!
1PROC NLMIXED DATA=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);
11RUN;
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)