概率論中,隨機變量的分布律是一個重要概念,它能夠體現(xiàn)地反應(yīng)一個隨機事件發(fā)生的概率水平。對于離散型隨機變量而言,主要的分布律有0-1分布,二項分布與泊松分布。而對于連續(xù)型隨機變量而言,主要的分布律有均勻分布,指數(shù)分布以及正態(tài)分布。
將這些分布展現(xiàn)在圖像之中可能可以更加便于大家去理解。這里我使用Python中的Matplotlib庫繪制了這些分布的圖像,大家可以在此基礎(chǔ)上改變其中的參數(shù),從而能夠更好地理解這些分布的數(shù)值規(guī)律。
1. 二項分布
根據(jù)課本上的定義,在n重伯努利試驗中,隨機變量X代表其中事件A發(fā)生的次數(shù),常數(shù)p為事件A發(fā)生的概率,X所有可能取值為0,1,2...n,那么在這n次試驗中隨機變量X即服從二項分布: ,其分布律可表示為:
這里,n重伯努利試驗是指獨立重復(fù)一個只有兩種可能結(jié)果的試驗;最簡單的一個例子就是扔硬幣(概率論真是喜歡扔硬幣啊)。把這個二項分布定義轉(zhuǎn)換成人話,就是說:一個人扔了500次硬幣(n=500),正面朝上0次,1次,2次...500次的概率到底如何呢?有高中概率知識的小伙伴們肯定都知道就是按照上面這個公式進行計算了。
生活中還有許許多多n重伯努利試驗的例子,比如說投擲色子出現(xiàn)6這個事件(只有出現(xiàn)與不出現(xiàn)兩種可能),射擊(只有擊中與不擊中兩種),考研究生(考上研究生,沒考上)等等。不過從概率的角度來說,只有兩種可能結(jié)果并不意味著這兩種結(jié)果是等可能的。生活中遇到過不少人認為只有兩種結(jié)果,這兩種結(jié)果發(fā)生的可能性就是五五開(沒那么好的事!),絕對是對概率論的一大誤解。
那么我們怎么用Python對二項分布的圖像進行繪制呢?可以參看下面的代碼。
# Binomial Distritribution
# Author: Zhonglue
# Date: Feb 20th, 2020
import numpy as np
from matplotlib import pyplot as plt
import math
# set the parameter
number = 100 # number of tests
prob = 0.25 # probability of Event A happens
x = np.arange(number) # initialize X
y_binomial = np.zeros(number) # initialize Y
for i in range(number):
y_binomial[i] = math.factorial(number)/(math.factorial(number-i)*math.factorial(i))*(prob)**i*(1-prob)**(number-i) # For binomial distribution, P(X=i) = Cni p^i(1-p)^i
plt.style.use('seaborn') # use a nice style
plt.rc('font', size =14)
plt.rc('figure', titlesize = 18)
plt.rc('axes', labelsize =15)
plt.rc('axes', titlesize =18)
plt.title("Binomial distribution")
plt.xlabel("Number")
plt.ylabel("Probability")
plt.xlim(0, 100)
plt.ylim(0, 0.1)
plt.scatter(x, y_binomial, color = 'g', marker = 'o', alpha = 0.5)
plt.show()
這里計算的是概率為0.25的事件A在100次獨立重復(fù)實驗中發(fā)生次數(shù)的概率分布律,即。
繪制出來的圖像是這樣的:

2. 泊松分布
離散型隨機變量的另一個重要的分布是泊松分布(Poisson Distribution)。若隨機變量X服從泊松分布,則其取各個值的概率為:
并記做:
.
泊松分布看起來就比之前說的二項分布更加復(fù)雜一點。但是,具有泊松分布的隨機變量在實際生活中是十分常見的。比如說,一個鑄件上砂眼的數(shù)量,某一醫(yī)院一天內(nèi)的急診病人數(shù)等。這些事件實際上均屬于“泊松過程”。對于泊松分布,大家可以發(fā)現(xiàn),事實上泊松分布只有一個參數(shù),即。這個參數(shù)反映了泊松過程中事件發(fā)生的強度。比如說,若在一個醫(yī)院中,平均一個小時有5位可愛的小嬰兒出生。如果我們假設(shè)每小時嬰兒出生的數(shù)量服從泊松分布,那么這里泊松分布的強度
。
那么我們怎么用Python對泊松分布進行繪制呢?代碼如下。
# Poisson distribution
# Author: Zhonglue Hu
# Date: Feb 20, 2020
import numpy as np
from matplotlib import pyplot as plt
import math
# Set the parameters
number = 100 # Total number of tests
lamda = 10 # the poisson ratio
x = np.arange(number)
z_poisson = np.zeros(number)
for i in range(number):
z_poisson[i] = lamda**i*np.exp(-lamda)/math.factorial(i)
plt.style.use('seaborn') # use a nice style
plt.rc('font', size =14)
plt.rc('figure', titlesize = 18)
plt.rc('axes', labelsize =15)
plt.rc('axes', titlesize =18)
plt.title("Poisson distribution vs Binomial distribution")
plt.xlabel("Number")
plt.ylabel("Probability")
plt.xlim(0,100)
plt.ylim(0, 0.15)
plt.scatter(x, z_poisson, color= 'r', marker = 'o', alpha = 0.5)
plt.show()
那么泊松分布的看起來是什么樣的呢?

關(guān)于泊松分布的一個另外一個很重要的論點是,泊松分布在一定的條件下,可以用于二項分布的近似與擬合:二項分布中n較大 (n>10,p<0.05),且. 結(jié)合上面的代碼,相信老鐵們應(yīng)該不難繪制出這樣的圖像。
好了,這篇文章先寫到這里,感覺有幫助的老鐵們點個贊再走唄~