0

鉴于以下模型,我的问题是如何S知道关于alphabeta和的任何信息theta?我已经看到MCMC了在单独的文件(即作为 Python 模块)中指定模型的示例,这对我来说很有意义。但是在这里我没有S明确地传递任何数据。只是想了解这是如何工作的。

import pymc as pm
import numpy as np

n = 5 * np.ones(4, dtype=int)
x = np.array([-0.86, -0.3, -0.05, 0.73])

alpha = pm.Normal('alpha', mu=0, tau=0.01)
beta = pm.Normal('beta', mu=0, tau=0.01)

@pm.deterministic
def theta(a=alpha, b=beta):
    """theta = logit^{-1}(a+b)"""
    return pm.invlogit(a + b * x)

d = pm.Binomial('d',n=n,p=theta,value=np.array([0.,1.,3.,5.]),observed=True)

S = pm.MCMC(db='pickle')
S.sample(iter=10000, burn=5000, thin=2)
pm.Matplot.plot(S)

在此处输入图像描述

4

1 回答 1

0

如果input一个pymc.Model或派生类的参数是None,它会将所有变量吸出__main__有关血腥细节,请参见此处。看来我们不应该再使用这种魔法了......当我运行你的代码时,我得到以下信息:

/homes/abie/anaconda/lib/python2.7/site-packages/pymc/Model.py:93: UserWarning: The MCMC() syntax is deprecated. Please pass in nodes explicitly via M = MCMC(input).
  'The MCMC() syntax is deprecated. Please pass in nodes explicitly via M = MCMC(input).')
于 2015-03-03T04:45:47.490 回答