¿Cómo generar predicciones con rjags?

12

He usado rjags para ejecutar MCMC en un modelo, especificado en el lenguaje JAGS. ¿Hay una buena manera de extraer ese modelo y realizar predicciones con él (usando las distribuciones posteriores de mis parámetros)? Puedo volver a especificar el modelo en R y conectar los modos de mis parámetros posteriores; Me pregunto si hay una forma menos redundante de hacer esto.

Creo que http://sourceforge.net/p/mcmc-jags/discussion/610037/thread/0ecab41c hace la misma pregunta.

Historiador cuantitativo
fuente
El enlace está roto. ¿Puedes actualizarlo, por favor?
chl
Hecho. Parece que se reorganizó sourceforge
Quantitative Historian
¡Gracias! (No he encontrado el hilo desde que SF cambió sus caminos relativos.)
chl

Respuestas:

8

Por lo general, puedes hacer las predicciones en JAGS. A continuación se muestra un ejemplo de regresión con FEV (algo relacionado con la capacidad pulmonar) como la variable dependiente y el indicador de edad y tabaquismo como predictores.

FEV20s y FEV20ns son los valores predichos de FEV para un fumador de 20 años y un no fumador de 20 años.

model
{
for(i in 1:n){
    FEV[i] ~ dnorm(mu[i],tau)
    mu[i] <- beta[1] + beta[2]*Age[i] + beta[3]*Smoke[i]  + beta[4]*Age[i]*Smoke[i]
}

#priors
beta[1] ~ dnorm(0,0.001)
beta[2] ~ dnorm(0,0.001)
beta[3] ~ dnorm(0,0.001)
beta[4] ~ dnorm(0,0.001)
tau ~ dgamma(0.001,0.001)
sigma<-1/sqrt(tau) 

## Predict the FEV for a 20 year old smoker and for a 20 year old nonsmoker
mu20s <-  beta[1] + (beta[2]+beta[4])*20 + beta[3]
mu20ns <-  beta[1] + beta[2]*20 
FEV20s ~ dnorm(mu20s,tau)
FEV20ns ~ dnorm(mu20ns,tau)
}

Ejemplo de: Ideas Bayesianas y Análisis de Datos

Cañada
fuente
Gracias por el puntero: no había pensado en enviar mis datos de prueba a JAGS, pero eso debería hacerlo.
Historiador cuantitativo
1
¿Hay alguna manera de generar estas predicciones sin tener que reajustar todo el modelo? Si lo hubiera, sería bastante fácil paralelizar masivamente la generación de predicciones, sin embargo, si todo el modelo necesita ser reajustado, esto no es posible.
colin