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.
title 'Nonlinear Poisson Regression Random-Effects Model';
2
DATA 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
594.3201115.7202562.8801
8
14125.760135.24021931.4401
9
11.048211.048242.0962
10
2210.4802
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!
ods graphics on;
proc mcmc data=pump outpost=postout seed=248601 nmc=10000
plots=trace stats=none diag=none;
ods select tracepanel;
array u[2] alpha beta;
array mu[2] (0 0);
parms s2;
prior s2 ~ igamma(0.01, scale=0.01);
random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
random e ~ normal(0, var=s2) subject=pump monitor=(random(1));
w = alpha + beta * logtstd;
lambda = exp(w+e);
model y ~ poisson(lambda);
run;
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);
14
RUN;
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!
proc mcmc data=pump outpost=postout_c seed=248601 nmc=10000
plots=trace diag=none;
ods select tracepanel postsumint;
array u[2] alpha beta;
array mu[2] (0 0);
parms s2 1;
prior s2 ~ igamma(0.01, scale=0.01);
random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
w = alpha + beta * logtstd;
random llambda ~ normal(w, var = s2) subject=pump monitor=(random(1));
lambda = exp(llambda);
model y ~ poisson(lambda);
run;
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);
13
RUN;
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.
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
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.