R 或 Python 的分层贝叶斯

问题描述 投票:0回答:8

分层贝叶斯模型通常用于市场营销、政治学和计量经济学。然而,我所知道的唯一软件包是

bayesm
,它实际上是一本书的姊妹篇(贝叶斯统计和营销,作者:Rossi 等人。)我错过了什么吗?是否有 R 或 Python 的软件包可以完成这项工作,和/或相关语言的可行示例?

python r statistics
8个回答
13
投票

有 OpenBUGS 和 R 帮助程序包。 查看 Gelman 的书网站,其中包含大部分相关链接:

Python方面,我只知道PyMC:

编辑:添加了 Gelman 书中相应附录的链接(可在线获取),例如使用 R 和 BUGS 的示例。


11
投票

这里有四本关于分层建模和贝叶斯分析的书,全书都是用 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 书籍涉足多元分析(例如集体智能),但我还没有看到任何真正深入研究贝叶斯或分层建模的书籍。


3
投票

R 的 MCMCpack 中有一些分层模型,据我所知,这是许多常见模型类型最快的采样器。 (我在其中写了[分层项目响应][2]模型。)

[RJAGS][3] 顾名思义。编写一个 jag 风格的 .bug 模型,在 R 中提供数据,并从 R 中调用 Jags。


3
投票

在 python 中,尝试 PyMC。 这里有一个多级建模的示例:http://groups.google.com/group/pymc/browse_thread/thread/c6ce37a80edf7f85/1bfd9138c8db891d


2
投票

我在 R 中结合 JAGS (Linux) 或有时结合 WinBUGS (Windows 或 Wine) 应用分层贝叶斯模型。 查看上面提到的安德鲁·格尔曼 (Andrew Gelman) 的书。


0
投票

lme4 包使用频率方法估计分层模型,有一个名为 mcmcsamp 的函数,允许您使用 MCMC 从模型的后验分布中进行采样。不幸的是,这目前仅适用于线性模型。


0
投票

这个答案几乎晚了十年,但希望它能对未来的某人有所帮助。

R 中的

brms
包对于贝叶斯分层/多级模型来说是一个非常好的选择,使用与
lme4
包非常相似的语法。

brms
包使用后面的概率编程语言Stan来进行推理。 Stan 使用比 JAGS 和 BUGS 更先进的采样方法,例如哈密顿蒙特卡罗,它可以从后验分布中提供更高效、更可靠的样本。

如果您希望对更复杂的现象进行建模,那么您可以使用

rstan
包从 R 编译 Stan 模型。还有 Python 替代方案
PyStan
。但是,为了做到这一点,您必须学习如何使用 Stan。


0
投票

对于 R,您可以使用 brms 或 rstanarm,它们都基于 Stan,并且可以使用熟悉的语法轻松拟合分层贝叶斯模型。 MCMCglmm 也适用于使用 MCMC 的分层混合模型。

对于 Python,强烈建议使用 PyMC3(现在的 PyMC)用于分层贝叶斯模型,提供灵活的 MCMC 和变分推理。 TensorFlow Probability 是更高级贝叶斯建模的另一种选择。

© www.soinside.com 2019 - 2024. All rights reserved.