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(可选)
使用方法:
1. 模型定义:
# 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)
调用模型:
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 预装库 官网
http://pymc-devs.github.io/pymc/index.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。