最近、Journal of Pharmaceutical SciencesみたいなDMPKな雑誌を読むようになってきた。その中でScipyとpymcっていうpythonでMCMCができるモジュールを使って解析してた論文を見たので試したくなった。
sudo easy_install-2.6 pymc
でさくっと入って、テストしてみたらなんか色々こけてるようなのだけど、とりあえずサンプル写経
import pymc
import numpy as np
n = 5*np.ones(4,dtype=int)
x = np.array([-.86,-.3,-.05,.73])
alpha = pymc.Normal('alpha',mu=0,tau=.01)
beta = pymc.Normal('beta',mu=0,tau=.01)
@pymc.deterministic
def theta(a=alpha, b=beta):
"""theta = logit^{-1}(a+b)"""
return pymc.invlogit(a+b*x)
d = pymc.Binomial('d', n=n, p=theta,value=np.array([0.,1.,3.,5.]),observed=True)
これをmymodel.pyって名前で保存しておいて
対話環境から
>>> import mymodel
>>> import pymc
>>> S = pymc.MCMC(mymodel, db='pickle')
>>> S.sample(iter=10000, burn=5000, thin=2)
>>> pymc.Matplot.plot(S)
>>> pymc.Matplot.savefig("test.png")
うーんMCMCわからん。精進せねば。