如果已知发生概率 P(X>0),则计算泊松分布中 λ 的更好方法
Better way to calculate λ in a Poisson distribution if the probability of occurrence P(X>0) is known
目前我正在使用以下功能,但我想知道是否有更有效的方法或简单的公式来完成此操作?
from scipy.stats import poisson
def calc_expected_value(event_proba):
x = 0.01
while round(1 - poisson.pmf(0, x), 2) != round(event_proba, 2):
x += 0.01
return x
P(X = 0) = exp(-lambda)
,因此 P(X > 0) = 1 - exp(-lambda)
。如果你称这个概率为event_proba
,那么
exp(-lambda) = 1 - event_proba
因此
lambda = -log(1 - event_proba)
当然,在实际的 Python 代码中,您应该避免使用名称 lambda
,因为它具有内置含义。
这是一个简单的公式:
from math import log
def calc_lambda(p_gt_0):
return -log(1.0 - p_gt_0)
这是由 P{X=0} = 1 - P{X>0} 推导出来的。
代入泊松概率的公式并求解以产生上面给出的实现。
目前我正在使用以下功能,但我想知道是否有更有效的方法或简单的公式来完成此操作?
from scipy.stats import poisson
def calc_expected_value(event_proba):
x = 0.01
while round(1 - poisson.pmf(0, x), 2) != round(event_proba, 2):
x += 0.01
return x
P(X = 0) = exp(-lambda)
,因此 P(X > 0) = 1 - exp(-lambda)
。如果你称这个概率为event_proba
,那么
exp(-lambda) = 1 - event_proba
因此
lambda = -log(1 - event_proba)
当然,在实际的 Python 代码中,您应该避免使用名称 lambda
,因为它具有内置含义。
这是一个简单的公式:
from math import log
def calc_lambda(p_gt_0):
return -log(1.0 - p_gt_0)
这是由 P{X=0} = 1 - P{X>0} 推导出来的。 代入泊松概率的公式并求解以产生上面给出的实现。