#monte-carlo #monte #carlo #markov

mcmc

一个实现各种MCMC诊断和工具的Rust库,例如Gelman Rubin潜在尺度缩减因子(R hat)、有效样本大小(ESS)、链分割等。

2个不稳定版本

0.1.3 2020年9月15日
0.0.1 2015年6月19日

#495 in 机器学习

MIT许可证

320KB
669

mcmc

一个实现各种MCMC诊断和工具的Rust库,例如Gelman Rubin潜在尺度缩减因子(R hat)、有效样本大小(ESS)、链分割等。

这个包是语言无关的,旨在与任何MCMC采样器的输出一起工作(例如Stan、PyMC3、Turing.jl等)。

实现

目前我们期望是普通的浮点数向量(f64),但这可能值得推广到(f32)(见下面的路线图)。

这些诊断的一些实现略有不同,因此参考实现基于Stan,单元测试是从Stan代码库中改编的,以确保匹配的行为。

路线图

诊断

  • 潜在尺度缩减因子
  • 分割潜在尺度缩减因子
  • 有效样本大小
  • 蒙特卡洛标准误差

工具

  • 按Vehtari等人2019年的建议分割链
  • 稀疏化

数据结构

  • 引入Num类型,以推广我们的实现以适用于f32f64
  • 是否有必要有一种可以表示一个或多个样本链以及参数名称的结构体?

性能

  • 删除不必要的复制或分配

参考文献

[1]: Stephen P. Brooks and Andrew Gelman. General Methods for Monitoring Convergence of Iterative Simulations. Journal of Computational and Graphical Statistics, 7(4), 1998.

[2]: Andrew Gelman and Donald B. Rubin. Inference from Iterative Simulation Using Multiple Sequences. Statistical Science, 7(4):457-472, 1992.

[3]: Aki Vehtari, Andrew Gelman, Daniel Simpson, Bob Carpenter, Paul-Christian Burkner. Rank-normalization, folding, and localization: An improved R-hat for assessing convergence of MCMC, 2019. Retrieved from http://arxiv.org/abs/1903.08008.

[4]: Geyer, Charles J. Introduction to Markov Chain Monte Carlo. Handbook of Markov Chain Monte Carlo, edited by Steve Brooks, Andrew Gelman, Galin L. Jones, and Xiao-Li Meng. Chapman; Hall/CRC. 2011.

致谢

感谢 Ivan Ukhov 大方地在 Cargo 上提供了 mcmc 命名空间。

依赖项

约1.5MB
约28K SLoC