बायेसियन विश्लेषण के लिए इष्टतम सॉफ्टवेयर पैकेज


14

मैं सोच रहा था कि कौन से सॉफ्टवेयर सांख्यिकीय पैकेज आप लोग बेइज़ियन इन्वेंशन करने के लिए सुझाते हैं।

उदाहरण के लिए, मुझे पता है कि आप ओपनब्यूज या विनब्यूज को स्टैंडअलोन के रूप में चला सकते हैं या आप उन्हें आर से भी कॉल कर सकते हैं। लेकिन आर के पास अपने स्वयं के कई पैकेज (MCMCPack, BACCO) हैं जो बायेसियन विश्लेषण कर सकते हैं।

क्या किसी के पास कोई सुझाव है कि आर में बायेसियन सांख्यिकी पैकेज सबसे अच्छा है या अन्य विकल्पों के बारे में (मतलाब या किन्नर?)

जिन मुख्य विशेषताओं की मैं तुलना करना चाह रहा हूं वे प्रदर्शन, उपयोग में आसानी, स्थिरता और लचीलापन हैं


1
(1) मुझे नहीं लगता कि ऐसा कोई पैकेज है जो इष्टतम के रूप में योग्य हो सकता है । (2) बायेसियन विश्लेषण में केवल नमूनाकरण शामिल नहीं है। (3) ये आर संकुल नमूने के लिए उपयोगी हैं: Rtwalk , mcmc । उन्हें केवल लॉग-पोस्ट प्रोग्रामिंग की आवश्यकता है लेकिन कोई भी पैकेज अचूक नहीं है। (४) यह सर्वविदित है कि उपयुक्त प्रोग्रामिंग के तहत: R<(Matlab,Python)<Cदक्षता के मामले में (उदाहरण के लिए लिंक देखें )।

2
उचित बिंदु, हालांकि फिर से: 4 - यह जरूरी नहीं है कि आप विकास के समय को शामिल करें। इसके अलावा, आर-आधारित समाधान (या तो आर के साथ इंटरफेस या आर पैकेज के रूप में चल रहे हैं) आमतौर पर नमूना कोड के लिए सी / सी ++ का उपयोग कर रहे हैं।
user4733

@ user4733, C ++ आधारित समाधान BUGS वेरिएंट की तुलना में 5-10x तेज़ हैं, और R समाधानों की तुलना में बहुत अधिक तेज़ हैं, मेरा उत्तर देखें।
जिज्ञासु

जवाबों:


11

बाहरी BUGS वेरिएंट मानक हैं। R के भीतर काम करना सुविधाजनक हो सकता है, लेकिन मुझे आश्चर्य होगा कि क्या वे पैकेज परिपक्व हैं और साथ ही साथ प्रदर्शन करते हैं। एक पुस्तकालय का उपयोग करना जो आर और बाहरी कार्यक्रम को पुल करता है, आमतौर पर सबसे आम समझौता है।

मैं jags / rjags कॉम्बो का उपयोग करता हूं (jags को मोटे तौर पर बग की बोली माना जा सकता है)। मैंने अन्य बग वेरिएंट की कोशिश नहीं की है, लेकिन मैंने जो रिपोर्ट्स सुनी हैं, वह यह है कि जैग का प्रदर्शन और संख्यात्मक मुद्दों से निपटने की क्षमता अन्य बग वेरिएंट की तुलना में थोड़ी बेहतर है। मुझे लगता है कि गुड़ का उपयोग करना आसान है, लेकिन निश्चित रूप से, आपको यह जानने के लिए कि यह कैसे उपयोग करना है, इसे जानने के लिए बायेसियन डेटा विश्लेषण के कुछ ज्ञान की आवश्यकता है।


हम्म ठीक है आप सलाह के लिए धन्यवाद! तो आप मानते हैं कि बीयूजीएस वेरिएंट बायेसियन विश्लेषण करने का सबसे तेज़ तरीका है?
BYS2

4
हां लेकिन पहले एक किताब पढ़िए। जेलमैन का बायेसियन डेटा एनालिसिस कैनोनिकल है, हालांकि क्रुश्के के बायेसियन डेटा एनालिसिस में एंट्री करने की बाधा कम है (हालाँकि कवर पर पिल्लों जितना कम नहीं है)।
user4733

7

3 BUGS वेरिएंट (OpenBUGS / winBUGS, jags) जैग्स भविष्य की सुविधा के विकास के लिए सबसे अधिक आशाजनक प्रतीत होते हैं, और openBUGS / winBUGS मृत परियोजनाएं लगती हैं। हालांकि, जैग अभी भी ओपनब्यूजीएस / विनब्यूजीएस ( यहां भी देखें ) में मौजूद कुछ बारीकियों की कमी है । दूसरी ओर, जैग्स ने 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))

अच्छी खबर यह है कि अधिकांश मॉडलों के साथ, आप उन्हें केवल न्यूनतम बदलाव के साथ सभी 3 टूल में चला सकते हैं, इसलिए आप बाद में बहुत समस्याओं के बिना अलग-अलग टूल पर स्विच कर सकते हैं (यही मैं करता हूं)।

हालांकि, कुछ कारणों से (जैसे समानता और दुभाषिया प्रकृति की कमी) , यह सच नहीं है कि ये BUGS वेरिएंट सबसे तेजी से बेयसियन विश्लेषण करने का तरीका है! वास्तव में, इसके विपरीत। BUGS प्रोजेक्ट छोटे डेटासेट पर जटिल मॉडल का परीक्षण और विकास करने के लिए अच्छे हैं । एक बार जब आपके पास मॉडल विकसित हो जाता है, और बड़े डेटासेट पर इसे बार-बार चलाने की आवश्यकता होती है, तो विभिन्न उपकरणों का उपयोग करना अधिक कुशल होता है।

उदाहरण के लिए CppBugs / rcpp कॉम्बो को BUGS वेरिएंट की तुलना में 5-10x तेज बताया गया है। सिद्धांत यह है कि आप मूल रूप से अपने मॉडल को C ++ प्रोग्राम में संकलित करते हैं, जो बहुत तेजी से चलता है। आरसीपी परीक्षण के लिए डिर्क एडेलबुलेटेल के ब्लॉग पर भी एक नज़र डालें - क्रूरता से तेज दिखता है। आप समानता के साथ भी खेल सकते हैं।

तुम भी उपयोग कर रहा WinBUGS में समानांतर गणना कर सकते हैं bugsparallel


अरे वाह, आपकी सभी सलाह के लिए धन्यवाद, यह बहुत उपयोगी था :)
BYS2

आपका स्वागत है। आपका शोध क्षेत्र क्या है? यदि यह पारिस्थितिकी है, तो मैं जनसंख्या पारिस्थितिकी में WinBUGS का उपयोग करके बायेसियन विश्लेषण पर पुस्तकों की सिफारिश कर सकता हूं।
जिज्ञासु

दिलचस्प है, वहाँ कैसे cppbugs jags की तुलना पर संदर्भ हैं? चूँकि j ++ C ++ में लिखा गया है, इसलिए यह तुरंत स्पष्ट नहीं है कि व्याख्या की परत कितनी उपर होगी।
15:47 पर user4733

2
एंड्रयू जेलमैन के पास स्टेन ( mc-stan.org ) नामक एक आशाजनक परियोजना है, जो मूल रूप से एक बग बोली है जो सी ++ के लिए संकलित है और यह कीड़े की तुलना में वास्तव में तेज़ लगता है।
रासमस बैसथ

2
@ RasmusBååth आपको इसका अपना उत्तर देना चाहिए। Bayesian मॉडल के लिए सॉफ्टवेयर का टुकड़ा Stanबनने की संभावना है ।
अरी बी। फ्रीडमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.