0

首先:为缺乏代码和相当模糊的描述道歉;我使用的代码有 1000 多行,我不确定它的哪些部分对发布有帮助。

我正在使用 emcee 进行一些贝叶斯参数估计。我的代码使用 50 个 walker,每个都进行 600 次迭代(没有细化),但无论出于何种原因,walker 链似乎收敛得相当快。虽然我启动了 50 个随机分布在 -1 和 1 之间的步行者,但它们并没有探索整个参数空间,但似乎很快收敛(通常围绕真实参数值)。图片如下:

实际参数值为 .6 和 .4

实际参数值为 .6 和 .4

实际参数值为-1。和 1。

实际参数值为-1。 和 1。

任何建议都非常感谢!

4

1 回答 1

0

这就是他们应该做的——迅速收敛到后密度高的区域。另一个问题是,对于双峰密度,emcee 会产生次优建议,这会减慢收敛速度。这可能是在您的情况下发生的情况,并且在两个示例的第二张图中都可以看到。

建议的作者emcee(我上次阅读)通过他们已经实施的并行回火(参见文档)来解决这个问题。但是当模式之间的密度相差几个数量级时,它们的实现(我上次检查)将不起作用。

无论如何,多模态后验是所有 MCMC 的祸根,有很多尝试解决这个问题,但没有一个被普遍接受(欢迎来到前沿)。您将不得不探索几个选项,也许超越emcee,以找到适合您的选项。

于 2017-11-21T07:43:39.217 回答