¿Cómo puedo generar una trama similar a la producida por plot.bugs y plot.jags desde un mcmc.list? [cerrado]

9

R parece ser capaz de generar buenos gráficos de resumen de los objetos bugsy jagsgenerados por las funciones R2WinBUGS :: bugs y R2jags: jags .

Sin embargo, estoy usando el rjagspaquete. Cuando trato de trazar los resultados de la función rjags::coda.samplesusando R2WinBUGS::plot.mcmc.listlos resultados, hay diagramas de diagnóstico (densidad de parámetros, series temporales de cadena, autocorrelación) para cada parámetro.

A continuación se muestra el tipo de trama que me gustaría producir, del tutorial de Andrew Gelman "Ejecutar WinBuugs y OpenBugs desde R" . Estos fueron producidos mediante el uso de plot.pugs.

El problema es que plot.bugstoma un bugsobjeto como argumento, mientras plot.mcmc.listtoma la salida de coda.samples.

Aquí hay un ejemplo (del 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 un diagrama de resumen de una página similar, rico en información, similar al producido por plot.bugs
  • una función que se convertirá LINE.outen un objeto de errores o

ingrese la descripción de la imagen aquí

David LeBauer
fuente

Respuestas:

2

Como no hay respuestas, al menos publicaré lo que he recibido hasta ahora:

La as.bugs.arrayfunción en el R2WinBUGSpaquete fue creada para este propósito. De acuerdo con la documentación ( ?as.bugs.array):

Función que convierte resultados de simulaciones de cadena de Markov, que podrían no ser de BUGS, a objetos de errores Se usa principalmente para mostrar resultados con plot.bugs.

Por lo tanto, es posible obtener una gráfica de LINE.outen su ejemplo, aunque no traza las variables correctas:

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

Tomará un poco más de trabajo determinar la forma correcta de transformar el LINE.out, y el LINE.samplesobjeto example(jags.samples)puede ser un lugar más fácil para comenzar.

Abe
fuente
0

Lo siguiente parece funcionar 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í hay un ejemplo reproducible:

example(jags)
plot(jagsfit)
usuario12719
fuente
1
Esa es una pista útil, pero no resuelve el problema de comenzar con un mcmc.list(por lo que puedo decir).
David LeBauer