Metropolis-Hastings集成-为什么我的策略不起作用?


16

假设我有一个函数,我想集成 当然,假设在端点处为零,没有爆炸,功能很好。一种方式,我已经和摆弄是使用大都市斯算法来生成列表的样品从分配比例,以,其缺少归一化常数 ,我将其称为,然后在这些上计算一些统计量: g(x)

g(x)dx.
g(x)X ñ = ∫ - X d X p X ˚F X X 1x1,x2,,xng(x)
N=g(x)dx
p(x)f(x)x
1ni=0nf(xi)f(x)p(x)dx.

由于,我可以用代替以从积分中消除,从而得到形式的表达式 因此,假设沿该区域积分为,我应该得到结果,我可以取倒数来获得我想要的答案。因此,我可以取样品的范围(以最有效地利用这些点),让我绘制的每个样品的U(x)= 1 / r。这样U(x)f x = U x / g x g 1p(x)=g(x)/Nf(x)=U(x)/g(x)gUx11/Nr=x最大值x最小值

1NU(x)g(x)g(x)dx=1NU(x)dx.
U(x)11/Nr=xmaxxminU x U(x)=1/rU(x)在我的样本不在的区域之外,结果为零,但在该区域积分为1。因此,如果现在我取期望值,我应该得到:
E[U(x)g(x)]=1N1ni=0nU(x)g(x).

我尝试在R中针对示例函数g(x)=ex2。在这种情况下,我不使用Metropolis-Hastings来生成样本,而是使用实际概率rnorm来生成样本(仅用于测试)。我没有完全得到想要的结果。基本上,我要计算的完整表达式为:

1n(xmaxxmin)i=0n1exi2.
在我的理论上,这应该评估为1/π。它接近了,但肯定不会以预期的方式收敛,我做错了吗?
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896

编辑CliffAB

我使用范围的原因只是为了轻松定义一个函数,该函数在我的点所在的区域内为非零值,但是在[-\ infty,\ infty]范围内积分为1。该函数的完整规范为: U(x)= \ begin {cases} \ frac {1} {x_ \ max-x_ \ min}&x_ \ max> x> x_ \ min \\ 0&\ text {否则。} \ end {cases} 我不必使用U(x)作为这种均匀密度。我本可以使用其他一些积分为1的密度,例如概率密度 P(x)= \ frac {1} {\ sqrt {\ pi}} e ^ {-x ^ 2}。 但是,这会使各个样本的求和变得微不足道,即 1[,]

U(x)={1xmaxxminxmax>x>xmin0otherwise.
U(x)1
P(x)=1πex2.
1ni=0nP(x)g(x)=1ni=0nexi2/πexi2=1ni=0n1π=1π.

我可以尝试将该技术用于其他积分为分布。但是,我仍然想知道为什么对于统一分发它不起作用。1


只快速浏览一下,所以我不确定您为什么决定使用range(x)。有条件的是它是有效的,效率极低!该大小的样本范围几乎是您可能获得的最不稳定的统计数据。
悬崖AB

@CliffAB使用该范围对我来说没有什么特别之处,除了在我的点所在的区间上定义均匀分布之外。查看修改。
Mike Flynn

1
我将在后面详细介绍。但是要考虑的事情是,好像x是一组统一RV,则当,范围。但是,如果x是一组非变性正常RV,则作为,。x 1 n 范围x n(x)1nrange(x)
Cliff AB 2015年

@CliffAB您可能是对的,我认为原因是积分的边界不固定,因此估计量的方差永远不会收敛...
Mike Flynn 2015年

Answers:


13

这是一个最有趣的问题,涉及基于基于相同密度的MCMC输出来近似密度的归一化常数的问题。(附带说明是,正确的假设是是可积的,无穷大为零是不够的。)ggg

我认为,与您的建议相关的与该主题最相关的条目是Gelfand和Dey(1994,JRSS B发表的一篇论文,作者开发了一种非常相似的方法来找到从。本文的一个结果是,对于任何概率密度 [这等于您的 ],使得 以下身份 显示来自的样本可以产生一个

Xg(x)dx
p(x)g(x)α(x)U(x)
{x;α(x)>0}{x;g(x)>0}
Xα(x)g(x)p(x)dx=Xα(x)Ndx=1N
p重要采样估计量对的 无偏评估 显然,估计器的性能(收敛速度,方差的存在,和TC。)不依赖于选择 [即使它的期望没有]。在贝叶斯框架中,Gelfand和Dey提倡的选择是采用,即先验密度。这导致 ,其中是似然函数,因为1/N
η^=1ni=1nα(xi)g(xi)xiiidp(x)
η^αα=π
α(x)g(x)=1(x)
(x)g(x)=π(x)(x)。不幸的是,所得到的估计 是调和平均估计器,也被称为最坏蒙特卡洛估计过由来自多伦多大学的Radford Neal。因此,它并不总是能很好地解决问题。甚至几乎没有。
N^=ni=1n1/(xi)

您使用样本范围以及该范围内的均匀性的想法与谐波均值问题相关:此估计量没有方差,仅是因为出现在分子中(我怀疑总是无限制的支持!),因此非常缓慢地收敛到归一化常数。例如,如果您多次重新运行代码,则在10次迭代后将获得非常不同的数值。这意味着您甚至无法相信答案的大小。exp { x(min(xi),max(xi))exp{x2}

解决此无限方差问题的通用方法是将使用更集中的密度,例如使用样本的四分位数,因为然后在此时间间隔内保持较低界限。q .25x iq .75x igα(q.25(xi),q.75(xi))g

在使代码适应这种新密度时,近似值更接近:1/π

ys = rnorm(1e6, 0, 1/sqrt(2))
r = quantile(ys,.75) - quantile(ys,.25)
yc=ys[(ys>quantile(ys,.25))&(ys<quantile(ys,.75))]
sum(sapply(yc, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.5649015. 1/sqrt(pi) = 0.5641896

我们在与Darren WraithJean-Michel Marin的两篇论文中详细讨论了这种方法。

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.