1. uniform分布(均匀分布)
Python的scipy.stats包中的对象uniform表示连续型的均匀分布。下表展示了uniform分布的几个常用函数。
函数名 | 参数 | 功能 |
rvs(loc, scale, size) | loc:分布参数,缺省值为0, scale:分布参数差,缺省值为1,size:产生的随机数个数,缺省值为1 | 产生size个随机数 |
pdf(x, loc, scale) | x:自变量取值,loc,scale:与上同 | 概率密度函数 |
cdf(x, loc, scale) | x,loc,scale:与上同 | 累积概率函数(分布函数) |
ppf(q, loc, scale) | q:分位点函数自变量,loc,scale:与上同 | 分布函数的反函数 |
sf(x, loc, scale) | x:自变量取值,loc,scale:与上同 | 残存函数 |
例1 某公共汽车站从上午7时起,每15分钟来一班车。即7:00,7:15,7:30,7:45,……等时刻有汽车到达此站。如果乘客到达此站的时间是服从7:00到7:30之间的均匀分布的随机变量,试求他候车时间少于5分钟的概率。 | ||
解:由题设知~,其分布函数 | ||
$$ F(x)=\begin{cases} | ||
0&x<0\ |
\frac{x}{30}&0\leq x\leq 30\\
1&x\geq 30
\end{cases}KaTeX parse error: Can't use function '$' in math mode at position 48: …客候车时间少于5分钟(记为事件$̲A$),根据班车时刻表,有三种…P(A)=P({10\leq X\leq15}\cup{25\leq X\leq30})\
=P(10\leq X\leq15)+P(25\leq X\leq30)\
=F(15)-F(10)+F(30)-F(25)\
=\frac{15}{30}-\frac{10}{30}+\frac{30}{30}-\frac{25}{30}=\frac{1}{3}$$
下列Python代码计算本例中的概率。
from scipy.stats import uniform #导入uniform
print('P(A)=%.4f'%(uniform.cdf(x=15, scale=30)- #F(15)-
uniform.cdf(x=10, scale=30)+ #F(10)+
uniform.cdf(x=30, scale=30)- #F(30)-
uniform.cdf(x=25, scale=30)))#F(25)
程序的第1行导入uniform。第2~5行输出计算结果。注意,调用cdf函数时传递的参数:首个参数x分别表示自变量的值15、10、30和25,第2个参数loc,由于本例中均匀分布的参数与loc的缺省值相同,故省略。第三个参数scale表示分布参数差,本例中,故传递scale=30。运行该程序,输出
P(A)=0.3333
此即为精确到万分位的值。
2. expon分布(指数分布)
Scipy.stats包中的expon对象表示指数分布。下表展示了expon分布的常用函数。
函数名 | 参数 | 功能 |
rvs(scale, size) | scale:分布参数,缺省值为1,size:产生的随机数个数,缺省值为1 | 产生size个随机数 |
pdf(x, loc, scale) | x:自变量取值,scale:与上同 | 概率密度函数 |
cdf(x, scale) | x,scale:与上同 | 累积概率函数(分布函数) |
ppf(q, scale) | q:分位点函数自变量,scale:与上同 | 分布函数的反函数 |
sf(x, scale) | x:自变量取值,scale:与上同 | 残存函数 |
例2 假定自动取款机对每位顾客的服务时间(单位:min)服从的指数分布,如果有一个顾客恰好在你前头走到空闲的取款机,求: |
- 你至少等候3分钟的概率;
- 你等候的时间在3~6分钟的概率。
解:按题设,两人来到的时间一致。一人使用取款机而另一人等待的时间的分布函数为
因此,
(1)至少等待3分钟的概率为
(2)等待时间在3~6分钟的概率为
下列代码验算本例的计算结果。
from scipy.stats import expon #导入expon
prob1=expon.sf(x=3, scale=3) #1-F(3)
prob2=expon.cdf(x=6, scale=3)-expon.cdf(x=3, scale=3) #F(6)-F(3)
print('P(X>3)=%.4f'%prob1)
print('P(3<=X<=6)=%.4f'%prob2)
程序中第1行导入expon。第2行用残存函数sf计算。第3行用cdf函数计算。注意传递给参数scale的是指数分布的参数。运行该程序输出:
P(X>3)=0.3679
P(3<=X<=6)=0.2325
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
返回《导引》