计算所需模拟的数量

机器算法验证 统计学意义 实验设计 模拟
2022-04-12 14:48:39

首先,我必须为我的问题的任何不正确的命名或分类道歉,因为我是电气工程师而不是数学家。

我有一个模拟,它为给定数量的输入参数输出一个输出值。由于模拟非常复杂,我不知道输入和输出之间的统计联系。我可以使用不同的种子运行模拟,为相同的输入产生不同的输出(这取决于一些随机数)。

如何选择必须使用相同输入但不同种子运行的模拟数量,以确保获得显着结果?

也许进行 10 次模拟,计算偏差,通过这个偏差我可以计算出所需模拟的实际数量?

Edit1:更多信息:模拟是交通模拟。我有输入参数(比如 70% 的汽车是小型货车,或者 60% 的路口由红绿灯控制)。我有输出值(油耗)。一些内部决策取决于随机数(当红绿灯变绿时,要走哪条路线……)。

我想知道我必须为 PRNG 选择多少种不同的种子,以使输出至少有点“确定”。

Edit2:一些更一般的信息:你知道我的设置和输出(油耗)。现在我想检查一下,油耗如何取决于城市中小型货车的数量。所以我把这个数字从 0% 改为 100%。因为模拟中有一些随机部分,所以您不会得到一条漂亮的曲线,而是一条带有一些异常值的曲线。所以我想:好吧,用不同的种子运行 5 次,取所有 5 次的平均值。瞧,我得到了一条平滑的曲线。

这个数字 5 只是我猜的。它在图中看起来不错,但没有数学背景。但也许你们中的一些人可以帮助我解决这个问题。谢谢!

3个回答

我试图总结你的所有答案,以便为所有重要的事情提供一个单一的位置。

计算所需模拟次数的步骤:

  1. 运行模拟我大多数时候都看到现在你应该有一个向量,其结果为其中R0R0=1000x0length(x0)=R0

  2. 计算平均值和标准偏差x¯0s0

  3. 指定允许的误差水平和你愿意接受的不确定性通常你选择ϵαϵ=α=0.05%

  4. 使用此等式获得所需的模拟次数: ,其中标准正态分布R(Z1(α/2)s0ϵx¯0)2Z1(α/2)1(α/2)

  5. [使用 student-t 分布而不是小的正态分布]R0

我希望这将帮助所有寻求答案的人。

这个问题比你想象的更难回答。它取决于输入、输出和输出所需的精度。要做的一件事是在当前数字上添加模拟,如果结果似乎没有太大变化,则可能有足够的收敛性。如果不继续,直到你收敛。这假设随着输入分布变得具有代表性,输出分布将得到很好的表示,或者如果输出是估计值,它将接近收敛到其预期值。最简单的情况是输出是一个二项式比例的单一比例。那么输出的方差的方差以为界,其中10014nn是模拟次数。然后你可以取 n 足够大,使估计量的方差尽可能小。这似乎是一种不寻常的情况。但是在比较估计技术时会出现很多。例如,我进行了模拟来比较引导置信区间方法。为了查看实际置信水平是否接近假设的水平,我们模拟了从特定总体分布中抽样并计算区间包含真实参数的时间比例。我们可能希望估计的标准偏差小于这是可以实现的,因为标准差是方差的平方根并且小于所以如果我们取0.00112nn>4(0.001)2

Powerbar,这个答案是为了解决您的最后一条评论。也许您可以将您的模拟视为将燃料消耗模型表示为道路上小型货车百分比加上随机噪声分量的函数。因此,每次运行模拟时,由于加性噪声分量,您会得到曲线略微失真的图像。每个模拟都会以各种百分比的小型货车为您提供模拟函数的值 + 一个随机分量。如果模拟是独立的并且随机分量是独立的(一个非常合理的假设),那么平均每个 % 小型货车的值将改善“实际”燃料消耗值的估计值,因为平均值将噪声的方差减少了一个因子每个点 1/n。在您的情况下,选择 5 会将其减少 1/5 倍。标准偏差减少了 1/sqrt(5) 或 1/2.236 倍。因此,对于平均数据,曲线的变化要小 2.236 倍。如果您使用 3 或 4,它也会有所帮助,但没有那么多。对于大于 5 的 n 会更有帮助,但可能不是必需的,因为您的眼睛看到了令人满意的平滑度。