在 R 包 MHadaptive 中实现了哪种自适应 Metropolis Hastings 算法?

机器算法验证 r 马尔可夫链蒙特卡罗 大都会黑斯廷斯
2022-04-07 19:33:32

有多个版本的自适应 Metropolis Hastings 算法。一种是在package的功能Metro_Hastings中实现,见这里那里列出的参考资料,Spiegelhalter 等人。(2002),不幸的是,据我所知,它不包含任何自适应算法的描述。但是,该算法在从我考虑的模型的后验分布中采样时表现非常好,这就是我想了解它的细节的原因。RMHadaptiveMetro_Hastings

我对算法进行了一些逆向工程。有人认识这种自适应 MH 算法吗?这就是它的作用:

q为目标密度。初始化θ0,i=0,Σ.

为了n迭代{i=1,...,n}做:

  1. 提出θ1N(θ1|θ0,i1,Σ).
  2. 接受θ1有概率A=min{1,q(θ1)/q(θ0,i)}. 如果接受,设置如果拒绝:θ0,i:=θ1θ0,i:=θ0,i1

如果,其中定义了一个向量,使得的任何元素(默认迭代的间距),并且没有元素(默认),做:i=jjj>xx=100yy=20j>zz=0.75n

  1. 选择(默认)。θ~={θ0k,...,θ0,i}k=0.5i
  2. 更新:其中是假设多元正态的方差协方差矩阵的最大似然估计量。Σ:=S(θ~)Sθ~

步骤 1 和 2 是标准 MH。发生的适应,并使用过去的更新为过去迭代的协方差矩阵。jjkΣ

1个回答

您的描述听起来像Haario 等人 (1999) 的自适应算法这个想法确实是使用固定数量的最近样本来更新提案分布的协方差矩阵。

请注意,Haario 等人 (1999) 中描述的算法表现良好,但不是遍历的。Haario 等人 (2001)描述了一种改进的遍历算法。想法是使用所有过去的样本来更新提议分布的协方差矩阵。