嗨,大家好!
今天我們來說一個統計學和資料分析領域非常有趣的工具,她可以協助我們進行貝氏計算。她就是 NIMBLE。(這篇文章用語有和 chatgpt 聊過)。
NIMBLE 是一個 R 語言的套件。有了 NIMBLE,你可以把 BUGS 的程式碼轉換成模型物件,然後用在你想要的任何演算法上,包含 MCMC, MCEM, HMC 等等。這不僅包括 NIMBLE 提供的演算法,還有你用nimbleFunctions 自己編寫的演算法。首先,Nimble 有個很厲害的地方,就是她不僅使用了 BUGS 語法,還擴展了它。這點相當方便,因為過去二十年來,大量的書籍、文件、期刊文章、範例都是使用 BUGS 語法寫的,包含 WinBUGS、OpenBUGS、JAGS 等平台。然而,這些平台有的已經不能用、不再更新,或者效能不如預期。目前大多數人轉用 JAGS,但是 JAGS 也有一些效能、收斂等問題。所以在 2012 年,像是 Andrew Gelman 等學者開始推動 Stan 語言,而現今的貝氏統計學三大經典教材都以 Stan 為基礎或至少提及 Stan。這三本書包含:
- Bayesian data analysis, 3/e (Stan 作者)
- Statistical rethinking, 2/e (提供簡單寫 Stan 的方法
Ulam(),alist()) - Doing Bayesian data analysis, 2/e (提及 Stan)
接下來,Nimble 的速度也比 JAGS 快,這點在很多文章中都有被討論過。雖然之前有 R2jags 套件可以進行平行計算,但是 Nimble 內建的平行計算功能還在開發中,目前只提供使用 parallel 套件的方式。
最後,Nimble 在混合模型的計算上有優勢。這意味著在需要使用混合模型的領域,Nimble 可能會比 Stan 更適用。特別是在生態學領域,有很多生態學家在使用 Nimble,或許就是因為她在處理混合模型時的優越性。
總而言之,NIMBLE 就像是一位統計學的超級英雄,尤其適合在貝氏統計學中積極探索的你們。如果你對統計學充滿好奇,這個工具絕對值得你一試!
See Also
- Beraha, M., Falco, D., & Guglielmi, A. (2021). JAGS, NIMBLE, Stan: a detailed comparison among Bayesian MCMC software. arXiv preprint arXiv:2107.09357.
- Nimble user manual
- Bayesian Analysis of Capture-Recapture Data with Hidden Markov Models: Theory and Case Studies in R














