泊松分布的基本概念
泊松分布适用于描述单位时间(空间)上随机事件发生次数,记作π(λ)或P(λ),λ是单位时间(空间)事件发生的平均次数。
如:
一小时内到达加油站的车辆数
单位面积上细菌的分布
分布律:
π
(
X
=
k
)
=
λ
k
⋅
e
−
λ
k
!
(
λ
>
0
,
k
=
0
,
1
,
2
,
.
.
.
)
π(X=k) = \frac{λ^k·e^{-λ}}{k!} \quad (λ>0, k=0,1,2,...)
π(X=k)=k!λk⋅e−λ(λ>0,k=0,1,2,...)
理解
基础知识
二项分布描述的是某一批伯努利实验①,事件发生一定次数的概率。
假设,进行n次实验,事件发生k次,P为事件A发生的概率。
所以二项分布的分布律为:
①伯努利实验:在实验中事件A要么发生,要么不发生
P
(
X
=
k
)
=
C
n
k
⋅
P
k
⋅
(
1
−
P
)
n
−
k
P(X=k)=C_n^k·P^k·(1-P)^{n-k}
P(X=k)=Cnk⋅Pk⋅(1−P)n−k
也就是n次实验中挑出k次,这k次A都发生了(Pk),剩余的n-k次实验,事件A都不发生((1-P)(n-k))。
泊松分布推导
假设一家奶茶店每一小时能够卖出5杯奶茶,我们希望知道这家奶茶店在一小时卖出10杯奶茶的概率,要怎么办呢?
观察时间轴,我们可以看出:卖出奶茶的时间间隔不固定。
我们希望通过类似二项分布的方法来求得这个概率(我们已经有了二项分布的分布律),因此时间间隔就不能简单的设为10分钟、10秒钟这样。
二项分布讲究的是一次实验中,事件是否发生
如果时间间隔定位10分钟,在这10分钟内卖出了2杯奶茶,那么事件应该定义为卖出了2杯奶茶,
但如果卖出了三杯呢?
所以我们希望简化事件,将事件定义为:是否卖出了奶茶
这里运用极限的思想,将时间分成n份,n→∞,这里假设这n段时间中,有k段是卖出了奶茶的(卖出了k杯奶茶)。
设X
= {卖出奶茶的数量},P
:每单位时间(1/n小时)卖出奶茶的概率为
λ
:一小时内卖出的奶茶数量 = np
P
(
X
=
k
)
=
C
n
k
⋅
P
k
⋅
(
1
−
P
)
n
−
k
=
A
n
k
k
!
⋅
P
k
⋅
(
1
−
P
)
n
−
k
=
n
(
n
−
1
)
.
.
.
(
n
−
k
+
1
)
k
!
⋅
(
λ
n
)
k
⋅
(
1
−
λ
n
)
n
−
k
=
1
(
1
−
1
n
)
.
.
.
(
1
−
k
−
1
n
)
k
!
⋅
n
k
⋅
(
λ
n
)
k
⋅
(
1
−
λ
n
)
n
−
k
=
λ
k
k
!
⋅
1
(
1
−
1
n
)
.
.
.
(
1
−
k
−
1
n
)
⋅
(
1
−
λ
n
)
n
⋅
(
1
−
λ
n
)
−
k
\begin{aligned} P(X=k) &=C_n^k·P^k·(1-P)^{n-k} \\ &= \frac{A_n^k}{k!}·P^k·(1-P)^{n-k} \\ &= \quad \frac{n(n-1)...(n-k+1)}{k!}·(\frac{λ}{n})^k·(1-\frac{λ}{n})^{n-k} \\ &= \frac{1(1-\frac{1}{n})...(1-\frac{k-1}{n})}{k!·n^k}·(\frac{λ}{n})^k·(1-\frac{λ}{n})^{n-k} \\ &= \frac{λ^k}{k!}·1(1-\frac{1}{n})...(1-\frac{k-1}{n})·(1-\frac{λ}{n})^n·(1-\frac{λ}{n})^{-k} \\ \end{aligned}
P(X=k)=Cnk⋅Pk⋅(1−P)n−k=k!Ank⋅Pk⋅(1−P)n−k=k!n(n−1)...(n−k+1)⋅(nλ)k⋅(1−nλ)n−k=k!⋅nk1(1−n1)...(1−nk−1)⋅(nλ)k⋅(1−nλ)n−k=k!λk⋅1(1−n1)...(1−nk−1)⋅(1−nλ)n⋅(1−nλ)−k
其中设计n的有三部分:
-
这个大家应该没有问题,n趋于无穷时减数都为0
1 ( 1 − 1 n ) . . . ( 1 − k − 1 n ) = 1 1(1-\frac{1}{n})...(1-\frac{k-1}{n}) = 1 1(1−n1)...(1−nk−1)=1 -
这个应该也没有问题,是和1.同样的道理
( 1 − λ n ) − k (1-\frac{λ}{n})^{-k} (1−nλ)−k -
这里需要用到洛必达法则
l i m n → ∞ ( 1 − λ n ) n = e n ⋅ l n ( 1 − λ n ) = e l i m n → ∞ l n ( 1 − λ n ) 1 n 当 n 趋 于 无 穷 时 , 分 子 分 母 都 为 0 , 同 时 求 导 = e l i m n → ∞ 1 1 − λ n ⋅ − λ ⋅ − 1 n 2 − 1 n 2 = e l i m n → ∞ 1 1 − λ n ⋅ − λ 当 n 趋 于 无 穷 时 : 1 − λ n = 1 = e − λ \begin{aligned} lim_{n→∞}(1-\frac{λ}{n})^n &= e^{n·ln(1-\frac{λ}{n})} \\ &= e^{lim_{n→∞}\frac{ln(1-\frac{λ}{n})}{\frac{1}{n}}} \\ 当n趋于无穷时,分子分母都为0,同时求导 &=e^{lim_{n→∞}\frac{\frac{1}{1-\frac{λ}{n}}·-λ·-\frac{1}{n^2}}{-\frac{1}{n^2}}} \\ &= e^{lim_{n→∞}\frac{1}{1-\frac{λ}{n}}·-λ } \\ 当n趋于无穷时:1-\frac{λ}{n} = 1 \\ &= e^{-λ} \end{aligned} limn→∞(1−nλ)n当n趋于无穷时,分子分母都为0,同时求导当n趋于无穷时:1−nλ=1=en⋅ln(1−nλ)=elimn→∞n1ln(1−nλ)=elimn→∞−n211−nλ1⋅−λ⋅−n21=elimn→∞1−nλ1⋅−λ=e−λ
所以
P ( X = k ) l i m n → ∞ = λ k ⋅ e − λ k ! P(X=k)_{lim_{n→∞}} = \frac{λ^k·e^{-λ}}{k!} P(X=k)limn→∞=k!λk⋅e−λ
那么1小时卖10杯奶茶的概率为
P ( X = 10 ) = 5 10 ⋅ e − 5 10 ! P(X=10) = \frac{5^{10}·e^{-5}}{10!} P(X=10)=10!510⋅e−5
奶茶销量对应的分布律
可见已知一小时能卖5杯奶茶的情况下,进行概率求解:
- 卖0~5杯的可能性是递增的,
- 卖6~10杯的可能性是递减的,
这也非常符合我们的直觉。
代码
import matplotlib.pyplot as plt
import math
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字体
def calc_factorial(n):
factorial = [1]
for i in range(1, n + 1):
factorial.append(i * factorial[i - 1])
return factorial
def get_distribution_law(l, k, factor):
return pow(l, k) * math.exp(-1 * l) / factor[k]
x = []
y = []
factorial = calc_factorial(11)
for i in range(11):
x.append(i)
for i in x:
y.append(get_distribution_law(5, i, factorial))
plt.xlabel('奶茶销量')
plt.ylabel('概率')
plt.plot(x, y)
plt.show()
结论
因此在实验次数n足够大时,且P较小时,能够采用这种近似的方法。