泊松分布实现中的溢出错误

时间:2018-11-14 21:22:46

标签: python lambda overflow

我正在尝试在我的代码中将泊松分布实现为lambda函数:

likelihood = lambda lamb: lamb**S / math.factorial(S) * numpy.exp(-lamb)

S的值为124。现在,编译器在我定义函数的行中向我返回以下错误:

OverflowError:(34,“数值结果超出范围”)

实现该lambda函数有什么错?

1 个答案:

答案 0 :(得分:0)

您可能想以对数刻度工作;即对数可能性。在统计数据中这是很常见的,因为可能性通常很小,并且浮点数实际上只能降到〜1e-300。

我认为此功能应类似于:

from scipy.special import loggamma

def log_likelihood(lamb, S):
  return lamb * S - loggamma(S + 1) - lamb