不能使用蒙特卡洛方法

机器算法验证 方差 期望值 蒙特卡洛 不可缺少的
2022-04-10 16:32:36

这是笔记中的一个例子 在此处输入图像描述

我不明白为什么我们应该首先考虑E(x)Var(x)

2个回答

编辑:我强烈建议你买一本新书来学习,因为这本书看起来很垃圾。首先,有一个严重的错字:估计的积分应该是,正如在所提供的解释中可以清楚地看到的那样。其次,期望不是无限的,它根本不存在,就像在柯西随机变量的情况下一样。xf(x)dx

在其最基本的形式中,MC 积分抽取随机样本使得:xi

(ba)N[g(x1)++g(xN)]abg(x)dx.

这里被绘制在中,例如作为均匀分布。当区间无限大时,我们可以将其截断为有限区间并依靠尾积分较小。最后一句翻译为xi[a,b]ag(x)dx+bg(x)dx<

请注意,上面的表达式恰好是其中来自因此,您需要期望是有限的。(ba)E[g(X)]X[a,b]

当期望存在但方差不存在时,没有很好的方法在积分的 MC 估计上放置误差线。

因此,在您的情况下,和上述方法失败,因为的尾积分不是有限的。g(x)=xf(x)xf(x)

就您所说的蒙特卡洛积分而言,可能需要对这个问题提出警告。

您想使用 Monte Carlo 来估计,我们知道这个量是 1。一种方法是找到这样的 pdf g您可以从中采样,然后f(x)dxg(x)g

f(x)=f(x)g(x)g(x)dx=Eg[f(x)g(x)].

所以你可以 ,个数字,然后计算Ngx1,,xN

1Ni=1Nf(xi)g(xi)f(x).

因此,您对的选择将导致不同的估计量。@Alex R. 在他们的回答中使用了均匀分布 pdf g

g(x)=1baIa<x<b.

但是,在这种情况下,您是从整条实线的均匀分布中采样,并且这种分布不存在,因此不能是均匀分布的 pdf。g

的蒙特卡洛估计在这里,我使用作为的 pdf ,其中是方差。f(x)gN(0,100)100

set.seed(1)
N <- 1e4
f <- function(x)
{
  y <- ifelse(abs(x) > 4, 1/x^2, 1/16)
  return(y)
}
# Draws from g
prop <- rnorm(N, 0, 10)
#Evaluate g(x)
g_prop <- dnorm(prop, 0, 10)
#Evaluate f(x)
f_prop <- f(prop)

mc_est <- sum(f_prop/g_prop)/N
mc_est
[1] 0.9502994

我可能可以使用更好的来获得更好的估计,但看起来蒙特卡洛积分是可能的。也许问题想说“......估计的值”。在这种情况下,蒙特卡罗是不可能的,因为您要估计的数量不存在。gxf(x)dx