Trong 3 biến thể BUGS (openBUGS / winBUGS, jags) dường như là hứa hẹn nhất cho sự phát triển tính năng trong tương lai và openBUGS / winBUGS dường như là các dự án chết. Tuy nhiên, jags vẫn còn thiếu một số niceties có trong openBUGS / winBUGS (cũng xem tại đây ). Mặt khác, jags đã loại bỏ một số hạn chế trong WinBUGS, ví dụ:
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))
Tin tốt là với hầu hết các mô hình, bạn có thể chạy chúng trong cả 3 công cụ chỉ với những thay đổi tối thiểu, do đó bạn có thể chuyển sang công cụ khác sau mà không gặp nhiều vấn đề (đó là những gì tôi làm).
Tuy nhiên, vì một số lý do (ví dụ thiếu tính song song và bản chất phiên dịch) , không đúng khi các biến thể BUGS này là cách nhanh nhất để thực hiện phân tích bayesian! Trong thực tế, hoàn toàn ngược lại. Các dự án BUGS là tốt để kiểm tra và phát triển các mô hình phức tạp trên các bộ dữ liệu nhỏ . Khi bạn đã phát triển mô hình và cần chạy nó nhiều lần trên các bộ dữ liệu lớn, việc sử dụng các công cụ khác nhau sẽ hiệu quả hơn.
Ví dụ, combo CppBugs / RCpp được cho là nhanh hơn 5-10 lần so với các biến thể BUGS. Nguyên tắc là về cơ bản, bạn biên dịch mô hình của mình thành một chương trình C ++, chạy nhanh hơn nhiều. Ngoài ra, hãy xem blog của Dirk Eddelbuettel để kiểm tra Rcpp - trông rất nhanh. Bạn cũng có thể chơi với song song.
Bạn cũng có thể thực hiện tính toán song song trong WinBUGS bằng cách sử dụng bugsparallel .
R<(Matlab,Python)<C
về hiệu quả (xem ví dụ liên kết ).