使用 Metropolis-Hastings 算法的 MCMC:选择提案

机器算法验证 马尔可夫链蒙特卡罗 大都会黑斯廷斯
2022-03-06 21:20:18

我需要做一个模拟来评估一个 3 参数函数的积分,我们说,它有一个非常复杂的公式。要求使用 MCMC 方法对其进行计算并实现 Metropolis-Hastings 算法以生成分布为的值,并建议使用 3 变量正态作为提议分布。阅读一些关于它的例子,我发现其中一些使用具有固定参数的法线,而一些使用变量均值,其中是最后接受的值根据分布。我对这两种方法都有一些疑问:ffN(μ,σ)N(X,σ)Xf

1)选择最后一个接受的值作为我们提案分布的新均值是什么意思?我的直觉说它应该保证我们的值将更接近分布为的值,并且接受的机会会更大。但它不是过于集中我们的样本吗?可以保证,如果我获得更多样本,链条将变得静止?f

2)选择固定参数(因为真的很难分析)会不会真的很困难并且取决于我们需要选择启动算法的第一个样本?在这种情况下,找出哪个更好的最佳方法是什么?f

这些方法中的一种是否比另一种更好,或者这取决于具体情况?

我希望我的疑问是明确的,如果可以提供一些文献我会很高兴(我已经阅读了一些关于这个主题的论文,但越多越好!)

提前致谢!

1个回答

1)您可以将此方法视为随机游走方法。当提案分布时,通常称为 Metropolis 算法。如果太小,您的接受率会很高,并且会非常缓慢地探索目标分布。实际上,如果太小并且分布是多模态的,则采样器可能会卡在特定的模式下,无法充分探索目标分布。另一方面,如果太大,接受率就会太低。由于你有三个维度,你的提案分布将有一个协方差矩阵xxtN(xt,σ2)σ2σ2σ2Σ这可能需要每个维度的不同方差和协方差。选择合适的可能很困难。Σ

2) 如果您的提案分布始终为,那么这是独立的 Metropolis-Hastings 算法,因为您的提案分布不依赖于您当前的样本。如果您的提案分布是您希望从中采样的目标分布的良好近似值,则此方法效果最佳。您是正确的,选择一个好的正态近似可能很困难。N(μ,σ2)

这两种方法的成功都不应取决于采样器的起始值。无论你从哪里开始,马尔可夫链最终都应该收敛到目标分布。要检查收敛,您可以从不同的起点运行多个链并执行收敛诊断,例如 Gelman-Rubin 收敛诊断。