我见过很多人声称 Stan 比 JAGS “好得多”,大致意思是这样的:“虽然 Jags 快得多,但样品质量更差。所以值得等待 Stan 花费更长的时间,因为你”更好地“计算不确定性。”
好的,到目前为止一切顺利。但是......我还没有看到任何证明这种实际主张的好例子。我的意思是两个采样器输出的后验分布如此不同以至于产生实质性差异(例如,不同的决定)的例子,因此使用 Stan 的负担值得花时间并得到回报.
你能提供这样一个例子(带有模型和代码)吗?
我见过很多人声称 Stan 比 JAGS “好得多”,大致意思是这样的:“虽然 Jags 快得多,但样品质量更差。所以值得等待 Stan 花费更长的时间,因为你”更好地“计算不确定性。”
好的,到目前为止一切顺利。但是......我还没有看到任何证明这种实际主张的好例子。我的意思是两个采样器输出的后验分布如此不同以至于产生实质性差异(例如,不同的决定)的例子,因此使用 Stan 的负担值得花时间并得到回报.
你能提供这样一个例子(带有模型和代码)吗?
每当我想开始理解一个新的统计主题时,我都会从阅读有关它的文章开始。在这种情况下,我将从 Carpenter 等人开始。“Stan: A Probabilistic Programming Language”,在Journal of Statistical Software中介绍了 Stan。第一段足以让我们开始。
Stan 项目的目标是为统计建模提供灵活的概率编程语言,以及一套用于拟合稳健、可扩展和高效的模型的推理工具。
Stan 在两个主要方面不同于 BUGS(Lunn、Thomas 和 Spiegelhalter 2000;Lunn、Spiegelhalter、Thomas 和 Best 2009;Lunn、Jackson、Best、Thomas 和 Spiegelhalter 2012)和 JAGS(Plummer 2003)。首先,Stan 基于一种新的命令式概率编程语言,它比 BUGS 或 JAGS 底层的声明性图形建模语言更灵活、更具表现力,例如用类型声明变量以及支持局部变量和条件语句。其次,Stan 的马尔可夫链蒙特卡洛 (MCMC) 技术基于哈密顿蒙特卡洛 (HMC),对于具有复杂后验的模型来说,这是一种比 Gibbs 采样或 Metropolis Hastings 更有效和稳健的采样器。 1
最后的数字是脚注。它的引文支持该句子中的主张。在这种情况下,脚注为“Neal (2011) 分析了 HMC 与维度的缩放优势。Hoffman 和 Gelman (2014) 提供了 Stan 的自适应 HMC 算法与 Gibbs、Metropolis 和标准 HMC 采样器的实际比较”,引用如下
尼尔 R (2011)。“使用哈密顿动力学的 MCMC。” S Brooks, A Gelman, GL Jones, XL Meng (eds.), Handbook of Markov Chain Monte Carlo, pp. 116–162。查普曼和霍尔/CRC。
霍夫曼医学博士,格尔曼 A (2014)。“不掉头的采样器:在哈密顿蒙特卡洛中自适应地设置路径长度。” 机器学习研究杂志,15(四月),1593–1623。
这将更详细地阐述差异。
需要指出的是,本文中stan
引用的优点与后验的不同无关,而是与效率有关的事实。
确实,可以证明,在某些条件下,Gibbs、MCMC 和 Metropolis-Hastings 将收敛到后部(尽管与 HMC/NUTS 相比,链混合可能需要太长时间),因此 HMC 会令人惊讶/NUTS 在满足这些条件时会有所不同。
Stan 的开发人员之一 Bob Carpenter在 Stan 论坛上的此线程中提供了一个具体示例,说明 Stan 可以解决 Gibbs 采样无法解决的问题。
[T]这是用户指南的潜在离散参数章节中如何准确编码此模型的示例。您可以在我的最新论文 [“比较贝叶斯注释模型”中找到这个示例和其他示例,作者是 Silviu Paun、Bob Carpenter、Jon Chamberlain、Dirk Hovy、Udo Kruschwitz、Massimo Poesio。 计算语言学协会的交易(2018 年)],全部用 Stan 编码。
Gibbs 实际上是拟合这些模型的一种非常糟糕的方法——收敛速度非常慢。这些模型过去需要 24 小时才能适应混合效果很差的 WinBUGS,而现在它们在 Stan 中需要 30 分钟才能适应。请小心使用合理的初始化,因为存在不可识别性。Duco Veen 从乌得勒支到哥伦比亚拜访我们,并正在研究一个很快就会发布的案例研究。
换句话说,如果你试图估计这个模型并且你运行 WinBUGS 30 分钟,你从 WinBUGS 模型中得到的链将表现出混合不良,模型不会收敛,样本将不能代表后密度。那个时候,你有一个选择。您可以再等待 23 小时 30 分钟让链混合,或者您可以在 Stan 中编写模型。
并非所有参数化,甚至所有模型,都可以在 Stan 中快速估计。Stan 用户指南中也讨论了有问题的参数化,其几何形状对于 HMC/NUTS 来说非常难以导航。用户指南还包含可以改善这些问题的建议重新参数化。这并不意味着所有模型都可以在 Stan 中进行估计,甚至 Stan 对任何特定模型都更有效;有些模型只是具有挑战性,无论是通用的还是专门针对 Stan 的。
也就是说,与流行的替代品相比,Stan 是一种可以更快地解决某些特定问题的工具。获得专业知识的一部分是知道如何区分解决问题的各种替代工具和方法,并选择最适合工作的工具。
目前,在现实世界中没有明显的例子表明使用 Stan 与 JAGS 很重要(也就是说,后验会如此不同,以至于它会引发本质上不同的决定或结论)。这有个人经验的支持,即使在提供赏金之后,这个非常简单的问题也缺乏答案,这进一步证明了这一点。