Jak wygenerować wykres podobny do wykresu wygenerowanego przez plot.bugs i plot.jags z mcmc.list? [Zamknięte]

9

R wydaje się być w stanie generować ładne wykresy podsumowań z obiektów bugsi jagsgenerowanych przez funkcje R2WinBUGS :: bugs i R2jags: jags .

Korzystam jednak z rjagspakietu. Kiedy próbuję wykreślić wyniki funkcji rjags::coda.samplesza R2WinBUGS::plot.mcmc.listpomocą wyników, są wykresy diagnostyczne (gęstość parametru, szeregi czasowe łańcucha, autokorelacja) dla każdego parametru.

Poniżej znajduje się rodzaj fabuły, którą chciałbym stworzyć, z samouczka Andrew Gelmana „Uruchamianie WinBuugs i OpenBugs z R” . Zostały one wyprodukowane przy użyciu plot.pugs.

Problem polega na tym, że plot.bugsprzyjmuje bugsobiekt jako argument, podczas gdy plot.mcmc.listprzyjmuje wynik coda.samples.

Oto przykład (z coda.samples):

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

Potrzebuję też

  • sposób na wygenerowanie podobnego, bogatego w informacje, jednostronicowego wykresu podsumowującego podobnego do tego, który stworzył plot.bugs
  • funkcja, która przekształci LINE.outsię w obiekt błędów lub

wprowadź opis zdjęcia tutaj

David LeBauer
źródło

Odpowiedzi:

2

Ponieważ nie ma odpowiedzi, przynajmniej opublikuję to, co do tej pory otrzymałem:

W tym celu utworzono as.bugs.arrayfunkcję w R2WinBUGSpakiecie. Zgodnie z dokumentacją ( ?as.bugs.array):

Funkcja konwertująca wyniki symulacji łańcucha Markowa, które mogą nie pochodzić z BŁĘDÓW, na obiekt błędów. Używany głównie do wyświetlania wyników z plot.bugs.

W ten sposób można uzyskać wykres z LINE.outtwojego przykładu, chociaż nie wykreśla on poprawnych zmiennych:

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

Potrzeba trochę więcej pracy, aby określić właściwy sposób transformacji LINE.out, a LINE.samplesobiekt z example(jags.samples)może być łatwiejszym miejscem do rozpoczęcia.

Abe
źródło
0

Wydaje mi się, że następujące działania:

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)

Oto powtarzalny przykład:

example(jags)
plot(jagsfit)
użytkownik12719
źródło
1
Jest to przydatna wskazówka, ale nie rozwiązuje problemu rozpoczynania od mcmc.list(o ile wiem).
David LeBauer,