泊松分布

如果我们知道某个单位长度的时间(或者空间)内,事件 a 平均发生 λ 次,λ 是一个常量,那么在这个单位时间(或者空间)内,事件 a 发生 x 次的概率 p(x) 服从泊松分布。

泊松分布适合于描述单位时间(或空间)内随机事件发生的次数,比如一天内中奖的次数的概率、一个月内某机器损坏的次数的概率、一分钟内110收到的呼叫次数的概率。
03.泊松分布 - 图1

泊松分布和二项分布的关系

如果单位时间(或者空间)内,事件 a 平均发生 λ 次,在这个单位时间(或者空间)内,连续重复进行了 n 次独立试验,每次独立试验事件 a 发生的概率为 p,那么 n 次独立试验重复发生的次数的平均数为:
E(x) = n*p = λ
p = λ/n

此时单位时间(或者空间)内,事件 a 发生 x 次的概率为:

03.泊松分布 - 图2

用 λ 来表示的话 p(x) 为:
03.泊松分布 - 图3

当 n 趋于无穷大的时候,此时的 p(x) 就是泊松分布
03.泊松分布 - 图4

  1. # 泊松分布
  2. df = pd.DataFrame({"mean": [], "x": [], "p_x": []})
  3. x = range(0, 16, 1)
  4. for i in range(7):
  5. mean = i # 单位时间内事件 a 平均发生的次数
  6. # p_x = list(
  7. # map(lambda item: mean ** item / (np.exp(mean) * np.math.factorial(item)), x))
  8. p_x = stats.poisson.pmf(x, mean)
  9. df = pd.concat([df, pd.DataFrame({"mean": [mean] * 16, "x": x, "p_x": p_x})])
  10. sns.pointplot(x="x", y="p_x", data=df, hue="mean", linewidth=0.2)
  11. plt.xticks(rotation=90)
  12. plt.show()

image.png