概率统计Python计算:离散型随机变量分布(bernoulli geom)
Python的scipy.stats包中提供了各種隨機變量的分布。每一種分布,其累積分布函數(分布函數)記為cdf。離散型變量分布的概率質量函數(分布律),記為pmf。除此之外,每個分布都有一個服從該分部變量發生器函數rvs,用來產生服從該分布的隨機數。
1. bernoulli分布(0-1分布)
Python的scipy.stats包中,bernoulli類就是用來表示伯努利分布的。常用的三個函數說明見下表。
| rvs(p, size) | p:分布參數,size:產生的隨機數個數,缺省值為1 | 產生size個隨機數 |
| pmf(k, p) | k:隨機變量取值,p:與上同 | 概率質量函數(分布律)P(X=k)P(X=k)P(X=k) |
| cdf(k, p) | k:分布函數自變量,p:與上同 | 累積概率函數(分布函數)F(k)F(k)F(k) |
例1 下列代碼利用bernoulli類對象的rvs函數模擬重復拋擲均勻分幣試驗。
from scipy.stats import bernoulli #導入bernoulli import numpy as np #導入numpy x=bernoulli.rvs(p=1/2,size=500) #產生500個服從p=1/2的0-1分布的隨機數 hist, _=np.histogram(x, bins=2) #統計取0、1的頻數 hist/500 #輸出頻率其中的第3行調用bernoulli類對象的隨機數發生函數rvs產生500個服從參數p=1/2p=1/2p=1/2的0-1分布(拋擲均勻分幣0,1分別表示正面朝下和正面朝上)的隨機數。第4行調用numpy的histogram函數統計500個數據中取0、1的頻數。第5行輸出頻率。運行程序,輸出
array([0.498, 0.502])可見取0和1的頻率分別為0.499和0.502,很好地模擬了拋擲均勻分幣這一伯努利試驗。
2. geom分布(幾何分布)
scipy.stats包提供的geom類表示幾何分布。常用的三個函數rvs、pmf和cdf的名稱、參數和意義是完全一致的。這是因為0-1分布和幾何分布均僅有一個表示一次試驗成功概率的參數ppp。由此可見,引入隨機變量處理不同隨機試驗下的隨機事件概率問題的形式是統一的。
例2 設燈泡在任意一天損壞的概率p=0.001p=0.001p=0.001,計算該燈泡的壽命至少為30天的概率。
解:設燈泡的使用壽命(單位:天)為XXX,則XXX服從參數為p=0.001p=0.001p=0.001的幾何分布。令q=1?p=0.999q=1-p=0.999q=1?p=0.999,燈泡壽命至少為30天的概率
P(X≥30)=1?P(X≤29)=1?F(29)=1?∑k=129q29?kp=1?p1?q291?q=q29=0.99929=0.9714.P(X\geq30)=1-P(X\leq29)=1-F(29)\\ =1-\sum\limits_{k=1}^{29}q^{29-k}p=1-p\frac{1-q^{29}}{1-q}\\ =q^{29}=0.999^{29}=0.9714.P(X≥30)=1?P(X≤29)=1?F(29)=1?k=1∑29?q29?kp=1?p1?q1?q29?=q29=0.99929=0.9714.
下列代碼驗算本例中燈泡壽命至少為30天的概率。
程序的第2行調用geom(第1行導入)的cdf函數,計算1?F(29)=1?∑k=129(1?p)k?1p1-F(29)=1-\sum\limits_{k=1}^{29}(1-p)^{k-1}p1?F(29)=1?k=1∑29?(1?p)k?1p。運行程序,輸出
P(X>=30)=1-F(29)=0.9714scipy.stats為每一種分布提供殘存函數sf,該函數計算P(X>x)=1?P(X≤x)=1?cdf(x)P(X>x)=1-P(X\leq x)=1-\text{cdf}(x)P(X>x)=1?P(X≤x)=1?cdf(x)。例如,在上列程序中,將第2行代碼換成
prob=geom.sf(k=29,?p=0.01)\text{prob=geom.sf(k=29, p=0.01)}prob=geom.sf(k=29,?p=0.01)
來計算服從參數為p=0.01p=0.01p=0.01的幾何分布的隨機變量XXX的概率P(X≥30)=P(X>29)P(X\geq30)=P(X>29)P(X≥30)=P(X>29)。
寫博不易,敬請支持:
如果閱讀本文于您有所獲,敬請點贊、評論、收藏,謝謝大家的支持!
返回《導引》
總結
以上是生活随笔為你收集整理的概率统计Python计算:离散型随机变量分布(bernoulli geom)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ARM系列芯片历史
- 下一篇: 用Look'n'Stop防火墙实现ARP