Из трех вариантов BUGS (openBUGS / winBUGS, jags), как представляется, наиболее перспективными для разработки будущих функций являются зазубрины, а openBUGS / winBUGS кажутся мертвыми проектами. Тем не менее, в jag по-прежнему отсутствуют некоторые тонкости, присутствующие в openBUGS / winBUGS (см. Также здесь ). С другой стороны, jags снял некоторые ограничения, присутствующие в WinBUGS, например:
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))
Хорошая новость заключается в том, что с большинством моделей вы можете запускать их во всех трех инструментах с минимальными изменениями, поэтому вы можете переключиться на другой инструмент позже без особых проблем (это то, что я делаю).
Однако по некоторым причинам (например, из-за отсутствия параллелизма и природы интерпретатора) неверно, что эти варианты BUGS являются самым быстрым способом выполнения байесовского анализа! На самом деле совсем наоборот. Проекты BUGS хороши для тестирования и разработки сложных моделей на небольших наборах данных. . После того, как вы разработали модель и вам нужно многократно запускать ее для больших наборов данных, более эффективно использовать различные инструменты.
Например, комбо CppBugs / rcpp называется в 5-10 раз быстрее, чем варианты BUGS. Принцип заключается в том, что вы в основном компилируете свою модель в программу на C ++, которая работает намного быстрее. Также посмотрите блог Дирка Эддельбюттеля для теста Rcpp - выглядит быстро. Вы также можете играть с параллелизмом.
Вы также можете выполнять параллельные вычисления в WinBUGS, используя bugsparallel .
R<(Matlab,Python)<C
с точки зрения эффективности (см., Например, ссылку ).