Dentro das três variantes do BUGS (openBUGS / winBUGS, jags), os jags parecem ser os mais promissores quanto ao desenvolvimento futuro de recursos, e o openBUGS / winBUGS parece ser um projeto morto. No entanto, os jags ainda carecem de algumas sutilezas presentes no openBUGS / winBUGS (veja também aqui ). Por outro lado, o jags removeu algumas limitações presentes no WinBUGS, por exemplo:
x ~ dnorm(0, tau)
tau ~ dgamma(1.0E-3, 1.0E-3) # in WinBUGS, you cannot do this, 1.0E-3 is too small
# for dgamma (use e.g. dgamma(0.01, 0.01))
A boa notícia é que, na maioria dos modelos, você pode executá-los em todas as 3 ferramentas com apenas poucas alterações, para que você possa mudar para outra ferramenta mais tarde sem muitos problemas (é o que eu faço).
No entanto, por algumas razões (por exemplo, falta de paralelismo e natureza do intérprete) , não é verdade que essas variantes do BUGS sejam a maneira mais rápida de fazer análises bayesianas! De fato, muito pelo contrário. Projetos BUGS são bons para testar e desenvolver modelos complicados em pequenos conjuntos de dados . Depois de desenvolver o modelo e precisar executá-lo repetidamente em grandes conjuntos de dados, é mais eficiente usar ferramentas diferentes.
Por exemplo, o CppBugs combo / rcpp é dito ser 5-10x mais rápido do que BUGS variantes. O princípio é que você basicamente compila seu modelo em um programa C ++, que roda muito mais rápido. Também dê uma olhada no blog de Dirk Eddelbuettel para o teste Rcpp - parece brutalmente rápido. Você também pode jogar com paralelismo.
Você também pode fazer computação paralela no WinBUGS usando bugsparallel .
R<(Matlab,Python)<C
em termos de eficiência (ver, por exemplo, link ).