我在定义多维随机变量的边界时遇到了一个问题。 这里有一个假例子来解释我的问题。你知道吗
如果我想在[0100]之间有一个三维离散的统一体
import pymc as mc
from numpy import empty
truth = mc.DiscreteUniform("bin1", lower=0, upper=100, value=[50,50,50], size=3)
@mc.deterministic(plot=False)
def unfold(truth=truth):
out = empty(3)
for r in xrange(3):
out[r] = truth[r]
return out
data = [5, 10, 30]
unfolded = mc.Poisson('unfolded', mu=unfold, value=data, observed=True, size=3)
model = mc.Model([unfolded, unfold, truth])
mcmc = mc.MCMC( model )
mcmc.use_step_method(mc.AdaptiveMetropolis, truth)
mcmc.sample(10000,1000,10)
这将为3个箱子采样一个离散均匀性,每个箱子的范围相同(在0到100之间)。你知道吗
现在,我尝试了几种方法来为每个箱子定义不同的范围,但都没有成功。我尝试了离散形式数组和边界数组(上,下),但它们显然不起作用。你知道吗
有人知道如何为一个随机变量的不同箱子定义不同的范围吗?你知道吗
要定义不同的范围和初始值,需要调用随机构造函数N次以创建变量列表,然后使用容器构造函数使列表pymc可读:
相关问题 更多 >
编程相关推荐