我已经推导并实现了期望值的等式。 为了证明我的代码没有错误,我已经使用了Monte-Carlo 计算多次以表明它收敛于同一个 值作为我推导出的等式。
由于我现在有数据,我怎么能想象这个? 这甚至是正确的测试吗? 我可以给出一个衡量结果是否正确的方法吗?
答案 0 :(得分:2)
通过可视化数据并不清楚你的意思,但这里有一些想法。
如果您的蒙特卡罗模拟是正确的,那么您的数量的蒙特卡罗估算器就是样本的平均值。估算器的方差(与平均值的“正确”值相差多远)将与您采取的样本数成反比:只要您采取足够的,您就会随意接近正确的答案。因此,使用一个温和的(如果它是单变量的1000就足够了)样本数量,并查看平均值。如果这与您的理论预期不符,那么您在某个估算值中会出现错误。
您也可以使用样本的直方图,如果它们是一维的话。直方图中样本的分布应与您期望的理论分布相匹配。
如果您以与预期相同的方式知道方差,您还可以查看样本方差(样本与期望之间的均方差),并检查其是否匹配。
编辑:在答案中加入更“正式”的东西!
如果M(x)是E [X]的蒙特卡罗估计,那么n - > inf,abs(M(x)-E [X]) - > 0.M(x)的方差与n成反比,但究竟是什么取决于M是的估计量。您可以根据样本的均值和方差为此构建一个特定的测试,以确定您所做的事情是有意义的。每100次迭代,您可以计算样本的平均值,并将其与理论E [X]之间的差值进行计算。如果这个减少,你可能没有错误。如果没有,您在理论估计或蒙特卡罗估算中都会遇到问题。
答案 1 :(得分:1)
为什么不做一个simple t-test?根据你的理论方程,你得到真正的均值mu_0
,你的模拟器就是mu_1
。请注意,我们无法计算mu_1
,我们只能使用均值/平均值来估算它。所以我们的假设是:
H_0: mu_0 = mu_1 and H_1: mu_0 does not equal mu_1
测试统计数据是通常的one-sample test统计数据,即
T = (mu_0 - x)/(s/sqrt(n))
其中
mu_0
是等式中的值x
是模拟器的平均值s
是标准偏差n
是用于计算平均值的值的数量。在你的情况下,n
会很大,所以这相当于普通测试。当H_0
大于/小于(-3,3)时,我们会拒绝T
。这相当于p值<1。 0.01。
几条评论:
p-value/N
,其中N
是您正在运行的测试数。n=....
T
大于/小于(-3,3)时,只是来自正态分布。