Comment puis-je générer un tracé similaire à celui produit par plot.bugs et plot.jags à partir d'une liste mcmc.list? [fermé]

9

R semble être capable de produire de jolis tracés récapitulatifs à partir des objets bugset jagsgénérés par les fonctions R2WinBUGS :: bugs et R2jags: jags .

Cependant, j'utilise le rjagspackage. Lorsque j'essaie de tracer les résultats de la fonction en rjags::coda.samplesutilisant R2WinBUGS::plot.mcmc.listles résultats, des tracés de diagnostic (densité de paramètres, séries chronologiques de chaîne, autocorrélation) pour chaque paramètre.

Vous trouverez ci-dessous le type d'intrigue que je voudrais produire, à partir du didacticiel d'Andrew Gelman "Exécution de WinBuugs et OpenBugs de R" . Ceux-ci ont été produits en utilisant le plot.pugs.

Le problème est que plot.bugsprend un bugsobjet comme argument, tandis que plot.mcmc.listprend la sortie de coda.samples.

Voici un exemple (tiré de coda.samples):

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

Ce dont j'ai besoin c'est

  • un moyen de générer un graphique récapitulatif similaire d'une page, riche en informations, similaire à celui produit par plot.bugs
  • une fonction qui se convertira LINE.outen objet bogues ou

entrez la description de l'image ici

David LeBauer
la source

Réponses:

2

Puisqu'il n'y a pas de réponses, je posterai au moins ce que j'ai obtenu jusqu'à présent:

La as.bugs.arrayfonction du R2WinBUGSpackage a été créée à cet effet. Selon la documentation ( ?as.bugs.array):

Fonction convertissant les résultats des simulations de chaîne de Markov, qui pourraient ne pas provenir de BUGS, en objet bugs. Utilisé principalement pour afficher les résultats avec plot.bugs.

Ainsi, il est possible d'obtenir un tracé à partir LINE.outde votre exemple, bien qu'il ne trace pas les variables correctes:

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

Il faudra un peu plus de travail pour déterminer la bonne façon de transformer le LINE.out, et l' LINE.samplesobjet à partir de example(jags.samples)peut être un endroit plus facile pour commencer.

Abe
la source
0

Les éléments suivants semblent fonctionner pour moi:

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)

Voici un exemple reproductible:

example(jags)
plot(jagsfit)
user12719
la source
1
C'est un indice utile, mais ne résout pas le problème de commencer par un mcmc.list(pour autant que je sache).
David LeBauer