【问题标题】:Two execution of MAP in pymc gives different values在 pymc 中两次执行 MAP 给出不同的值
【发布时间】:2014-06-11 18:11:17
【问题描述】:

我想了解 MAP 优化 im pymc。在使用 mcmc 采样后,我得到了以下 lambda 的后验分布

显然,后验在 lambda = 0.20 处最大,95% 的区间为 [0.17, 0.24](如果我错了,请纠正我)

据我所知,MAP 给出了一个点估计值(具有最大后验概率的 lambda 值),但是当我运行 MAP 两次时,我得到了不同的值,这不应该是这种情况。

在 d 相同程序的 2 次执行中使用 map 之后,我在 nd 之前打印 lambda 的值。

使用 MAP 之前 0.200091865615 使用 MAP 后 0.197584715205

使用 MAP 之前 1.28960939539 使用 MAP 后 2.70871770586

有人可以解释发生了什么以及如何解决这个问题吗?

【问题讨论】:

    标签: python distribution probability pymc mcmc


    【解决方案1】:

    可能是优化器在第二个起始值处出现收敛问题。你可以尝试不同的优化器吗?例如:

    MAP(method='fmin_powell')
    

    【讨论】:

    • 但是我怎么提前知道我将不得不使用其他一些优化器呢?我已经有了后验,因此我可以在这里进行验证,但可能并非每次都如此。
    • 你没有。优化背后的艺术是能够选择一个合理的起始值。您可以通过设置 value= 参数在 PyMC 中执行此操作(否则它使用随机抽取)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多