命中并运行MCMC


16

我正在尝试实现即插即用的MCMC算法,但是在理解如何进行操作时遇到了一些麻烦。总体思路如下:

为了在MH中产生提案跳跃,我们:

  • 根据单位球表面上的分布生成方向dO
  • 沿约束空间生成有符号距离λ

但是,我不知道应该如何用R(或任何其他语言)实现这一点。

有没有人会向我指出正确方向的一小段代码?

顺便说一句,我对执行此方法的库没什么兴趣,我想尝试自己编写代码。

非常感谢。


1
以前从未听说过这种算法,但是听起来很有趣。您能否提供说明性来源的链接?谢谢 !
steffen 2010年

@steffen这是原始文章的链接-实际上是技术报告。我也从未使用过此过程。
csgillespie 2010年

1
与其他方法相比,命中并运行MCMC有什么优势?收敛速度?
RockScience 2010年

@fRed:这就是为什么我提供赏金的原因。我已经阅读了有关“即插即用”的信息,但不知道在什么情况下会有用。
csgillespie 2010年

3
链接现在已断开。
daknowles

Answers:


11

我没有看您提供的纸张,但是无论如何,让我走一下:

如果您有一个维参数空间,则可以生成一个随机方向d,该方向均匀地分布在单位球面上pd

x <- rnorm(p)
d <- x/sqrt(sum(x^2))

(cf Wiki)。

然后,使用它为拒绝抽样生成提案(假设您实际上可以评估d的分布dd)。

假定你的位置开始和已经接受了d,生成建议ÿxdy

 lambda <- r<SOMEDISTRIBUTION>(foo, bar)
 y <- x + lambda * d

并执行“都会-行进-步骤”决定是否移至y

当然,它的工作方式将取决于的分布以及在拒绝采样步骤中(反复)评估其密度的昂贵程度,但是由于生成d的建议很便宜,因此您可以避免使用它。dd


为@csgillespie的利益而添加:

通过我的一些搜查,我发现,即运行的MCMC主要用于快速混合,如果您有一个(任意)目标具有任意范围但不一定具有连接支持的目标,则它可以使您从任何角度移动一站式支持。这里这里更多。


1
如果这个答案不能令人满意,您能解释为什么吗?
约翰·萨尔瓦捷

我不确定@fred,但是当我提供赏金时,我想我想对即时运行MCMC有更多了解。例如,哪种类型的问题最适合。当然,如果没有其他答案,那么这个问题将赢得悬赏。
csgillespie 2010年

3
@csgillespie:我编辑了答案,以更好地适应您的兴趣。不用说我不配得到赏金。;)
fabians 2010年

2
非常感谢您的链接。我之所以称其为赏金的原因之一是,我的Google搜索引发了对该方法的一些数学讨论,但在实际应用中却很少。如果再等48小时再授予赏金,请不要
轻视

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.