在PyMC中打印跟踪时的KeyError

时间:2014-06-07 00:08:15

标签: python pymc mcmc multinomial dirichlet

我已经读过,默认情况下会将某些名称分配给随机变量。我正在编写下面代码的相关部分。

lam = pm.Uniform('lam', lower=0.0, upper=5, doc='lam')
parameters = pm.Dirichlet('parameters',[1,1,1,1], doc='parameters')
rv = [ pm.Multinomial("rv"+str(i), count[i], prob_distribution[i], value = data[i], observed = True) for i in xrange(0, len(count)) ]

m = pm.MCMC([lam, parameters, rv])
m.sample(10)
print m.trace('lam')[:]
print m.trace('parameters_0')[:]

最后一行引发错误 KeyError:'parameters_0'有人可以解释为什么会这样。

但是,如果我使用Matplot.plot(m),我会得到图(我在下面附上)。我得到的印象是键是parameters_0,parameters_1,parameters_2。

有什么方法可以让我知道所有存在痕迹的键吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

您没有名为parameters_0的节点。您只有lamparametersrv_0rv_1等。