Python计算二项分布教程
生活随笔
收集整理的這篇文章主要介紹了
Python计算二项分布教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二項實驗需滿足下列性質:
- 實驗有n個重復實驗組成
- 每個實驗僅有兩種結果
- 成功的概率用p表示,且每次實驗概率都相同
- 每次實驗都是獨立的
最常用二項實驗為拋硬幣實驗。假設我們拋10次,這十次實驗有下列屬性:
- 實驗有10個重復實驗組成
- 每個實驗有兩種可能結果——正面或負面
- 正面的概率為p,每次實驗的概率都一樣
- 每次實驗是獨立的——上次實驗的結果不影響后面的結果
如果隨機變量服從二項分布,那么概率x=k(成功的次數)公式如下:
P(X=k) = nCk?pk?(1?p)n?k{_nC_k * p^k * (1-p)^{n-k}}n?Ck??pk?(1?p)n?k
參數說明:
-
n: 實驗次數
-
k: 成功次數
-
p: 實驗成功的概率
-
nCk{_nC_k}n?Ck?: n次實驗獲得k次成功
生成二項分布
可以使用numpy包中random.binomial函數生成服從二項分布的數組:
from numpy import random# 生成10個值服從正太分布 random.binomial(n=10, p=.25, size=10)# array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])數組中的每個元素表示:給定成功概率為.25,進行10次實驗成功的次數。
計算二項分布的概率
可以使用scipy庫中的binom函數回答下列幾個問題。
投籃成功概率為.6, 投球12次,有10次成功的概率
from scipy.stats import binom# 計算二項分布概率 binom.pmf(k=10, n=12, p=0.6)# 0.0639正好有10次成功的概率為0.0639
拋5次硬幣,有2次或更少為正面的概率
from scipy.stats import binom# 計算累積概率 binom.cdf(k=2, n=5, p=0.5)# 0.5# 計算二項分布概率 binom.pmf(k=2, n=5, p=0.5)# 0.3125硬幣落地為正面2次或更少的概率為.5
民眾對某法律支持率為70%,隨機抽取10人,有4~6人支持該法律的概率:
from scipy.stats import binom# 計算累積概率 binom.cdf(k=6, n=10, p=0.7) - binom.cdf(k=3, n=10, p=0.7)# 0.3398結果為有4~6人支持的概率為0.3398
可視化二項分布
我們可以通過seaborn、matplotlib庫可視化二項分布:
from numpy import random import matplotlib.pyplot as plt import seaborn as snsx = random.binomial(n=10, p=0.5, size=1000)sns.distplot(x, hist=True, kde=False)plt.show()x 軸表示10次實驗成功的次數,y軸表示1000次實驗中成功數值發送的次數。
總結
以上是生活随笔為你收集整理的Python计算二项分布教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么视频异常分析是最适合互联网时代的内
- 下一篇: 使用 ESP32 + HaaS Pyth