Publicado el :
Estadística CREATION_INTERNE

Modelo de Poisson no lineal con efectos aleatorios (MCMCEX8)

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script utiliza el procedimiento MCMC para realizar un análisis bayesiano de datos de fallas de bombas. Compara dos parametrizaciones del modelo (centrado y no centrado) para estimar los hiperparámetros y los efectos aleatorios. El código genera los datos internamente y utiliza ODS Graphics para los diagnósticos de traza.
Análisis de datos

Type : CREATION_INTERNE


Los datos 'pump' se generan directamente en el script a través de un Data Step utilizando DATALINES.

1 Bloque de código
DATA STEP Data
Explicación :
Creación del conjunto de datos 'pump' con las variables y, t y group. Nota: El código contiene un artefacto extraño (@code_sas_json...) en la instrucción INPUT que parece ser un error de inserción, pero los datos están presentes en forma de datalines.
¡Copiado!
1title 'Nonlinear Poisson Regression Random-Effects Model';
2DATA pump;
3 INPUT y t group @code_sas_json/hsdua2304@gmail.com_SAS_Assignment_2.json;
4 pump = _n_;
5 logtstd = log(t) - 2.4564900;
6 DATALINES;
7 5 94.320 1 1 15.720 2 5 62.880 1
814 125.760 1 3 5.240 2 19 31.440 1
9 1 1.048 2 1 1.048 2 4 2.096 2
1022 10.480 2
11;
2 Bloque de código
PROC MCMC
Explicación :
Primera ejecución de PROC MCMC para ajustar el modelo bayesiano. Utiliza una distribución a priori Inverse-Gamma para la varianza y define efectos aleatorios normales multivariados (u) y univariados (e).
¡Copiado!
1ods graphics on;
2PROC MCMC DATA=pump outpost=postout seed=248601 nmc=10000
3 plots=trace stats=none diag=none;
4 ods select tracepanel;
5 array u[2] alpha beta;
6 array mu[2] (0 0);
7 parms s2;
8 prior s2 ~ igamma(0.01, scale=0.01);
9 random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
10 random e ~ normal(0, var=s2) subject=pump monitor=(random(1));
11 w = alpha + beta * logtstd;
12 lambda = exp(w+e);
13 model y ~ poisson(lambda);
14RUN;
3 Bloque de código
PROC MCMC
Explicación :
Segunda ejecución de PROC MCMC con una parametrización diferente (modelo jerárquico centrado en la variable latente 'llambda') para mejorar la convergencia o la eficiencia del muestreo.
¡Copiado!
1PROC MCMC DATA=pump outpost=postout_c seed=248601 nmc=10000
2 plots=trace diag=none;
3 ods select tracepanel postsumint;
4 array u[2] alpha beta;
5 array mu[2] (0 0);
6 parms s2 1;
7 prior s2 ~ igamma(0.01, scale=0.01);
8 random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
9 w = alpha + beta * logtstd;
10 random llambda ~ normal(w, var = s2) subject=pump monitor=(random(1));
11 lambda = exp(llambda);
12 model y ~ poisson(lambda);
13RUN;
4 Bloque de código
MACRO CALL
Explicación :
Llamada a una macro de utilidad '%CATER' (probablemente para visualizar gráficos de tipo 'caterpillar plots' de los efectos aleatorios) y cierre de los gráficos ODS.
¡Copiado!
1%CATER(
2DATA=postout_c, var=llambda_:);
3ods graphics off;
4 
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 : SAS SAMPLE LIBRARY, PRODUCT: STAT