我正在尝试在我的代码中将泊松分布实现为lambda函数:
likelihood = lambda lamb: lamb**S / math.factorial(S) * numpy.exp(-lamb)
S的值为124。现在,编译器在我定义函数的行中向我返回以下错误:
OverflowError:(34,“数值结果超出范围”)
实现该lambda函数有什么错?
答案 0 :(得分:0)
您可能想以对数刻度工作;即对数可能性。在统计数据中这是很常见的,因为可能性通常很小,并且浮点数实际上只能降到〜1e-300。
我认为此功能应类似于:
from scipy.special import loggamma
def log_likelihood(lamb, S):
return lamb * S - loggamma(S + 1) - lamb