Python PyMC:利用自适应Metropolis MCMC中的稀疏模型结构
我有一个模型,其结构如下图所示: 我有几个人(图中索引为1…5)。总体参数(Python PyMC:利用自适应Metropolis MCMC中的稀疏模型结构,python,algorithm,bayesian,pymc,mcmc,Python,Algorithm,Bayesian,Pymc,Mcmc,我有一个模型,其结构如下图所示: 我有几个人(图中索引为1…5)。总体参数(A和B,但可以有更多)决定每个个体潜在变量L[i]的分布。潜变量L[i]以概率方式确定观测值X[i]。该模型是“稀疏”的,因为大多数节点没有直接连接它们的边 我试图使用PyMC来推断总体参数,以及每个个体的潜在变量。(一个更详细地描述了我的具体场景的相关问题是。)我的问题是:我应该使用Adaptive Metropolis而不是其他方法吗?如果是,是否有任何“诀窍”来正确分组随机变量? 如果我正确理解了自适应Metro
A
和B
,但可以有更多)决定每个个体潜在变量L[i]
的分布。潜变量L[i]
以概率方式确定观测值X[i]
。该模型是“稀疏”的,因为大多数节点没有直接连接它们的边
我试图使用PyMC来推断总体参数,以及每个个体的潜在变量。(一个更详细地描述了我的具体场景的相关问题是。)我的问题是:我应该使用Adaptive Metropolis而不是其他方法吗?如果是,是否有任何“诀窍”来正确分组随机变量?
如果我正确理解了自适应Metropolis采样(我可能没有…),该算法通过计算这些变量在迄今为止构建的后验分布中的相关性,为未知量(A
,B
,以及所有L[I]
)提出了新的值。如果A
和B
呈负相关,则增加A
的提案将倾向于减少B
,反之亦然,以增加提案被接受的机会
问题是,在这个模型中,每个L[i]
都是从A
和B
确定的基本人口分布中独立得出的。因此,虽然它们在后面被认为是相关的,但这些相关性实际上是由于A
和B
单独造成的,因此它们在某种程度上是“混淆的”。因此,当我调用函数时
M.use_step_method(pymc.AdaptiveMetropolis, stochastics)
所有的
L[i]
都应该在随机变量列表中吗?或者我应该多次调用use_step_方法,每次使用Rastochastics=[A,B,L[I]]
只调用其中一个L[I]
?我的想法是,为不同的随机组多次调用该函数将构建问题,并通过告诉PyMC只关注重要的相关性使其更容易处理。这是正确的吗?这可能是一个不令人满意的答案,但PyMC3似乎有一个非常类似的分层模型的例子:将代码迁移到PyMC3将使您能够访问较新的示例,如无U形转弯取样器(NUTS)