Metropolis 抽样和无效状态

机器算法验证 马尔可夫链蒙特卡罗 蒙特卡洛 大都会黑斯廷斯
2022-04-08 06:34:13

我有一个关于蒙特卡洛集成与 Metropolis 采样的简短问题。我有一个连续的状态空间,但只有这个状态空间的某些部分是有效的。转移函数可能会建议移动到状态空间的无效部分,并且显然应该拒绝跳转。但是,我不确定是否应该计算这个无效样本;即如果取了 N 个样本并且一个样本被状态空间的无效部分拒绝,我应该在估计中除以 N-1。

谢谢

2个回答

从你的问题:

转移函数可能会建议移动到状态空间的无效部分,并且显然应该拒绝跳转。

跳跃不应该被拒绝

这是一篇关于立即拒绝错误跳转问题的精彩文章。结果,你的问题就消失了。

[复制我前段时间写的一篇博文:]

确实,人们普遍认为需要采取一些措施来抵消受限制的支持。但是,这样做没有数学上的理由!如果我们看一下 Metropolis-Hastings 接受概率 (复制自标签 wiki),带有,如果的支持之外,我们可以通过在原始支持之外定义因此,如果,这意味着建议的值被拒绝并且

ρ(xt,yt+1)=min(1,π(yt+1)q(xt|yt+1)/π(xt)q(yt+1|xt))
mcmc ytq(yt+1|xt)ytππ(y)=0π(yt+1)=0ρ(xt,yt+1)=0xt+1=xt

考虑下图。

target=function(x) (x>0)*(x<1)*dnorm(x,mean=4)
mcmc=rep(0.5,10^5)
for (t in 2:10^5){
prop=mcmc[t-1]+rnorm(1,.1)
if (runif(1)<target(prop)/target(mcmc[t-1]))
mcmc[t]=prop
else
mcmc[t]=mcmc[t-1]
}
hist(mcmc,prob=TRUE,col="wheat",border=FALSE,main="",xlab="")
curve(dnorm(x-4)/(pnorm(-3)-pnorm(-4)),add=TRUE)

即使用支持整个实线的高斯随机游走提议来针对截断的正态分布。然后算法正确收敛,如下面的拟合所示:

MCMC 样本的截断法线和拟合