statistics - 我如何证明我的导出方程和蒙特卡罗模拟是等价的?

标签 statistics montecarlo correctness

我已经导出并实现了一个期望值的方程。 为了证明我的代码没有错误,我使用了蒙特卡洛 多次计算以证明其收敛于同一个 值作为我导出的方程。

既然我现在有了数据,我该如何可视化它? 这是正确的测试吗? 我可以衡量一下我对结果正确性的确定程度吗?

最佳答案

目前尚不清楚可视化数据的含义,但这里有一些想法。

如果您的蒙特卡罗模拟是正确的,那么您的数量的蒙特卡罗估计量只是样本的平均值。估计量的方差(平均值与“正确”值的距离)将与您采集的样本数量成反比:只要您采集的样本数量足够多,您就会任意接近正确答案。因此,使用中等数量的样本(如果是单变量,则 1000 个就足够了),然后查看平均值。如果这与您的理论预期不符,那么您的估计中的某个地方就有错误。

您还可以使用样本的直方图(如果它们是一维的话)。直方图中样本的分布应与您期望的理论分布相匹配。

如果您以了解期望的方式了解方差,则还可以查看样本方差(样本与期望之间的均方差),并检查其是否也匹配。

编辑:在答案中添加更“正式”的内容!

如果 M(x) 是 E[X] 的蒙特卡罗估计量,则 n -> inf, abs(M(x) - E[X]) -> 0。M(x) 的方差为与 n 成反比,但它到底是什么取决于 M 的估计量。您可以根据样本的均值和方差为此构建一个特定的测试,以查看您所做的事情是否有意义。每 100 次迭代,您可以计算样本的平均值,并计算其与理论 E[X] 之间的差异。如果这个值减少,那么你可能就没有错误了。如果不是,则说明您的理论估计或蒙特卡罗估计存在问题。

关于statistics - 我如何证明我的导出方程和蒙特卡罗模拟是等价的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683510/

相关文章:

Excel给出了奇怪的R平方计算?

math - 您的伪随机数生成器 (PRNG) 是否不够随机?

algorithm - 如何从随机点识别椭圆/椭圆体? IN加权平均值?

algorithm - 稳定婚姻算法证明

Android 市场统计 API?

java - 在 Java lambda 中使用两个流来计算协方差

postgresql - PostgreSQL 中的 Beta 和 lognorm 分布?

python - argparse 在代码中的位置

algorithm - 通过归纳法证明算法的正确性

haskell - 如何从 Haskell 中的复杂或复合分布中采样?