1. binom分布(二项分布)
scipy.stats包中的binom类对象是表示二项分布的。常用的四个函数说明见下表。
函数名 | 参数 | 功能 |
---|---|---|
rvs(n, p, size) | n,p:分布参数,size:产生的随机数个数,缺省值为1 | 产生size个随机数 |
pmf(k, n, p) | k:随机变量取值,n,p:与上同 | 概率质量函数(分布律) P ( X = k ) P(X=k) P(X=k) |
cdf(k, n, p) | k:分布函数自变量,n,p:与上同 | 累积概率函数(分布函数) F ( k ) F(k) F(k) |
sf(k, n, p) | k:分布函数自变量,n,p:与上同 | 残存函数 1 − F ( k ) 1-F(k) 1−F(k) |
例1 已知某种疾病的发病率为0.001,某单位共有5000人,问该单位患有这种疾病的人数不超过5人的概率。
解:一个人得病的概率
p
=
0.001
p=0.001
p=0.001,5000人接受检测,相当于做了5000次重复独立试验。于是,5000人中的得病人数
X
X
X服从参数为
n
=
5000
n=5000
n=5000,
p
=
0.001
p=0.001
p=0.001的二项分布。即
X
X
X~
b
(
5000
,
0.001
)
b(5000, 0.001)
b(5000,0.001)。5000人中患病人数不超过5人的概率
P
(
X
≤
5
)
=
F
(
5
)
=
∑
k
=
0
5
C
5000
k
⋅
0.00
1
k
⋅
0.99
9
5000
−
k
=
0.616.
P(X\leq 5)=F(5)=\sum\limits_{k=0}^5C_{5000}^k\cdot0.001^k\cdot0.999^{5000-k}=0.616.
P(X≤5)=F(5)=k=0∑5C5000k⋅0.001k⋅0.9995000−k=0.616.
下列代码验证这一计算结果。
from scipy.stats import binom #导入binom
prob=binom.cdf(k=5, n=5000, p=0.001) #计算P(X<=5)
print('P(X<=5)=F(5)=%.3f'%prob) #输出P(X<=5)
第2行调用binom(第1行导入)的cdf函数,计算 P ( X ≤ 5 ) = F ( 5 ) P(X\leq5)=F(5) P(X≤5)=F(5)。运行程序,输出
P(X<=5)=F(5)=0.616
2. poisson分布(泊松分布)
scipy.stats包中的poisson类对象表示泊松分布。常用的四个函数说明见下表。
函数名 | 参数 | 功能 |
---|---|---|
rvs(mu, size) | mu:分布参数 λ \lambda λ,size:产生的随机数个数,缺省值为1 | 产生size个随机数 |
pmf(k, mu) | k:随机变量取值,mu:与上同 | 概率质量函数(分布律) P ( X = k ) P(X=k) P(X=k) |
cdf(k, mu) | k:分布函数自变量,mu:与上同 | 累积概率函数(分布函数) F ( k ) F(k) F(k) |
sf(k, mu) | k:函数自变量,mu:与上同 | 残存函数 1 − F ( k ) 1-F(k) 1−F(k) |
例2 派出所在长度为 t t t的时间间隔(单位:小时)内收到紧急呼救的次数 X X X服从参数为 t / 2 t/2 t/2的泊松分布,而与事件间隔的起点无关。
- 求某一天中午12时至下午3时未收到紧急呼救的概率;
- 求某一天中午12时至下午5时至少收到1次紧急呼救的概率。
解:(1)中午12时至下午3时的间隔
t
=
3
t=3
t=3。按题意
λ
=
t
/
2
=
1.5
\lambda=t/2=1.5
λ=t/2=1.5,在此期间收到紧急求救次数
X
X
X~
π
(
1.5
)
\pi(1.5)
π(1.5)。未收到紧急呼救为
X
=
0
X=0
X=0,故
P
(
X
=
0
)
=
e
−
1.5
=
0.2231
P(X=0)=e^{-1.5}=0.2231
P(X=0)=e−1.5=0.2231;
(2)中午12时至下午5时间隔
t
=
5
t=5
t=5,此期间收到紧急求救次数
X
X
X~
π
(
2.5
)
\pi(2.5)
π(2.5)。至少收到1次紧急求救的概率
P
(
X
≥
1
)
=
1
−
P
(
X
≤
0
)
=
1
−
F
(
0
)
=
1
−
e
−
2.5
=
1
−
0.0821
=
0.9179
P(X\geq1)=1-P(X\leq0)=1-F(0)=1-e^{-2.5}=1-0.0821=0.9179
P(X≥1)=1−P(X≤0)=1−F(0)=1−e−2.5=1−0.0821=0.9179。
下列代码验算本例计算结果。
from scipy.stats import poisson #导入poisson
prob1=poisson.pmf(k=0, mu=1.5) #计算参数为1.5时概率P(X=0)
prob2=poisson.sf(k=0, mu=2.5) #计算参数为2.5时概率P(X>=1)
print('P(X=0)=%.4f'%prob1)
print('P(X>=1)=%.4f'%prob2)
程序的第2行调用poisson的概率质量函数pmf,计算分布参数 λ = 1.5 \lambda=1.5 λ=1.5时概率 P ( X = 0 ) P(X=0) P(X=0),注意传递给参数k和mu的值。第3行调用poisson的残存函数sf,计算分布参数 λ = 2.5 \lambda=2.5 λ=2.5时概率 P ( X ≥ 1 ) = 1 − P ( X ≤ 0 ) = 1 − F ( 0 ) P(X\geq1)=1-P(X\leq0)=1-F(0) P(X≥1)=1−P(X≤0)=1−F(0),注意传递给参数k和mu的值。运行程序,输出
P(X=0)=0.2231
P(X>=1)=0.9179
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》