本资源由 伯乐在线 – 赵叶宇 整理
PyMC是一个实现贝叶斯统计模型和马尔科夫链蒙塔卡洛采样工具拟合算法的Python库。PyMC的灵活性及可扩展性使得它能够适用于解决各种问题。除了包含核心采样功能,PyMC还包含了统计输出、绘图、拟合优度检验和收敛性诊断等方法。
特性
PyMC使得贝叶斯分析尽可能更加容易。以下是一些PyMC库的特性:
安装
PyMC可以运行在Mac OS X,Linux和Windows系统中。安装一些其他预装库可以更大程度地提高PyMC的性能和功能。
预装库
PyMC的运行要求一些预装库的安装及配置。
使用EasyInstall安装
安装PyMC最简单的方式是在终端输入以下代码:
Shell
1 | easy_install pymc |
确保用户具有适合的权限进行安装。
使用预编译二进制文件进行安装
- 从PyPI下载安装器。
- 双击可执行安装包,按照向导进行安装。
编译源码安装
用户可以从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) |
等待几秒钟后,便可以看到采样过程执行完成,模型已经完成拟合。
其他教程
建模教程
拟合模型:
保存和管理采样结果
模型检验与诊断
扩展PyMC
#p#分页标题#e#
概率分布
开发者资源
官方网站:http://pymc-devs.github.io/pymc/index.html
开源地址:http://github.com/pymc-devs/pymc
关键字:
