司仪中的步行者没有探索参数空间?

时间:2017-08-01 23:31:40

标签: python mcmc emcee

首先:对缺乏代码和相当模糊的描述道歉;我正在使用的代码长达1000多行,我不确定它的哪些部分会有用。

我正在使用主持人做一些贝叶斯参数估计。我的代码使用50个步行器,每个步行器进行600次迭代(没有细化),但无论出于何种原因,助行器链似乎很快收敛。当我在-1和1之间随机分布时启动50个步行者时,他们不会探索整个参数空间,但似乎快速收敛(通常围绕真实的参数值)。图片如下:

实际参数值为.6和.4

The real parameter values are .6 and .4

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

The real parameter values are -1. and 1.

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

这就是他们应该做的事情 - 快速收敛到高后密度区域。另一个问题是,对于双峰密度,主持人会产生次优的提议,这会减慢收敛速度。这可能是您遇到的情况,并且在两个示例的第二个图中都可以看到。

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

无论如何,多模式后卫是所有MCMC的祸根,并且有很多尝试来解决这个问题,没有一个被普遍接受(欢迎来到最前沿)。您将不得不探索几个选项,可能超出emcee,以找到适合您的选项。