概率的蒙特卡罗估计

机器算法验证 模拟 蒙特卡洛
2022-03-19 09:44:06

我会很感激一些关于如何使用蒙特卡罗来估计概率的建议。

一般来说,我遇到的问题涉及运行实验并计算输出频率(取决于随机输入),然后使用相对频率来估计输出的概率。但是,起始条件也是随机生成的。

所以我反复这样做:

  1. 根据设定的规则随机生成起始条件,
  2. 随机生成输入,
  3. 记录输出。

我的问题是:

  1. 这是一个合理的方法吗?
  2. 如何估计概率估计的误差?

任何帮助表示赞赏;我是这种类型的新手!

1个回答

我认为这是一个合理的方法。困难通常是如何选择试验次数(这会影响模拟时间)。

如果您进行次试验,其中给出“阳性”结果,您可以将阳性结果的概率估计为其相对频率,nNnp

p^=N/n.

该估计量是无偏的并且具有均方误差或方差,

E[(p^p)2]=E[(N/np)2]=p(1p)n,

从注意到是具有参数的二项式随机变量如下。均方根 (RMS) 误差或标准偏差只是其平方根。Nnp

为了评估 RMS 误差值是否可接受,应将该值与真实进行比较。例如,的 RMS可能是可接受的,但不能接受(误差将是真实值的十倍)。通常的方法是通过将误差除以来标准化误差。所以归一化的 RMS 误差是p0.01p=0.1p=0.001p

E[(p^p)2]p=1pnp.

对于 small ,这可以近似为如您所见,要保持一定的归一化误差,您需要模拟成反比的次数但是是未知的,所以很难知道你需要1/nppnppn

一种解决方案是使用顺序估计,其中不是预先固定的,而是根据一定的停止规则自适应地选择,以保证估计误差不超过预定义的水平。一种标准的顺序方法是 逆二项式采样(也称为负二项式蒙特卡罗),包括以下内容:继续模拟,直到达到目标数量个正结果。所以现在是固定的,试验次数成为随机变量。nNNn

这种方法的优点在于,通过选择目标,您可以控制将要达到的归一化误差水平,而与未知的也就是说,每个对应一个归一化误差的保证值。无论您将误差定义为mean-square-errormean-absolute-error还是置信区间,这都有效。以下论文中给出了每种情况下的程序描述(请耐心等待我的自我参考):NpN

  • 归一化 RMS 误差:http ://arxiv.org/abs/0809.4047 (或参见 IEEE Communications Letters,2009 年 11 月)
  • 归一化平均绝对误差: http: //oa.upm.es/3222/(或参见 IEEE Transactions on Communications,2008 年 11 月)
  • 标准化置信区间:http ://arxiv.org/abs/0809.2402 (或参见 Bernoulli Journal,2010 年 5 月)