Bayes analizi için en uygun yazılım paketi


14

Bayesci Çıkarım yapmak için hangi yazılım istatistik paketini önereceğinizi merak ediyordum.

Örneğin, openBUGS veya winBUGS'yi bağımsız olarak çalıştırabileceğinizi veya bunları R'den de çağırabileceğinizi biliyorum. Ancak R'nin bayes analizi yapabilen kendi paketleri (MCMCPack, BACCO) da var.

Herkesin R'deki hangi bayes istatistik paketinin en iyi olduğu veya diğer alternatifler (Matlab veya Mathematica) hakkında önerileri var mı?

Karşılaştırmak istediğim temel özellikler performans, kullanım kolaylığı, kararlılık ve esneklik


1
(1) İdeal olarak nitelendirilebilecek bir paket olduğunu düşünmüyorum . (2) Bayes analizi sadece örneklemeyi içermez. (3) Bu R paketleri örnekleme için faydalıdır: Rtwalk , mcmc . Yalnızca log-posteriorun programlanmasını gerektirirler, ancak hiçbir paket yanılmaz değildir. (4) Uygun programlama altında: R<(Matlab,Python)<Cverimlilik açısından iyi bilinmektedir (örneğin, bağlantıya bakınız ).

2
adil puan, re: 4 rağmen - geliştirme süresi eklerseniz bu mutlaka doğru değildir. Ayrıca, R-tabanlı çözümler (R ile arabirim oluşturan veya R paketleri olarak çalışan) örnekleme kodu için genellikle C / C ++ kullanmaktadır.
user4733

@ user4733'te, C ++ tabanlı çözümler BUGS değişkenlerinden 5-10x daha hızlı ve R çözümlerinden çok daha hızlıdır, cevabımı görün.
Meraklı

Yanıtlar:


11

Harici HATA değişkenleri standarttır. R içinde çalışmak uygun olabilir, ancak bu paketler olgun ve performans sergiliyorsa şaşırırdım. R ve harici program arasında köprü kuran bir kitaplık kullanmak genellikle en yaygın uzlaşmadır.

Jags / rjags combo kullanıyorum (jags kabaca hataların bir lehçesi olarak kabul edilebilir). Diğer hata varyantlarını denemedim, ancak duyduğum raporlar, jags'in performans ve sayısal sorunlarla başa çıkma yeteneğinin diğer hata varyantlarından biraz daha iyi olduğudur. Jaglerin kullanımını kolay buluyorum, ancak elbette, nasıl kullanılacağını bilmek için bayesian veri analizi bilgisine ihtiyacınız var.


Hmm tamam tavsiye için teşekkürler! Yani HATA değişkenlerinin bayes analizi yapmanın en hızlı yolu olduğunu mu düşünüyorsunuz?
BYS2

4
Evet ama önce bir kitap okuyun. Gelman'ın Bayesian Veri Analizi kanoniktir, ancak Kruschke'nin bayes veri analizi yapmak girişte daha düşük bir engele sahiptir (belki de kapaklardaki köpek yavrularının önerdiği kadar düşük olmasa da).
user4733

7

3 HATA varyantında (openBUGS / winBUGS, jags) jags, gelecekteki özellik gelişimi için en umut verici gibi görünüyor ve openBUGS / winBUGS ölü projeler gibi görünüyor. Ancak, jags hala openBUGS / winBUGS'da mevcut olan bazı inceliklerden yoksundur (ayrıca buraya bakın ). Öte yandan, jags WinBUGS'ta bulunan bazı sınırlamaları kaldırmıştır, örneğin:

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))

İyi haber şu ki, çoğu modelde, bunları tüm 3 araçta en az değişiklikle çalıştırabilirsiniz, böylece daha sonra çok fazla sorun olmadan farklı araca geçebilirsiniz (yaptığım budur).

Bununla birlikte, bazı nedenlerle (örneğin, paralellik ve yorumlayıcı niteliği eksikliği) , bu HATA değişkenlerinin bayes analizi yapmanın en hızlı yolu olduğu doğru değildir! Aslında, tam tersi. HATA projeleri küçük veri kümelerinde karmaşık modelleri test etmek ve geliştirmek için iyidir . Modeli geliştirdikten ve büyük veri kümelerinde tekrar tekrar çalıştırmanız gerektiğinde, farklı araçlar kullanmak daha verimlidir.

Örneğin, CppBugs / rcpp combo'nun BUGS varyantlarından 5-10x daha hızlı olduğu söylenir. İlke, modelinizi çok daha hızlı çalışan bir C ++ programında derlemenizdir. Ayrıca Dirk Eddelbuettel'in Rcpp testi için bloguna bir göz atın - acımasızca hızlı görünüyor. Paralellik ile de oynayabilirsiniz.

Bugsparallel kullanarak WinBUGS'de paralel hesaplama da yapabilirsiniz .


Oh wow, tamam tüm tavsiyelerin için teşekkürler, çok yararlı oldu :)
BYS2

Rica ederim. Araştırma alanınız nedir? Ekolojiyse, Nüfus Ekolojisinde WinBUGS kullanarak Bayes analizi üzerine kitaplar önerebilirim.
Meraklı

ilginç, cppbugs'ın jags ile nasıl karşılaştırıldığına dair referanslar var mı? Jags C ++ ile yazıldığı için, yorumlama katmanının ne kadar ek yük getireceği hemen belli değildir.
user4733

2
Andrew gelman, temelde c ++ 'a kadar derlenen ve hatalara kıyasla gerçekten hızlı görünen bir böcek lehçesi olan Stan ( mc-stan.org ) adında umut verici bir projeye sahiptir .
Rasmus Bååth

2
@ RasmusBååth Bunu kendi cevabı yapmalısınız. Stanhale gelebilecektir Bayes modelleri için yazılım parçası.
Ari B. Friedman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.