PyMC

PyMC（曾叫做PyMC3）是一个Python包，用于贝叶斯统计建模和概率机器学习，它聚焦于高级马尔可夫链蒙特卡洛法和变分拟合算法Salvatier J, Wiecki TV, Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2:e55 https://doi.org/10.7717/peerj-cs.55。

概述
PyMC曾经叫做PyMC3，不同于早先的使用Fortran扩展进行计算的PyMC2，它依靠Theano来进行自动微分、计算优化和动态C语言编译。从版本3.8开始PyMC依据来进行数据可视化和贝叶斯推断的。PyMC和是两个最流行的概率编程工具。

PyMC是开源项目，由社区开发并在财务上得到NumFocus赞助。PyMC已经在很多领域中被用于解决推断问题，包括天文学、流行病学、分子生物学、晶体学、化学、生态学和心理学。

在Theano于2017年宣布计划停止开发之后，PyMC团队曾评估采用TensorFlow Probability作为计算后端，但是在2020年接管Theano的开发。在2021年1月绝大部份的Theano代码基被重新建造，并增加了通过JAX和Numba的编译，修订后的这个计算后端以新名字Aesara发行。PyMC团队在2021年6月将PyMC3更名为PyMC。2022年11月28日，PyMC团队宣布采用从Aesara计划分叉出PyTensor。

 推论引擎 
PyMC实现了不基于梯度的和基于梯度的马尔可夫链蒙特卡洛（MCMC）算法用于贝叶斯推断和随机（），基于梯度的变分贝叶斯方法用于近似贝叶斯推断。
 MCMC算法：
 No-U-Turn采样（NUTS），是的变体和PyMC3用于连续变量的缺省引擎。
 梅特罗波利斯-黑斯廷斯算法，是PyMC3用于离散变量的缺省引擎。
 顺序蒙特卡洛算法。 
 变分推断算法：
 黑箱变分推断。

参见
是用C++编写统计推论的概率编程语言。

 引用 

 延伸阅读 
 Probabilistic Programming and Bayesian Methods for Hackers 
 Computational Statistics in Python 

 外部链接 
 PyMC web site 
 PyMC source , a Git repository hosted on GitHub
 Symbolic PyMC  is an experimental set of tools that facilitate sophisticated symbolic manipulation of PyMC models

Category:计算统计学
Category:贝叶斯统计
Category:蒙地卡罗方法
Category:数值分析语言
Category:数学软件
Category:Python科学库