当前位置:天才代写 > tutorial > 其他教程 > PyMC:马尔科夫链蒙特卡洛采样工具

PyMC:马尔科夫链蒙特卡洛采样工具

2018-05-16 08:00 星期三 所属: 其他教程 浏览:1523

本资源由 伯乐在线 – 赵叶宇 整理

pymc

PyMC是一个实现贝叶斯统计模型和马尔科夫链蒙塔卡洛采样工具拟合算法的Python库。PyMC的灵活性及可扩展性使得它能够适用于解决各种问题。除了包含核心采样功能,PyMC还包含了统计输出、绘图、拟合优度检验和收敛性诊断等方法。

特性

PyMC使得贝叶斯分析尽可能更加容易。以下是一些PyMC库的特性:

  • 用马尔科夫链蒙特卡洛算法和其他算法来拟合贝叶斯统计分析模型。
  • 包含了大范围的常用统计分布。
  • 尽可能地使用了NumPy的一些功能。
  • 包括一个高斯建模过程的模块。
  • 采样循环可以被暂停和手动调整,或者保存和重新启动。
  • 创建包括表格和图表的摘要说明。
  • 算法跟踪记录可以保存为纯文本,pickles,SQLite或MySQL数据库文档或HDF5文档。
  • 提供了一些收敛性诊断方法。
  • 可扩展性:引入自定义的步骤方法和非常规的概率分布。
  • MCMC循环可以嵌入在较大的程序中,结果可以使用Python进行分析。
  • 安装

    PyMC可以运行在Mac OS X,Linux和Windows系统中。安装一些其他预装库可以更大程度地提高PyMC的性能和功能。

    预装库

    PyMC的运行要求一些预装库的安装及配置。

  • Python2.6及以上版本
  • NumPy(1.6版本及以上)
  • Matplotlib(1.0版本及以上)
  • SciPy(可选)
  • pyTables(可选)
  • pydot(可选)
  • IPython(可选)
  • nose(可选)
  • 使用EasyInstall安装

    安装PyMC最简单的方式是在终端输入以下代码:

    Shell

    1 easy_install pymc

    确保用户具有适合的权限进行安装。

    使用预编译二进制文件进行安装

    1. 从PyPI下载安装器。
    2. 双击可执行安装包,按照向导进行安装。

    编译源码安装

    用户可以从the GitHub download page中下载源代码并解压。

    从GitHub上安装

    用户可以在GitHub中查找PyMC,并执行:

    Shell

    1 git clone git://github.com/pymc-devs/pymc.git

    历史版本在/tags目录中可以找到。

    执行测试套件

    pymc中包含了一测试用例来确保代码中的关键组件能够正常运行。在运行这个测试之前,用户需要保证nose已经在本地安装好,在Python编译器中执行以下代码:

    Python

    12 import pymcpymc.test()

    如果测试失败,将会显示错误的具体信息。

    使用

    首先,在文件中定义你的模型,并命名为mymodel.py。

    Python

    123456789101112131415161718192021 # Import relevant modules import pymc import numpy as np  # Some data n = 5*np.ones(4,dtype=int) x = np.array([-.86,-.3,-.05,.73])  # Priors on unknown parameters alpha = pymc.Normal(‘alpha’,mu=0,tau=.01) beta = pymc.Normal(‘beta’,mu=0,tau=.01)  # Arbitrary deterministic function of parameters @pymc.deterministic def theta(a=alpha, b=beta):    “””theta = logit^{-1}(a+b)”””    return pymc.invlogit(a+b*x)  # Binomial likelihood for data d = pymc.Binomial(‘d’, n=n, p=theta, value=np.array([0.,1.,3.,5.]),\                  observed=True)

    #p#分页标题#e#

    保存此文件,在Python编译器或者相同目录下的其他文件中调用:

    Python

    123456 import pymc import mymodel  S = pymc.MCMC(mymodel, db=’pickle’) S.sample(iter=10000, burn=5000, thin=2) pymc.Matplot.plot(S)

    这个例子会产生10000个后验样本。这个样本会存储在Python序列化数据库中。

    教程示例

    教程会指导用户完成常见的PyMC应用。

    如何用MCMC来拟合模型

    PyMC提供了一些可以拟合概率模型的方法。最主要的拟合模型方法是MCMC,即马尔科夫蒙特卡洛算法。生成一个MCMC对象来处理我们的模型,导入disaster_model.py并将其作为MCMC的参数。

    123 >>> from pymc.examples import disaster_model>>> from pymc import MCMC>>> M = MCMC(disaster_model)

    调用MCMC中的sample()方法(或者交互采样函数isample())来运行采样器:

    1 >>> M.sample(iter=10000, burn=1000, thin=10)

    等待几秒钟后,便可以看到采样过程执行完成,模型已经完成拟合。

    其他教程

    建模教程

  • 随机类
  • 数据
  • Deterministic类
  • 容器
  • Potential类
  • 图形模型
  • LazyFunction类与缓存
  • 拟合模型:

  • 建立模型
  • 模型类
  • 最大化后验估计
  • 正态估计
  • 马尔科夫链蒙特卡洛:MCMC类
  • 采样器类
  • Step methods
  • Gibbs step methods
  • 保存和管理采样结果

    模型检验与诊断

    扩展PyMC

    #p#分页标题#e#

    概率分布

    开发者资源

  • GitHub地址
  • Python官方的pymc文档说明
  • StackOverflow中关于PyMC的问题讨论
  • Python中的计算分析-使用PyMC2
  • Python中的计算分析-使用PyMC3
  • Python中的计算分析-MCMC
  • PyMC3官方文档
  • 官方网站:http://pymc-devs.github.io/pymc/index.html
    开源地址:http://github.com/pymc-devs/pymc

     

      关键字:

    天才代写-代写联系方式