在PyMC中打印追踪时出现KeyError

0 投票
1 回答
800 浏览
提问于 2025-04-18 08:56

我看到有些随机变量默认会被分配一些名字。我在下面写了相关的代码部分。

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 个回答

2

你没有一个叫做 parameters_0 的节点。你只有 lamparametersrv_0rv_1 等等。

撰写回答