อ่าน 4 นาที
สแตน (ซอฟต์แวร์)
Stanเป็นภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นสำหรับการอนุมานทางสถิติที่เขียนด้วยภาษา C++ ภาษา Stan ใช้เพื่อระบุแบบจำลองทางสถิติ (แบบเบย์เซียน)...
สแตน (ซอฟต์แวร์)
| สแตน | |
|---|---|
| ผู้เขียนต้นฉบับ | ทีมพัฒนา Stan |
| ปล่อย | 30 สิงหาคม 2555 |
| เวอร์ชันเสถียร | 2.39.0 [ 1 ] |
| เขียนเป็น | ซี++ |
| ระบบปฏิบัติการ | ระบบปฏิบัติการคล้าย Unix , Microsoft Windows , Mac OS X |
| แพลตฟอร์ม | Intel x86 - 32 บิต , x64 |
| พิมพ์ | ชุดโปรแกรมสถิติ |
| ใบอนุญาต | ใบอนุญาต BSD ใหม่ |
| เว็บไซต์ | mc-stan |
| ที่เก็บข้อมูล |
|
Stanเป็นภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นสำหรับการอนุมานทางสถิติที่เขียนด้วยภาษา C++ [ 2 ] ภาษา Stan ใช้เพื่อระบุแบบจำลองทางสถิติ (แบบเบย์เซียน) ด้วยโปรแกรมเชิงคำสั่งที่คำนวณฟังก์ชันความหนาแน่นความน่าจะเป็นลอการิทึม[ 2 ]
Stan ได้รับอนุญาตภายใต้ใบอนุญาต BSD ใหม่ Stan ได้รับการตั้งชื่อเพื่อเป็นเกียรติแก่Stanislaw Ulamผู้บุกเบิก วิธี การMonte Carlo [ 2 ]
Stan ถูกสร้างขึ้นโดยทีมพัฒนาซึ่งประกอบด้วยสมาชิก 52 คน[ 3 ]ซึ่งรวมถึงAndrew Gelman , Bob Carpenter, Daniel Lee, Ben Goodrich และคนอื่นๆ
ตัวอย่าง
แบบจำลองการถดถอยเชิงเส้นอย่างง่ายสามารถอธิบายได้ดังนี้ โดยที่นอกจากนี้ยังสามารถแสดงได้ในรูปแบบ รูปแบบหลังนี้สามารถเขียนใน Stan ได้ดังนี้:
ข้อมูล{ int < lower = 0 > N ; vector [ N ] x ; vector [ N ] y ; } พารามิเตอร์{ real alpha ; real beta ; real < lower = 0 > sigma ; } แบบจำลอง{ y ~ normal ( alpha + beta * x , sigma ); }อินเทอร์เฟซ
สามารถเข้าถึงภาษา Stan ได้ผ่านทางอินเทอร์เฟซหลายแบบ:
- CmdStan – โปรแกรมที่สามารถเรียกใช้งานได้จากบรรทัดคำสั่งสำหรับเชลล์
- CmdStanR และ rstan – ไลบรารีซอฟต์แวร์สำหรับภาษา R
- CmdStanPy และ PyStan – ไลบรารีสำหรับภาษาโปรแกรม Python
- CmdStan.rb - ไลบรารีสำหรับภาษาโปรแกรม Ruby
- MatlabStan – การบูรณาการกับสภาพแวดล้อมการคำนวณเชิงตัวเลขของ MATLAB
- Stan.jl – การบูรณาการกับภาษาโปรแกรม Julia
- StataStan – การเชื่อมต่อกับโปรแกรม Stata
- Stan Playground - ออนไลน์ที่[1]
นอกจากนี้ ยังมีอินเทอร์เฟซระดับสูงกว่าที่จัดเตรียมไว้สำหรับแพ็กเกจที่ใช้ Stan เป็นแบ็กเอนด์ โดยส่วนใหญ่ใช้ภาษา R : [ 4 ]
- rstanarmเป็นตัวทดแทนโดยตรงสำหรับแบบจำลองความถี่ที่จัดทำโดย R พื้นฐานและlme4โดยใช้ไวยากรณ์สูตรของ R
- brms [ 5 ]มีโมเดลเชิงเส้นและไม่เชิงเส้นหลากหลายรูปแบบโดยใช้ไวยากรณ์สูตร R
- โปรแกรม Prophetมีขั้นตอนอัตโนมัติสำหรับการพยากรณ์อนาคตของอนุกรมเวลา
อัลกอริทึม
Stan นำเสนออัลกอริธึมMarkov chain Monte Carlo (MCMC) ที่ใช้การไล่ระดับความชันสำหรับการอนุมานแบบเบย์เซียนวิธีการเบย์เซียนแบบแปรผัน ที่ใช้การไล่ระดับความชัน แบบสุ่มสำหรับการอนุมานแบบเบย์เซียนโดยประมาณ และการเพิ่มประสิทธิภาพ ที่ใช้การไล่ระดับความชัน สำหรับการประมาณค่าความน่าจะเป็นสูงสุดแบบมีค่าปรับ
- อัลกอริทึม MCMC:
- แฮมิลโทเนียน มอนเตคาร์โล (HMC)
- ตัวอย่าง No-U-Turn [ 2 ] [ 6 ] (NUTS) ซึ่งเป็นตัวแปรของ HMC และเอ็นจิ้น MCMC เริ่มต้นของ Stan
- อัลกอริทึมการอนุมานแบบแปรผัน:
- อัลกอริทึมการปรับให้เหมาะสม:
- BFGS แบบหน่วยความจำจำกัด (L-BFGS) (อัลกอริธึมการเพิ่มประสิทธิภาพเริ่มต้นของ Stan)
- อัลกอริทึม Broyden–Fletcher–Goldfarb–Shanno (BFGS)
- การประมาณ ค่าความคลาดเคลื่อนมาตรฐานแบบคลาสสิกและการประมาณค่าความน่าจะเป็นภายหลังแบบเบย์ เซียนโดยใช้การประมาณค่า ของลาปลาซ
การหาผลต่างอัตโนมัติ
Stan ใช้การ หาอนุพันธ์อัตโนมัติแบบย้อนกลับเพื่อคำนวณเกรเดียนต์ของโมเดล ซึ่งจำเป็นสำหรับ HMC, NUTS, L-BFGS, BFGS และการอนุมานแบบแปรผัน[ 2 ]การหาอนุพันธ์อัตโนมัติภายใน Stan สามารถใช้งานได้นอกภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น
การใช้งาน
Stan ถูกใช้ในสาขาต่างๆ รวมถึงสังคมศาสตร์[ 9 ]สถิติเภสัชกรรม [ 10 ]การวิจัยตลาด[ 11 ]และ การ ถ่ายภาพทางการแพทย์[ 12 ]
ดูเพิ่มเติม
- PyMCเป็นภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นในภาษา Python
- ArviZคือไลบรารี Python สำหรับการวิเคราะห์เชิงสำรวจของแบบจำลองเบย์เซียน
อ่านเพิ่มเติม
- Carpenter, Bob; Gelman, Andrew; Hoffman, Matthew; Lee, Daniel; Goodrich, Ben; Betancourt, Michael; Brubaker, Marcus; Guo, Jiqiang; Li, Peter; Riddell, Allen (2017). "Stan: ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น" . วารสารซอฟต์แวร์สถิติ . 76 (1): 1– 32. doi : 10.18637/jss.v076.i01 . ISSN 1548-7660 . PMC 9788645 . PMID 36568334 .
- Gelman, Andrew, Daniel Lee และ Jiqiang Guo (2015). Stan: ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นสำหรับการอนุมานแบบเบย์เซียนและการเพิ่มประสิทธิภาพวารสารสถิติการศึกษาและพฤติกรรม
- Hoffman, Matthew D., Bob Carpenter และ Andrew Gelman (2012). Stan ซอฟต์แวร์ที่ปรับขนาดได้สำหรับการสร้างแบบจำลองแบบเบย์เซียนเก็บถาวรเมื่อ 2015-01-21 ที่Wayback Machine , รายงานการประชุมเชิงปฏิบัติการ NIPS ว่าด้วยการเขียนโปรแกรมเชิงความน่าจะเป็น
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ สแตน (ซอฟต์แวร์)
Stanเป็นภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นสำหรับการอนุมานทางสถิติที่เขียนด้วยภาษา C++ ภาษา Stan ใช้เพื่อระบุแบบจำลองทางสถิติ (แบบเบย์เซียน)...
ตัวอย่าง
แบบจำลองการถดถอยเชิงเส้นอย่างง่ายสามารถอธิบายได้ดังนี้ โดยที่นอกจากนี้ยังสามารถแสดงได้ในรูปแบบ รูปแบบหลังนี้สามารถเขียนใน Stan ได้ดังนี้: y n = α + เบต้า x n + ϵ n {\displaystyle y_{n}=\alpha +\beta x_{n}+\epsilon _{n}} ϵ n ~ ปกติ ( 0 , σ ) {\displaystyle...
อินเทอร์เฟซ
สามารถเข้าถึงภาษา Stan ได้ผ่านทางอินเทอร์เฟซหลายแบบ:
อัลกอริทึม
Stan นำเสนออัลกอริธึม Markov chain Monte Carlo (MCMC) ที่ใช้การไล่ระดับความชันสำหรับการอนุมานแบบเบย์เซียน วิธีการเบย์เซียนแบบแปรผัน ที่ใช้การไล่ระดับความชัน แบบสุ่มสำหรับการอนุมานแบบเบย์เซียนโดยประมาณ และ การเพิ่มประสิทธิภาพ ที่ใช้การไล่ระดับความชัน...