蒙特卡罗分析所需的模拟次数

机器算法验证 标准差 蒙特卡洛 统计能力
2022-03-24 02:41:04

我的问题是关于蒙特卡洛分析方法所需的模拟次数。据我所知,任何允许的百分比误差(例如 5)所需的模拟次数是 E

n={100zcstd(x)Emean(x)}2,

其中是结果采样的标准偏差,是置信水平系数(例如,对于 95%,它是 1.96)。因此,通过这种方式,可以检查次模拟的结果均值和标准偏差是否代表具有 95% 置信水平的实际均值和标准偏差。std(x)zcn

在我的例子中,我运行了 7500 次模拟,并计算了 7500 次模拟中每组 100 次采样的移动均值和标准差。我获得的所需模拟次数始终小于 100,但与整个结果的均值和标准差相比,平均值和标准差的百分比误差并不总是小于 5%。在大多数情况下,均值的百分比误差小于 5%,但标准的误差高达 30%。

在不知道实际平均值和标准的情况下确定所需模拟数量的最佳方法是什么(在我的情况下,模拟的结果是正态分布的)?

提前感谢您的帮助。


为了了解迭代无限次运行时模拟结果的分布情况:我决定在 n 次模拟后不使用结果均值和方差,而是决定找到结果分布的拟合函数,但这里 n 必须填写允许的 % 错误。我认为通过这种方式,我可以在与 97.5% 相关的累积分布函数上找到更正确的结果。因为当我比较 400 和 7000 模拟的结果时,两个采样的分布拟合函数看起来彼此相似,只有第二个曲线更平滑。此外,因此 MATLAB/Simulink 中的模型是非线性的,虽然生成的输入参数是正态分布的,但模拟的结果直方图不正常,因为我使用了“广义极值分布”,在 MATLAB 中被命名为“gev”。但是,我仍然不确定这种方法,感谢您提前提供任何命令

1个回答

我通常会进行收敛性研究,并确定所需的模拟次数,然后在后续模拟中使用这个数字。如果错误大于所选数字建议的值,我也会发出警告。

确定所需模拟次数的典型方法是计算 N 路径的模拟方差,则标准误差为,请参见Peter Jackel 的“Monte Carlo Methods in Finance”中关于 MC 误差估计的部分,也是Sobol 的小书中的“评估定积分”一章σ^N2σ^NN

或者,您可以计算每个模拟的误差,并在超出某个阈值或达到最大路径数时停止,该数字再次由收敛性研究确定。