尝试将蒙特卡罗方法应用于此功能时遇到了一个大问题:
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)崩溃了!
我被封锁了,我不知道怎么继续......有什么建议吗? 非常感谢你!
答案 0 :(得分:1)
根据定义,正态分布总是产生负值的有限概率。那么你所测量的(时间)并没有严格地正态分布。
truncated normal distribution为每个不属于特定范围的值指定0的概率,但忽略0以下的值会修改分布的均值和方差。
答案 1 :(得分:0)
几条评论:
obviously, it has a normal distribution.
这丝毫不明显。可能更好的是使用Log Normal distribution。我强烈怀疑截断的正常不是你想要的。使用您的参数,我们得到的数字是结束。请注意,x=0
的概率相当高。
相反,您希望使用Log-Normal,指数或其他更合适的分布。您可以将真实分布中的moments与观察值进行匹配,或使用最大似然估算值。