分层贝叶斯模型通常用于市场营销、政治学和计量经济学。然而,我所知道的唯一软件包是
bayesm
,它实际上是一本书的姊妹篇(贝叶斯统计和营销,作者:Rossi 等人。)我错过了什么吗?是否有 R 或 Python 的软件包可以完成这项工作,和/或相关语言的可行示例?
有 OpenBUGS 和 R 帮助程序包。 查看 Gelman 的书网站,其中包含大部分相关链接:
Python方面,我只知道PyMC:
编辑:添加了 Gelman 书中相应附录的链接(可在线获取),例如使用 R 和 BUGS 的示例。
这里有四本关于分层建模和贝叶斯分析的书,全书都是用 R 代码编写的。
空间数据的层次建模与分析(统计与应用概率专着)(精装) http://www.amazon.com/gp/product/158488410X
使用回归和多级/分层模型进行数据分析(平装本) http://www.amazon.com/Analysis-Regression-Multilevel-Hierarchical-Models/dp/052168689X/ref=pd_sim_b_1
R 的贝叶斯计算(使用 R)(平装本) http://www.amazon.com/Bayesian-Computation-R-Use/dp/0387922970/ref=pd_bxgy_b_img_c
环境科学的分层建模:统计方法和应用(牛津生物学)(平装本)(我假设这一篇有 R 代码,因为两位作者都广泛使用 R)
我知道一些 Python 书籍涉足多元分析(例如集体智能),但我还没有看到任何真正深入研究贝叶斯或分层建模的书籍。
R 的 MCMCpack 中有一些分层模型,据我所知,这是许多常见模型类型最快的采样器。 (我在其中写了[分层项目响应][2]模型。)
[RJAGS][3] 顾名思义。编写一个 jag 风格的 .bug 模型,在 R 中提供数据,并从 R 中调用 Jags。
在 python 中,尝试 PyMC。 这里有一个多级建模的示例:http://groups.google.com/group/pymc/browse_thread/thread/c6ce37a80edf7f85/1bfd9138c8db891d
我在 R 中结合 JAGS (Linux) 或有时结合 WinBUGS (Windows 或 Wine) 应用分层贝叶斯模型。 查看上面提到的安德鲁·格尔曼 (Andrew Gelman) 的书。
lme4 包使用频率方法估计分层模型,有一个名为 mcmcsamp 的函数,允许您使用 MCMC 从模型的后验分布中进行采样。不幸的是,这目前仅适用于线性模型。
这个答案几乎晚了十年,但希望它能对未来的某人有所帮助。
R 中的
brms
包对于贝叶斯分层/多级模型来说是一个非常好的选择,使用与 lme4
包非常相似的语法。
brms
包使用后面的概率编程语言Stan来进行推理。 Stan 使用比 JAGS 和 BUGS 更先进的采样方法,例如哈密顿蒙特卡罗,它可以从后验分布中提供更高效、更可靠的样本。
如果您希望对更复杂的现象进行建模,那么您可以使用
rstan
包从 R 编译 Stan 模型。还有 Python 替代方案 PyStan
。但是,为了做到这一点,您必须学习如何使用 Stan。
对于 R,您可以使用 brms 或 rstanarm,它们都基于 Stan,并且可以使用熟悉的语法轻松拟合分层贝叶斯模型。 MCMCglmm 也适用于使用 MCMC 的分层混合模型。
对于 Python,强烈建议使用 PyMC3(现在的 PyMC)用于分层贝叶斯模型,提供灵活的 MCMC 和变分推理。 TensorFlow Probability 是更高级贝叶斯建模的另一种选择。