Wie kann ich aus einer mcmc.list ein Diagramm erstellen, das dem von plot.bugs und plot.jags erstellten Diagramm ähnelt? [geschlossen]

9

R scheint von der zur Ausgabe nette Zusammenfassung Plots der Lage zu sein , bugsund jagsObjekte , die von den Funktionen erzeugt R2WinBUGS :: Bugs und R2jags: jags .

Ich benutze jedoch das rjagsPaket. Wenn ich versuche, die Ergebnisse der Funktion rjags::coda.samplesanhand R2WinBUGS::plot.mcmc.listder Ergebnisse zu zeichnen, handelt es sich um Diagnosediagramme (Parameterdichte, Kettenzeitreihen, Autokorrelation) für jeden Parameter.

Unten ist die Art der Handlung aufgeführt, die ich aus Andrew Gelmans Tutorial "Ausführen von WinBuugs und OpenBugs von R" erstellen möchte . Diese wurden unter Verwendung der hergestellt plot.pugs.

Das Problem ist, dass plot.bugsein bugsObjekt als Argument verwendet wird, während plot.mcmc.listdie Ausgabe von verwendet wird coda.samples.

Hier ist ein Beispiel (aus dem coda.samples):

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

Was ich brauche ist auch nicht

  • Eine Möglichkeit, ein ähnliches, informationsreiches, einseitiges Zusammenfassungsdiagramm zu erstellen, das dem von ähnelt plot.bugs
  • eine Funktion, die LINE.outin ein Bugs-Objekt konvertiert wird oder

Geben Sie hier die Bildbeschreibung ein

David LeBauer
quelle

Antworten:

2

Da es keine Antworten gibt, werde ich zumindest das posten, was ich bisher bekommen habe:

Zu diesem Zweck wurde die as.bugs.arrayFunktion im R2WinBUGSPaket erstellt. Laut Dokumentation ( ?as.bugs.array):

Funktionskonvertierung von Ergebnissen aus Markov-Kettensimulationen, die möglicherweise nicht von BUGS stammen, in Bugs-Objekte. Wird hauptsächlich verwendet, um Ergebnisse mit plot.bugs anzuzeigen.

Somit ist es möglich, ein Diagramm aus LINE.outIhrem Beispiel zu erhalten, obwohl nicht die richtigen Variablen dargestellt werden:

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

Es wird ein wenig mehr Arbeit erfordern , um die richtige Art der Transformation zu bestimmen LINE.out, und das LINE.samplesObjekt ist example(jags.samples)möglicherweise ein einfacher Startpunkt.

Abe
quelle
0

Folgendes scheint für mich zu funktionieren:

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)

Hier ist ein reproduzierbares Beispiel:

example(jags)
plot(jagsfit)
user12719
quelle
1
Das ist ein hilfreicher Hinweis, löst aber nicht das Problem, mit einem zu beginnen mcmc.list(soweit ich das beurteilen kann).
David LeBauer