9 votos

¿Cómo puedo generar una trama similar a la producida por la trama.bugs y la trama.exigencias de un mcmc.la lista?

R parece ser capaz de emitir buen resumen de las parcelas de la bugs y jags objetos generados por las funciones R2WinBUGS::bugs y R2jags:entrecortado.

Sin embargo, estoy usando el rjags paquete. Cuando yo intente trazar los resultados de la función rjags::coda.samples uso de R2WinBUGS::plot.mcmc.list los resultados son gráficos de diagnóstico (parámetro de la densidad, de la cadena de tiempo de la serie, autocorrelación) para cada parámetro.

A continuación es el tipo de trama que me gustaría producir, a partir de Andrew Gelman tutorial de "Ejecución de WinBuugs y OpenBugs de la R". Estos fueron producidos por el uso de la plot.pugs.

El problema es que plot.bugs lleva un bugs objeto como argumento, mientras que plot.mcmc.list toma la salida de la coda.samples.

He aquí un ejemplo (de la coda.samples):

 library(rjags)
 data(LINE)
 LINE$recompile()
 LINE.out <- coda.samples(LINE, c("alpha","beta","sigma"), n.iter=1000)
 plot(LINE.out)

Lo que necesito es

  • una forma de generar una similar, rica en información, una página de resumen de la trama similar a la producida por plot.bugs
  • una función que convierta LINE.out a un objeto o bugs

enter image description here

6voto

Colin Wheeler Puntos 2493

Puesto que no hay respuestas, voy al menos a publicar lo que he conseguido hasta ahora:

El as.bugs.array función en el R2WinBUGS paquete fue creado para este propósito. De acuerdo a la documentación (?as.bugs.array):

La función de conversión de los resultados de la cadena de Markov simulaciones, que no puede ser de BUGS, errores de objeto. Se utiliza principalmente para mostrar los resultados con la trama.bugs.

Por lo tanto, es posible obtener una parcela de LINE.out en tu ejemplo, aunque no de la parcela las variables correctas:

plot(as.bugs.array(sims.array = as.array(LINE.out)))        

Va a tomar un poco más de trabajo para determinar la forma correcta para transformar la LINE.out, y el LINE.samples objeto de example(jags.samples) puede ser un lugar más fácil para empezar.

0voto

pgras Puntos 7202

El siguiente parece que funciona para mí:

require(R2jags)
m <-jags(data=d,inits=i,pars,n.iter=1000,n.chains=3,model.file="foo.txt",DIC=F)
m <- autojags(m)
plot(m)

Aquí está una reproducible ejemplo:

example(jags)
plot(jagsfit)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X