首先我們從二項分布講起,然後再逐一對其他分布進行解析。
二項分布
二項分布就是重複n次獨立的伯努利試驗。在每次試驗中只有兩種可能的結果,而且兩種結果發生與否互相對立,並且相互獨立,與其它各次試驗結果無關,事件發生與否的概率在每一次獨立試驗中都保持不變,則這一系列試驗總稱為n重伯努利實驗,當試驗次數為1時,二項分布服從0-1分布。
如果隨機變量X服從二項分布,記為:
恆有
用X ∼ binomial(n, p)表示隨機變量X具有帶正整數參數n和實參p滿足0 < p < 1的二項分布。隨機變量X∼二項式(氮、磷)概率質量函數概率質量函數為:
這裡我們解釋一下什麼是概率質量函數:
在概率論中,概率質量函數 (Probability Mass Function,PMF)是離散隨機變量在各特定取值上的概率。概率質量函數和概率密度函數不同之處在於:概率密度函數是對連續隨機變量定義的,本身不是概率,只有對連續隨機變量的取值進行積分後才是概率。
上面公式的含義為在隨機變量X的映射函數下,所有樣本空間中的結果在此映射下輸出結果為x的概率。
屬性如下:
二項分布的適用條件
1、每次實驗只會出現兩種對立的可能結果之一(結果對立)
2、每次實驗出現某種結果的概率固定不變,即每次實驗條件不變(概率固定)
3、每次實驗相互獨立(相互獨立)
二項分布的特徵
取決於兩個參數(n,p)
n = 30,p = 1/6
n = 30,p = 1/2
n = 30,p = 5/6
二項分布的正態近似性條件
1、n較大p不接近0也不接近1時( np和n(1-p)均≥5)
2、X ∼ binomial(n, p)近似正態分布N ( np, np(1- p) )
3、可利用正態分布原理解決二項分布的問題
X的累積分布函數:
X的殘存函數:
X的矩量母函數:
X的特徵函數:
X的總體均值,方差
X的偏度,峰度
Matlab實現二項分布程序:
1、求n次獨立重複試驗中事件A恰好發生k次的概率P。
說明:n為試驗總次數,k為n次試驗中,事件A發生的次數,p為每次試驗事件A發生的概率。
2、在n次獨立重複試驗中,事件A至少發生k次的概率P_s。
說明:n為試驗總次數,k為n次試驗中,事件A發生的次數,p為每次試驗事件A發生的概率。
比如某產品出次品的概率為0.01,求生產100件產品中:(1)恰有1件次品的概率;(2)至少有1件次品的概率。
解:此問題可看作是100次獨立重複試驗,每次試驗出次品的概率為0.01。
p = binopdf(1,100,0.01)
p = 0.3697
p=1-binocdf(0,100,0.01)
p = 0.6340
Python實現二項分布程序:
numpy.random.RandomState.binomialRandomState.binomial(n, p, size=None)
Draw samples from a binomial distribution.
Samples are drawn from a binomial distribution with specified parameters, n trials and p probability of success where n an integer >= 0 and p is in the interval [0,1]. (n may be input as a float, but it is truncated to an integer in use)
Parameters:n : float (but truncated to an integer)
parameter, >= 0.
p : float
parameter, >= 0 and <=1.
size : int or tuple of ints, optional
Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn. Default is None, in which case a single value is returned.
Returns:samples : ndarray or scalar
where the values are all integers in [0, n].
表示對一個二項分布進行採樣(size表示採樣的次數),參數中的n, p分別對應於公式中的
舉例:
兩枚硬幣都是正面的概率:
# 兩枚都是正面
n, p = 2, .5
sum(np.random.binomial(n, p, size=20000)==2)/20000.
# 其中一個為反面
sum(np.random.binomial(n, p, size=20000)==1)/20000.
# 兩個都是反面
n, p = 2, .5
sum(np.random.binomial(n, p, size=20000)==0)/20000.