我已经读过,默认情况下会将某些名称分配给随机变量。我正在编写下面代码的相关部分。
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。
有什么方法可以让我知道所有存在痕迹的键吗?
)
答案 0 :(得分:2)
您没有名为parameters_0
的节点。您只有lam
,parameters
,rv_0
,rv_1
等。