Почему функция POISSON не совместима в Microsoft Excel? - PullRequest
3 голосов
/ 01 апреля 2019

В функции POISSON есть определение:

#NUM! error - Происходит, если либо:

  • Заданное значение x меньше нуля;
  • Заданное значение среднего меньше нуля.

Но я пытаюсь сделать это в Excel 2013. Это дало мне другое значение.Вот мой пример:

=POISSON(0,-0.5,FALSE)

результат: 1.648721271 вместо #NUM!

Есть мысли?

1 Ответ

1 голос
/ 01 апреля 2019

Предположительно, ошибка могла возникнуть как оптимизация.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)

всегда оценивается точно в 0, когда A1,A2 находится в правильном домене (а не, например, 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 просто хранится для обратной совместимости.Странно, как эта ошибка просочилась через то, что должно было быть полностью переписано этими функциями с нуля.

...