📜  Python泊松分布(1)

📅  最后修改于: 2023-12-03 14:46:45.378000             🧑  作者: Mango

Python中的泊松分布

泊松分布是一种离散型概率分布,在Python中,可以使用scipy库来进行泊松分布的相关计算。

引入库
from scipy.stats import poisson
参数

泊松分布有两个参数:

  • $\lambda$:表示单位时间内某事件发生的次数的平均值(也就是期望值)。
  • $k$:表示你想要计算的某个时间段内事件发生了$k$次的概率。
计算概率密度函数

泊松分布的概率密度函数为:

$$P(X=k)=\frac{e^{-\lambda}\lambda^{k}}{k!}$$

其中,$P(X=k)$表示在一个时间段内,事件发生$k$次的概率。我们可以使用poisson.pmf(k, lambda_)来计算:

lambda_ = 3

# 计算 k=0 时的概率
k = 0
prob_0 = poisson.pmf(k, lambda_)

# 计算 k=1 时的概率
k = 1
prob_1 = poisson.pmf(k, lambda_)

print(f"当lambda={lambda_},事件发生0次的概率为{prob_0:.4f}")
print(f"当lambda={lambda_},事件发生1次的概率为{prob_1:.4f}")

输出:

当lambda=3,事件发生0次的概率为0.0498
当lambda=3,事件发生1次的概率为0.1494
计算累积分布函数

泊松分布的累积分布函数为:

$$P(X\leq k)=\sum_{i=0}^{k}\frac{e^{-\lambda}\lambda^{i}}{i!}$$

其中,$P(X\leq k)$表示在一个时间段内,事件发生$k$次及以下的概率。我们可以使用poisson.cdf(k, lambda_)来计算:

lambda_ = 3

# 计算 k=0 时的概率
k = 0
prob_0 = poisson.cdf(k, lambda_)

# 计算 k=1 时的概率
k = 1
prob_1 = poisson.cdf(k, lambda_)

print(f"当lambda={lambda_},事件发生0次及以下的概率为{prob_0:.4f}")
print(f"当lambda={lambda_},事件发生1次及以下的概率为{prob_1:.4f}")

输出:

当lambda=3,事件发生0次及以下的概率为0.0498
当lambda=3,事件发生1次及以下的概率为0.1992
计算反函数

泊松分布的反函数是指,给定概率$P(X\leq k)$,求出使得该概率成立的最大的$k$。我们可以使用poisson.ppf(q, lambda_)来计算:

lambda_ = 3

# 计算 P(X <= k) = 0.2 时,k 的取值
q = 0.2
k_20 = poisson.ppf(q, lambda_)

# 计算 P(X <= k) = 0.9 时,k 的取值
q = 0.9
k_90 = poisson.ppf(q, lambda_)

print(f"当lambda={lambda_},满足 P(X <= k) = 0.2 时,k 的取值为{k_20}")
print(f"当lambda={lambda_},满足 P(X <= k) = 0.9 时,k 的取值为{k_90}")

输出:

当lambda=3,满足 P(X <= k) = 0.2 时,k 的取值为2.0
当lambda=3,满足 P(X <= k) = 0.9 时,k 的取值为7.0
总结

以上是Python中泊松分布的计算方法。通过这些方法,我们可以方便地计算出在某个时间段内,事件发生$k$次的概率,或者根据给定的概率反推出事件发生的次数。