二项式分布(Binomial Distribution)
定義
讓我們來看看玩板球這個例子。假設你今天贏了一場比賽,這表示一個成功的事件。你再比了一場,但你輸了。如果你今天贏了一場比賽,但這并不表示你明天肯定會贏。我們來分配一個隨機變量X,用于表示贏得的次數。 X可能的值是多少呢?它可以是任意值,這取決于你擲硬幣的次數。
只有兩種可能的結果,成功和失敗。因此,成功的概率 = 0.5,失敗的概率可以很容易地計算得到:q = p – 1 = 0.5。
二項式分布就是只有兩個可能結果的分布,比如成功或失敗、得到或者丟失、贏或敗,每一次嘗試成功和失敗的概率相等。
結果有可能不一定相等。如果在實驗中成功的概率為0.2,則失敗的概率可以很容易地計算得到 q = 1 - 0.2 = 0.8。
每一次嘗試都是獨立的,因為前一次投擲的結果不能決定或影響當前投擲的結果。只有兩個可能的結果并且重復n次的實驗叫做二項式。二項分布的參數是n和p,其中n是試驗的總數,p是每次試驗成功的概率。
在上述說明的基礎上,二項式分布的屬性包括:
- 每個試驗都是獨立的。
- 在試驗中只有兩個可能的結果:成功或失敗。
- 總共進行了n次相同的試驗。
- 所有試驗成功和失敗的概率是相同的。 (試驗是一樣的)
公式
? ? ? ? ? ? ? ? ? ? ? ? ? ?
𝑁?𝑝?表示分布的均值
-
PMF( 概率質量函數 ): 是對離散隨機變量的定義. 是離散隨機變量在各個特定取值的概率. 該函數通俗來說,就是對于一個離散型概率事件來說, 使用這個函數來求它的各個成功事件結果的概率.
-
PDF ( 概率密度函數 ): 是對連續性隨機變量 的定義. 與PMF不同的是 PDF 在特定點上的值并不是該點的概率, 連續隨機概率事件只能求一段區域內發生事件的概率, 通過對這段區間進行積分來求. 通俗來說, 使用這個概率密度函數 將 想要求概率的區間的臨界點( 最大值和最小值)帶入求積分. 就是該區間的概率.
?將left修改為x:
?plt.bar(left=np.arange(20),?
? ? ? ? height=(stats.binom.pmf(np.arange(20), p=.5, n=20)),?
? ? ? ? width=.75,
? ? ? ? alpha=0.75
? ? ? ?)?
plt.bar(x=np.arange(20),?
? ? ? ? height=(stats.binom.pmf(np.arange(20), p=.5, n=20)),?
? ? ? ? width=.75,
? ? ? ? alpha=0.75
? ? ? ?)?
?改變P值后,對結果的影響如下圖所示:
plt.figure(dpi=100)# PDF P = .2 plt.scatter(np.arange(21),(stats.binom.pmf(np.arange(21), p=.2, n=20)),alpha=0.75,s=100) plt.plot(np.arange(21),(stats.binom.pmf(np.arange(21), p=.2, n=20)),alpha=0.75,)# PDF P = .5 plt.scatter(np.arange(21),(stats.binom.pmf(np.arange(21), p=.5, n=20)),alpha=0.75,s=100) plt.plot(np.arange(21),(stats.binom.pmf(np.arange(21), p=.5, n=20)),alpha=0.75,)# PDF P = .9 plt.scatter(np.arange(21),(stats.binom.pmf(np.arange(21), p=.9, n=20)),alpha=0.75,s=100) plt.plot(np.arange(21),(stats.binom.pmf(np.arange(21), p=.9, n=20)),alpha=0.75,)# LEGEND plt.text(x=3.5, y=.075, s="$p = 0.2$", alpha=.75, weight="bold", color="#008fd5") plt.text(x=9.5, y=.075, s="$p = 0.5$", alpha=.75, weight="bold", color="#fc4f30") plt.text(x=17.5, y=.075, s="$p = 0.9$", alpha=.75, weight="bold", color="#e5ae38")# TICKS plt.xticks(range(21)[::2]) plt.tick_params(axis = 'both', which = 'major', labelsize = 18) plt.axhline(y = 0, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER plt.text(x = -2.5, y = .37, s = "Binomial Distribution - $p$",fontsize = 26, weight = 'bold', alpha = .75) plt.text(x = -2.5, y = .32, s = 'Depicted below are three Binomial distributed random variables with varying $p $. As one can see\nthe parameter $p$ shifts and skews the distribution.',fontsize = 19, alpha = .85)?改變N值對結果產生的影響如下所示:
plt.figure(dpi=100)# PDF N = 10 plt.scatter(np.arange(11),(stats.binom.pmf(np.arange(11), p=.5, n=10)),alpha=0.75,s=100) plt.plot(np.arange(11),(stats.binom.pmf(np.arange(11), p=.5, n=10)),alpha=0.75,)# PDF N = 15 plt.scatter(np.arange(16),(stats.binom.pmf(np.arange(16), p=.5, n=15)),alpha=0.75,s=100) plt.plot(np.arange(16),(stats.binom.pmf(np.arange(16), p=.5, n=15)),alpha=0.75,)# PDF N = 20 plt.scatter(np.arange(21),(stats.binom.pmf(np.arange(21), p=.5, n=20)),alpha=0.75,s=100) plt.plot(np.arange(21),(stats.binom.pmf(np.arange(21), p=.5, n=20)),alpha=0.75,)# LEGEND plt.text(x=6, y=.225, s="$N = 10$", alpha=.75, weight="bold", color="#008fd5") plt.text(x=8.5, y=.2, s="$N = 15$", alpha=.75, weight="bold", color="#fc4f30") plt.text(x=11, y=.175, s="$N = 20$", alpha=.75, weight="bold", color="#e5ae38")# TICKS plt.xticks(range(21)[::2]) plt.tick_params(axis = 'both', which = 'major', labelsize = 18) plt.axhline(y = 0, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER plt.text(x = -2.5, y = .31, s = "Binomial Distribution - $N$",fontsize = 26, weight = 'bold', alpha = .75) plt.text(x = -2.5, y = .27, s = 'Depicted below are three Binomial distributed random variables with varying $N$. As one can see\nthe parameter $N$ streches the distribution (the larger $N$ the flatter the distribution).',fontsize = 19, alpha = .85)? 也可以構造隨機樣本(Random Variates):
import numpy as np from scipy.stats import binom# draw a single sample np.random.seed(42) print(binom.rvs(p=0.3, n=10), end="\n\n")# draw 10 samples print(binom.rvs(p=0.3, n=10, size=10), end="\n\n") 2[5 4 3 2 2 1 5 3 4 0]?計算概率質量函數的概率:
?
?計算累積概率密度函數的概率:
from scipy.stats import binom# probability of x less or equal 0.3 print("P(X <=3) = {}".format(binom.cdf(k=3, p=0.3, n=10)))# probability of x in [-0.2, +0.2] print("P(2 < X <= 8) = {}".format(binom.cdf(k=8, p=0.3, n=10) - binom.cdf(k=2, p=0.3, n=10))) P(X <=3) = 0.6496107183999998 P(2 < X <= 8) = 0.6170735276999999總結
以上是生活随笔為你收集整理的二项式分布(Binomial Distribution)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: labview事件结构的使用
- 下一篇: Android上实现MobileSSD