POISSON
函数中有一个定义:
#NUM!
错误–出现以下任何一种情况
但是我尝试在Excel 2013中执行此操作。它给了我不同的价值。这是我的示例:
=POISSON(0,-0.5,FALSE)
结果是:1.648721271
而不是#NUM!
有什么想法吗?
答案 0 :(得分:1)
推测而言,该错误可能是作为优化而产生的。 Poisson(x,m,TRUE)
被定义为e^(-m)*(m^x)/x!
。当m^x
为浮点数时,一种计算m
的方法是e^(x*Ln(m))
。在电子表格中,您可以观察到
=POISSON(A1,A2,TRUE) - EXP(-A2)*EXP(A1*LN(A2))/FACT(A1)
只要A1,A2
在正确的域中,总是精确地计算为0(例如,如果计算使用其他方法,则可能不是0.0000000001)。
此外,EXP(-A2)*EXP(A1*LN(A2))/FACT(A1)
在应该失败时会失败,而在喂入#NUM!
时会给出0, -0.5
。我的猜测是,Excel程序员最初使用的公式在应该失败时会失败,让调用的函数在适当的时候引发错误。然后有人想到了只在EXP(-mean)
时返回x = 0
的想法(因为在这种情况下,当表达式完全定义时,表达式的其余部分为1 )。毕竟-当您知道某物为1时,为什么还要麻烦计算呢?
我感到惊讶的是,POISSON.DIST
中的bug仍然存在,但由于它的统计功能和测试的准确性,Excel一直(尽管程度较小)仍然受到批评。如此之多以至于“朋友不让朋友使用Excel进行统计”在统计学家中是一个相对著名的说法。有关讨论,请参见this。诸如POISSON.DIST
之类的虚线统计函数是专门为解决堆积如山的许多投诉而设计的。 POISSON
本身只是为了向后兼容而保留。奇怪的是,这个错误是如何从头开始彻底重写这些功能的。