泊松分布描述在给定时间间隔内发生K次事件的概率。

如果给定随机变量X服从泊松分布,那么X恰等于k次的公式为:

P(X=k) = λk * e / k!

参数解释:

  • λ: 给定时间内发送事件均值
  • k: 发送事件的次数
  • e: 常量,近似为 2.71828

泊松分布需要满足下列几个条件:

  • 发生事件次数可数
  • 给定时间内发送次数的均值已知
  • 每个结果是独立的
  • 发送概率与时间间隔成比例

泊松实验的一个例子是某医院每小时分娩的人数。例如,假设某家医院每小时平均分娩10例。这是一个泊松实验,因为它有以下四个性质:

实验中成功的次数是可以计算的-我们可以计算出生的次数。
在特定的时间间隔内发生的平均成功次数是已知的——已知平均每小时发生10次分娩。
每个结果都是独立的——一个母亲在给定的一小时内生产的概率是独立的
成功发生的概率与时间间隔的大小成正比——间隔的时间越长,出生的概率就越高。

下面解释Python计算泊松分布的几个示例。

生成泊松分布数据

使用poisson.rvs(mu, size) 函数生成服从泊松分布数据,给定均值和样本大小:

from scipy.stats import poisson

data = poisson.rvs(mu=3, size=10)
print(data)

# array([2, 2, 2, 0, 7, 2, 1, 2, 5, 5])

计算泊松分布概率

使用poisson.pmf(k, mu) 和 poisson.cdf(k, mu)函数计算泊松分布相关的概率.

等于某值得概率

某商店每天平均有三位顾客,某天恰好有5人的概率:

from scipy.stats import poisson


poisson.pmf(k=5, mu=3)

# 结果为 0.100819

小于某值的概率

某商店平均每天卖7个足球,那么某天卖出足球数量小于5的概率:

from scipy.stats import poisson

# 计算累积概率
poisson.cdf(k=4, mu=7)

# 结果为 0.172992

大于某值的概率

某商店平均每天卖15个罐头,则某天卖出罐头超过20听的概率:

from scipy.stats import poisson

# 1减去累积概率
1-poisson.cdf(k=20, mu=15)

# 结果为 0.082971

泊松分布直方图

可以通过matplotlib.pyplot画泊松分布直方图:

from scipy.stats import poisson
import matplotlib.pyplot as plt

# 生成10000样本大小的泊松分布数据集
x = poisson.rvs(mu=3, size=10000)

# 创建泊松分布直方图
plt.hist(x, density=True, edgecolor='black')
plt.show()

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐