Come posso generare una trama simile a quella prodotta da plot.bugs e plot.jags da una lista mcmc.list? [chiuso]


9

R sembra essere in grado di produrre simpatici grafici di riepilogo dagli oggetti bugse jagsgenerati dalle funzioni R2WinBUGS :: bugs e R2jags: jags .

Tuttavia, sto usando il rjagspacchetto. Quando provo a tracciare i risultati della funzione rjags::coda.samplesusando R2WinBUGS::plot.mcmc.listi risultati sono grafici diagnostici (densità dei parametri, serie temporali della catena, autocorrelazione) per ciascun parametro.

Di seguito è riportato il tipo di trama che vorrei produrre, dal tutorial di Andrew Gelman "Esecuzione di WinBuugs e OpenBugs da R" . Questi sono stati prodotti utilizzando il plot.pugs.

Il problema è che plot.bugsaccetta un bugsoggetto come argomento, mentre plot.mcmc.listprende l'output di coda.samples.

Ecco un esempio (dal coda.samples):

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

Neanche quello di cui ho bisogno

  • un modo per generare un grafico riassuntivo di una pagina simile, ricco di informazioni, simile a quello prodotto da plot.bugs
  • una funzione che verrà convertita LINE.outin un oggetto bug o

inserisci qui la descrizione dell'immagine

Risposte:


2

Dal momento che non ci sono risposte, posterò almeno quello che ho ottenuto finora:

La as.bugs.arrayfunzione nel R2WinBUGSpacchetto è stata creata per questo scopo. Secondo la documentazione ( ?as.bugs.array):

Funzione che converte i risultati dalle simulazioni a catena di Markov, che potrebbero non provenire da BUG, ​​in oggetto bug. Utilizzato principalmente per visualizzare i risultati con plot.bugs.

Pertanto, è possibile ottenere un grafico LINE.outnell'esempio, anche se non traccia le variabili corrette:

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

Ci vorrà un po 'più di lavoro per determinare il modo corretto di trasformare LINE.outl' LINE.samplesoggetto , e l' oggetto example(jags.samples)potrebbe essere un punto di partenza più semplice.


0

Quanto segue sembra funzionare per me:

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)

Ecco un esempio riproducibile:

example(jags)
plot(jagsfit)

1
Questo è un indizio utile, ma non risolve il problema di iniziare con un mcmc.list(per quanto posso dire).
David LeBauer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.