Zastanawiałem się, jaki pakiet statystyczny oprogramowania polecacie do przeprowadzania wnioskowania bayesowskiego.
Na przykład wiem, że możesz uruchamiać openBUGS lub winBUGS jako standalones lub też możesz wywoływać je z R. Ale R ma również kilka własnych pakietów (MCMCPack, BACCO), które mogą wykonywać analizę bayesowską.
Czy ktoś ma jakieś sugestie co do tego, który pakiet statystyk bayesowskich w R jest najlepszy, lub o innych alternatywach (Matlab lub Mathematica?)
Główne cechy, które chcę porównać, to wydajność, łatwość użycia, stabilność i elastyczność
R<(Matlab,Python)<C
pod względem wydajności (patrz np. Link ).Odpowiedzi:
Warianty BŁĘDÓW zewnętrznych są standardem. Praca w R może być wygodna, ale zdziwiłbym się, gdyby te pakiety były tak dojrzałe i działały równie dobrze. Korzystanie z biblioteki łączącej R i program zewnętrzny jest zwykle najczęstszym kompromisem.
Używam kombinacji jags / rjags (jags można z grubsza uznać za dialekt błędów). Nie wypróbowałem innych wariantów błędów, ale raporty, które słyszałem, mówią, że wydajność i zdolność radzenia sobie z numerycznymi problemami jest nieco lepsza niż w przypadku innych wariantów błędów. Uważam, że jags są łatwe w użyciu, ale oczywiście potrzebujesz wiedzy na temat analizy danych bayesowskich, aby wiedzieć, jak z nich korzystać.
źródło
Spośród 3 wariantów BŁĘDÓW (openBUGS / winBUGS, jags) jags wydaje się najbardziej obiecujący, jeśli chodzi o przyszły rozwój funkcji, a openBUGS / winBUGS wydają się martwymi projektami. Jednak w jags wciąż brakuje pewnych subtelności obecnych w openBUGS / winBUGS (patrz również tutaj ). Z drugiej strony, jags usunął pewne ograniczenia obecne w WinBUGS, np .:
Dobrą wiadomością jest to, że w większości modeli można je uruchamiać we wszystkich 3 narzędziach przy minimalnych zmianach, dzięki czemu można później bez problemu przełączać się na inne narzędzia (to właśnie robię).
Jednak z niektórych powodów (np. Brak paralelizmu i natury interpretera) nie jest prawdą, że te warianty BŁĘDÓW są najszybszym sposobem na analizę bayesowską! W rzeczywistości, wręcz przeciwnie.Projekty BUGS dobrze sprawdzają się i opracowują skomplikowane modele na małych zestawach danych . Po opracowaniu modelu i konieczności jego wielokrotnego uruchamiania na dużych zestawach danych bardziej efektywne jest używanie różnych narzędzi.
Na przykład mówi się, że kombinacja CppBugs / rcpp jest 5-10 razy szybsza niż warianty BŁĘDÓW. Zasadą jest, że w zasadzie kompilujesz swój model w programie C ++, który działa znacznie szybciej. Zobacz także blog Dirka Eddelbuettela dotyczący testu Rcpp - wygląda brutalnie szybko. Możesz także grać z równoległością.
Możesz także wykonać obliczenia równoległe w WinBUGS, używając bugsparallel .
źródło
Stan
prawdopodobnie stanie się oprogramowaniem dla modeli bayesowskich.