POISSON
函数中有一个定义:#NUM!
错误–发生以下情况之一:
x的给定值小于零;
给定的均值是
小于零。
但是我尝试在Excel 2013中执行此操作。它给了我不同的价值。这是我的示例:
=POISSON(0,-0.5,FALSE)
结果是:
1.648721271
代替
#NUM!
有什么想法吗?
最佳答案
从推测上讲,该错误可能是作为优化而产生的。 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
Excel仍然存在该错误(尽管程度较小,但仍然受到批评),因为其统计功能和测试的准确性。如此之多以至于“朋友不让朋友使用Excel进行统计”在统计学家中是一个相对著名的说法。有关讨论,请参见this。诸如POISSON.DIST
之类的虚线统计函数是专门为解决堆积如山的许多投诉而设计的。 POISSON
本身只是为了向后兼容而保留。奇怪的是,这个错误是如何从头开始彻底重写这些功能的。