Numpy二项分布和泊松分布

文章目录

    • 二项分布
    • 泊松分布

函数概率密度函数(PDF)备注
binomial(n, p) P ( k ) = ( n k ) p k ( 1 − p ) n − k P(k) = \binom{n}{k}p^k(1-p)^{n-k} P(k)=(kn)pk(1p)nk二项分布
poisson([lam]) f ( k ) = λ k e − λ k ! f(k)=\frac{\lambda^ke^{-\lambda}}{k!} f(k)=k!λkeλ泊松分布

二项分布

在我的印象中,二项分布貌似是高中学到的第一个分布,就算不是第一个,也是第一批。所以从理解上来说是不存在困难的,在 N N N次独立重复的伯努利试验中,设A在每次实验中发生的概率均为 p p p。则 N N N次试验后A发生 k k k次的概率分布,就是二项分布,记作 X ∼ B ( n , p ) X\sim B(n,p) XB(n,p),则

P { X = k } = ( n k ) p k ( 1 − p ) n − k P\{X=k\}=\binom{n}{k}p^k(1-p)^{n-k} P{X=k}=(kn)pk(1p)nk

import numpy as np
from numpy.random import binomial
import matplotlib.pyplot as pltfig = plt.figure()
ps = [0.2, 0.5, 0.7]
for i in range(3):ax = fig.add_subplot(1,3,1+i)ax.set_title(f"p={ps[i]}")for n in [50,100,200]:xs = binomial(n, ps[i], size=10000)ax.hist(xs, bins=100, alpha=0.6, label=f"n={n}")plt.legend()plt.show()

效果如图所示

在这里插入图片描述

可见随着p越来越大, X X X发生的概率越来越趋近于 n n n

泊松分布

如果假定在有限时间 ( 0 , 1 ) (0,1) (0,1)内进行 n n n次伯努利实验,那么每次伯努利实验所占用的时间为 1 n \frac{1}{n} n1,按照自然规律,一件事情肯定是时间越长越容易发生,所以在加上有限时间这个限定之后,一件事情发生的概率必然与 1 n \frac{1}{n} n1成正比,将其记作 λ n \frac\lambda n nλ,则二项分布变为

P { X = k } = ( n k ) ( λ n ) k ( 1 − λ n ) n − k P\{X=k\}=\binom{n}{k}(\frac{\lambda}{n})^k(1-\frac{\lambda}{n})^{n-k} P{X=k}=(kn)(nλ)k(1nλ)nk

如果这个时间差 1 n \frac1n n1非常小,以至于伯努利事件变得近似连续,则有

lim ⁡ n → ∞ P { X = k } = lim ⁡ n → ∞ ( n k ) ( λ n ) k ( 1 − λ n ) n − k \lim_{n\to\infty} P\{X=k\}=\lim_{n\to\infty}\binom{n}{k}(\frac{\lambda}{n})^k(1-\frac{\lambda}{n})^{n-k} nlimP{X=k}=nlim(kn)(nλ)k(1nλ)nk

其中

lim ⁡ n → ∞ ( n k ) ( λ n ) k = λ k k ! \lim_{n\to\infty}\binom{n}{k}(\frac{\lambda}{n})^k=\frac{\lambda^k}{k!} nlim(kn)(nλ)k=k!λk

而后面有一项更是传说中的重要极限

lim ⁡ n → ∞ ( 1 − λ n ) n = e − λ \lim_{n\to\infty}(1-\frac{\lambda}{n})^n=e^{-\lambda} nlim(1nλ)n=eλ

综上就得到了一个新的分布

P ( x = k ) = e − λ λ k k ! P(x=k)=\frac{e^{-\lambda}\lambda^k}{k!} P(x=k)=k!eλλk

此即泊松分布,表示某个随机事件在连续时间内发生的概率,其中 λ n \frac\lambda n nλ表示单位时间内某件事发生的概率。

from numpy.random import poissonfor lam in [5, 10, 25]:xs = poisson(lam, size=10000)plt.hist(xs, 50, range=(0,50), alpha=0.6,label=f"lambda={lam}")plt.legend()
plt.show()

效果为

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部