ชุดซอฟต์แวร์ที่เหมาะสมที่สุดสำหรับการวิเคราะห์แบบเบย์


14

ฉันสงสัยว่าพวกคุณแนะนำแพคเกจทางสถิติสำหรับการดำเนินการอนุมานแบบเบย์

ตัวอย่างเช่นฉันรู้ว่าคุณสามารถเรียกใช้ openBUGS หรือ winBUGS เป็น standalones หรือคุณสามารถเรียกพวกเขาจาก R แต่ R ยังมีแพ็คเกจของตัวเองหลายตัว (MCMCPack, BACCO) ซึ่งสามารถทำการวิเคราะห์แบบเบส์

ไม่มีใครมีคำแนะนำใด ๆ ที่เป็นแพคเกจสถิติเบย์ใน R ที่ดีที่สุดหรือเกี่ยวกับทางเลือกอื่น ๆ (Matlab หรือ Mathematica?)

คุณสมบัติหลักที่ฉันต้องการเปรียบเทียบคือประสิทธิภาพการใช้งานง่ายความเสถียรและความยืดหยุ่น


1
(1) ผมไม่คิดว่าจะมีแพคเกจที่อาจมีคุณสมบัติเป็นที่ดีที่สุด (2) การวิเคราะห์แบบเบย์ไม่เพียง แต่รวมถึงการสุ่มตัวอย่าง (3) แพคเกจ R เหล่านี้มีประโยชน์สำหรับการสุ่มตัวอย่าง: Rtwalk , MCMC พวกเขาต้องการเพียงการเขียนโปรแกรมบันทึกหลัง แต่ไม่มีแพคเกจไม่ถูกต้อง (4) เป็นที่ทราบกันดีว่าภายใต้การเขียนโปรแกรมที่เหมาะสม: R<(Matlab,Python)<Cในแง่ของประสิทธิภาพ (ดูเช่นลิงค์ )

2
คะแนนยุติธรรมแม้ว่าจะเป็นเรื่องที่ 4 - นี่ไม่จำเป็นต้องเป็นจริงหากคุณรวมเวลาในการพัฒนา นอกจากนี้โซลูชันที่ใช้ R (การเชื่อมต่อกับ R หรือเรียกใช้เป็นแพ็คเกจ R) มักใช้ C / C ++ สำหรับโค้ดตัวอย่าง
user4733

@ user4733 โซลูชั่นที่ใช้ C ++ เร็วกว่าตัวเลือก BUGS 5-10 เท่าและเร็วกว่าโซลูชัน R ดูที่คำตอบของฉัน
อยากรู้อยากเห็น

คำถามที่คล้ายกัน: stats.stackexchange.com/q/9202/5509
อยากรู้อยากเห็น

คำตอบ:


11

ตัวแปร BUGS ภายนอกเป็นมาตรฐาน การทำงานภายใน R อาจสะดวก แต่ฉันก็แปลกใจถ้าแพ็คเกจเหล่านั้นโตแล้วและทำงานได้ดี การใช้ไลบรารี่ซึ่งเชื่อมโยง R และโปรแกรมภายนอกมักเป็นการประนีประนอมที่พบบ่อยที่สุด

ฉันใช้คำสั่งผสม jags / rjags (jags อาจถูกพิจารณาอย่างคร่าวๆว่าเป็นภาษาถิ่นของบั๊ก) ฉันไม่ได้ลองชุดรูปแบบของข้อบกพร่องอื่น ๆ แต่รายงานที่ฉันได้ยินมานั้นก็คือประสิทธิภาพและความสามารถในการจัดการกับปัญหาตัวเลขของ jags นั้นดีกว่าตัวเลือกข้อบกพร่องอื่น ๆ เล็กน้อย ฉันพบว่า jags ใช้งานง่าย แต่แน่นอนคุณต้องมีความรู้เกี่ยวกับการวิเคราะห์ข้อมูลแบบเบย์เพื่อทราบวิธีใช้งาน


อืมโอเคขอบคุณสำหรับคำแนะนำของคุณ! ดังนั้นคุณคิดว่า BUGS แปรผันเป็นวิธีที่เร็วที่สุดในการวิเคราะห์แบบเบย์?
BYS2

4
ใช่ แต่อ่านหนังสือก่อน การวิเคราะห์ข้อมูลแบบเบย์ของ Gelman นั้นเป็นสิ่งที่ยอมรับได้แม้ว่าการวิเคราะห์ข้อมูลแบบเบส์ของ Kruschke จะมีสิ่งกีดขวางทางเข้าน้อยกว่า (แม้ว่าอาจจะไม่ต่ำเท่ากับลูกสุนัขบนหน้าปก)
user4733

7

ภายใน 3 BUGS ตัวแปร (openBUGS / winBUGS, jags) jags ดูเหมือนจะเป็นสัญญาที่ดีที่สุดสำหรับการพัฒนาคุณลักษณะในอนาคตและ openBUGS / winBUGS ดูเหมือนจะเป็นโครงการที่ตายแล้ว อย่างไรก็ตามjags ยังขาดนิโคตินบางตัวที่อยู่ใน 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))

ข่าวดีก็คือว่าด้วยโมเดลส่วนใหญ่คุณสามารถเรียกใช้ในเครื่องมือทั้ง 3 ด้วยการเปลี่ยนแปลงเพียงเล็กน้อยดังนั้นคุณสามารถเปลี่ยนไปใช้เครื่องมืออื่นในภายหลังโดยไม่มีปัญหามาก (นั่นคือสิ่งที่ฉันทำ)

อย่างไรก็ตามด้วยเหตุผลบางอย่าง (เช่นการขาดความเท่าเทียมและธรรมชาติของล่าม)มันไม่เป็นความจริงที่ว่าสายพันธุ์ BUGS เหล่านี้เป็นวิธีที่เร็วที่สุดในการวิเคราะห์แบบเบส์! ในความเป็นจริงค่อนข้างตรงข้าม โครงการ BUGS เป็นสิ่งที่ดีในการทดสอบและพัฒนารูปแบบซับซ้อนในชุดข้อมูลที่มีขนาดเล็ก เมื่อคุณพัฒนาแบบจำลองและต้องการเรียกใช้ซ้ำบนชุดข้อมูลขนาดใหญ่จะมีประสิทธิภาพมากขึ้นในการใช้เครื่องมือต่าง ๆ

ตัวอย่างเช่นCppBugsคำสั่งผสม / rcpp กล่าวจะ 5-10x เร็วกว่า BUGS สายพันธุ์ หลักการคือคุณต้องรวบรวมโมเดลของคุณเข้ากับโปรแกรม C ++ ซึ่งทำงานได้เร็วกว่ามาก ดูที่บล็อกของ Dirk Eddelbuettel สำหรับการทดสอบ Rcpp - ดูรวดเร็วอย่างไร้ความปราณี คุณยังสามารถเล่นด้วยความขนาน

นอกจากนี้คุณยังสามารถทำคำนวณแบบขนานใน WinBUGS ใช้bugsparallel


โอ้ว้าว, ขอบคุณ ok สำหรับคำแนะนำของคุณทั้งหมดมันเป็นประโยชน์มาก :)
BYS2

ยินดี. งานวิจัยของคุณคืออะไร? ถ้าเป็นนิเวศวิทยาฉันสามารถแนะนำหนังสือเกี่ยวกับการวิเคราะห์แบบเบย์โดยใช้ WinBUGS ในระบบนิเวศของประชากร
อยากรู้อยากเห็น

น่าสนใจมีการอ้างอิงว่า cppbugs เปรียบเทียบกับ jags ได้อย่างไร เนื่องจาก jags เขียนใน C ++ จึงไม่ชัดเจนว่าจะมีการตีความเลเยอร์ค่าใช้จ่ายเท่าใด
user4733

2
Andrew gelman มีโครงการที่มีแนวโน้มที่เรียกว่า Stan ( mc-stan.org ) ซึ่งโดยทั่วไปแล้วเป็นภาษาถิ่นของแมลงที่รวมกันเป็น c ++ และดูเหมือนว่าจะเร็วมากเมื่อเทียบกับแมลง
Rasmus Bååth

2
@ RasmusBååthคุณควรตอบด้วยตัวเอง Stanมีแนวโน้มที่จะกลายเป็นชิ้นส่วนของซอฟต์แวร์สำหรับรุ่นที่คชกรรม
Ari B. Friedman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.