蒙特卡洛方法崩溃?

时间:2013-03-11 08:51:40

标签: montecarlo

尝试将蒙特卡罗方法应用于此功能时遇到了一个大问题:

D=log(T)

其中T是一个测量时间,T>0,显然,它具有正常分布。

我在实验中有10个T的测量值,所以我计算:

m_T (mean of T)  = 3.0 seconds
s_T (standard deviation of T)= 1.5 seconds

并且,使用此参数,我模拟T,然后是D:

T = Normal(m_T, s_T)
D=log(Normal(m_T, s_T)

但在D程序中,程序返回错误。当我进行清除时,我发现错误是因为Normal (m_T, s_T)有一些NEGATIVE值,所以log(NEGATIVE)崩溃了!

我被封锁了,我不知道怎么继续......有什么建议吗? 非常感谢你!

2 个答案:

答案 0 :(得分:1)

根据定义,正态分布总是产生负值的有限概率。那么你所测量的(时间)并没有严格地正态分布。

truncated normal distribution为每个不属于特定范围的值指定0的概率,但忽略0以下的值会修改分布的均值和方差。

答案 1 :(得分:0)

几条评论:

  1. obviously, it has a normal distribution.这丝毫不明显。可能更好的是使用Log Normal distribution。我强烈怀疑截断的正常不是你想要的。使用您的参数,我们得到的数字是结束。请注意,x=0的概率相当高。

  2. 相反,您希望使用Log-Normal,指数或其他更合适的分布。您可以将真实分布中的moments与观察值进行匹配,或使用最大似然估算值。

  3. enter image description here