我构建了一个带有5个随机变量和一个确定性变量的分层模型(在pymc中),我希望能够设置一个随机种子,以便采样器能够重现相同的痕迹。
我尝试了各种各样的事情,例如设置 rseed (对于随机指标)以及我模型开头的numpy.random.seed,但我无法重现这些痕迹。
以下是我的代码:
import pymc
#level 3
a1 = pymc.Beta('a1', alpha=1, beta=1)
a2 = pymc.Gamma('a2', alpha=0.1, beta=0.1)
#level 2
b1 = pymc.Beta('b1', alpha = (a1 * a2) + 1, beta = ((1-a1) * a2) + 1, size = 8)
b2 = pymc.Gamma('b2', alpha=0.1, beta=0.1, size = 8)
#level 1
c = pymc.Beta('c', alpha = data['alpha'], beta = data['beta'])
# Likelihood scoring
d = pymc.Binomial('d', n = data['n'], p = c, value = data['obs'], observed=True)
# The model
model = pymc.Model([a1,a2,b1,b2,c,d])
mcmc = pymc.MCMC(model)
mcmc.sample(iter=50000, burn=10000, thin=20)
我正在使用Python 2.7和pymc版本2.3.6