原創(chuàng) | 一文讀懂泊松分布,指數(shù)分布和伽馬分布
在開始之前,我們需要預(yù)習(xí)一下二項(xiàng)分布。
還是丟硬幣的例子,丟某塊特制的硬幣,假設(shè)正面向上的概率是P,則擲出圖片次,有K次向上的概率P是多少?
將硬幣正面朝上的次數(shù)記為隨機(jī)變量X,則有
這種分布就是二項(xiàng)分布。容易證明,二項(xiàng)分布的數(shù)學(xué)期望 E(X)=np
泊松分布
我們回到泊松分布。先來看一個(gè)生活場(chǎng)景。
宋朝慶歷年間,劉姥姥由于生活壓力,不得不根據(jù)祖?zhèn)髅胤桨l(fā)明總結(jié)并始創(chuàng)了一種名叫十二香的調(diào)料,并開始在市場(chǎng)上叫賣。劉姥姥在街上賣了半年,由于本小利薄,味道贊絕,一直供不應(yīng)求,但由于制作周期長,原料準(zhǔn)備流程復(fù)雜,而且保存時(shí)間較短,一直無法提高產(chǎn)量。
這一天,劉姥姥終于決定要弄清楚她每天剛制作的調(diào)料究竟是如何被火速買光的,以便提高進(jìn)貨量來增加銷量。
劉姥姥首先買了絕對(duì)充足的原料,熬夜制作了足份的十二香。賣了一周,每天開張五個(gè)時(shí)辰,結(jié)果沒賣光剩下的調(diào)料全部變質(zhì)了只能丟掉,心疼的她難受了小半天。不過她總算是記錄下了寶貴的數(shù)據(jù):這七天內(nèi)每天調(diào)料的銷售情況。
劉姥姥看著這用浪費(fèi)的調(diào)料換來的寶貴數(shù)據(jù),想了想,打算以后每天都按照日出貨平均數(shù):即10份來進(jìn)原材料,制作,保存。
劉姥姥的兒子劉大耳不同意。他認(rèn)為:如果按照10份準(zhǔn)備,那七天里有四天都不夠賣的,這可能會(huì)使王縣令的老婆買不到調(diào)料,將來一定會(huì)鬧事。
劉大耳說:我們應(yīng)該保證有90%以上的把握準(zhǔn)備最少的調(diào)料每日的份數(shù),使來咱這購買十二香的客人需求全都滿足。我們可以如此如此,這般這般……
于是劉姥姥就聽從了大耳兒的建議,從此之后,生意更加興隆,至于王縣令后來入伙加盟,生意不斷做大,后來更是推陳出新創(chuàng)立了十三香舉世聞名,當(dāng)然這都是后話了。
那么當(dāng)時(shí)劉大耳的方案是什么呢?接下來將一一道來。
劉姥姥每天賣五個(gè)時(shí)辰,也就是600分鐘,如果每分鐘最多只能賣出一份調(diào)料,且在這一分鐘賣出調(diào)料的概率是P,那么這一天賣出10份調(diào)料的概率可以通過二項(xiàng)分布計(jì)算:
但是王縣令家里人丁興旺,他老婆有時(shí)候會(huì)一次買幾十份調(diào)料,那每分鐘可能就賣出去不止一份調(diào)料。于是劉大耳將分割六個(gè)時(shí)辰的時(shí)間間隔進(jìn)一步縮小,分割成圖片,再利用極限的思想:
再抽象一些,那么在某天能賣出圖片份調(diào)料的概率應(yīng)該是:
那么P如何計(jì)算呢?還記得二項(xiàng)分布的期望嗎:假設(shè)
而我們可以使用當(dāng)圖片比較小的時(shí)候計(jì)算平均值得到的來近似。
另外,需要注意的是,在如上假設(shè)下,當(dāng)n越來越大時(shí),p值也會(huì)越來越小。
我們來進(jìn)一步計(jì)算一下這個(gè)概率:
而容易看出:
因此我們得到:
至此,我們就得到了教科書中泊松分布的概率密度函數(shù)!
劉大耳用圖片近似替代這里的圖片。于是我們可以利用python中的scipy庫快速畫出劉姥姥每天賣出圖片份十二香的概率密度曲線和累計(jì)分布函數(shù)。
import numpy as np
from scipy import stats
from matplotlib import pyplot as plt
mu = 10
x = np.arange(0,101,1)
plist = stats.poisson.pmf(x,mu)
clist = stats.poisson.cdf(x,mu)
plt.plot(x,plist,label='poisson distribution pmf') #
plt.plot(x,cdflist,label='poisson distribution cdf')
plt.xlim((-1,15))
plt.grid()
plt.legend()
plt.title(r'Poisson Distribution $\mu$:10')
plt.show()
如圖1。近似從圖中得出:每天準(zhǔn)備14份十二香,就有超過90%的把握不讓顧客乘興而來空手而去。
從上面的例子可以看出,泊松分布可以近似模擬一個(gè)離散事件在連續(xù)時(shí)間內(nèi)發(fā)生的次數(shù)的概率分布。真實(shí)世界中有很多場(chǎng)景都和泊松分布有關(guān),比如某網(wǎng)站在某段時(shí)間內(nèi)的點(diǎn)擊率;客服中心在某段時(shí)間內(nèi)接到電話的次數(shù);醫(yī)院在某段時(shí)間內(nèi)接生的嬰兒;放射性元素在某段時(shí)間內(nèi)衰變的粒子個(gè)數(shù)……
事實(shí)上我們通過上面的推導(dǎo)過程也能看出:當(dāng)p很?。ɑ騨很大)時(shí)的二項(xiàng)分布就近似等于泊松分布,此時(shí)我們也可以用泊松分布來快速近似計(jì)算起來更麻煩的二項(xiàng)分布。不信的話我們把代碼和圖撂在這,請(qǐng)看圖2。
import numpy as np
from scipy import stats
from matplotlib import pyplot as plt
mu = 10
x = np.arange(0,101,1)
plist = stats.poisson.pmf(x,mu)
blist1 = stats.binom.pmf(x,20,0.5)
blist2 = stats.binom.pmf(x,40,0.25)
blist3 = stats.binom.pmf(x,100,0.1)
plt.plot(x,plist,label=r'poisson $/mu:10$',color='k')
plt.plot(x,blist1,'-.',label=r'binomial $n:20, p:0.5$',alpha=0.5)
plt.plot(x,blist2,'-.',label=r'binomial $n:40, p:0.25$',alpha=0.5)
plt.plot(x,blist3,'-.',label=r'binomial $n:100, p:0.1$',alpha=0.5)
plt.xlim((-1,20))
plt.title(r'Poisson and Binomial Distribution')
plt.grid()
plt.legend()
plt.show()
指數(shù)分布
我們繼續(xù)劉姥姥的故事。
話說這劉姥姥還有個(gè)孫子劉小笨,隨著劉姥姥和劉大耳的買賣日益紅火,劉小笨的伙食也越來越好,飽暖思學(xué)術(shù),開始成天開始研究算術(shù)。劉小笨天天看劉姥姥賣調(diào)料,發(fā)現(xiàn)賣出一份調(diào)料所需要的時(shí)間間隔符合某種分布。經(jīng)過思考,他決定把這種分布稱為指數(shù)分布。
經(jīng)過后人對(duì)劉小笨的著作進(jìn)行解讀,我們發(fā)現(xiàn)了他的思考過程。
這里我們先考慮簡單的量,比如賣出一份調(diào)料所需要的時(shí)間大于1個(gè)時(shí)辰(2個(gè)小時(shí),120分鐘)的概率,其實(shí)和1個(gè)時(shí)辰內(nèi)一份調(diào)料也沒有賣出的概率,之和為1。
另外,假設(shè)每個(gè)時(shí)辰平均賣出的調(diào)料數(shù)為(根據(jù)劉姥姥的記錄,我們知道這個(gè)數(shù)近似為2)。記隨機(jī)變量Y為兩次賣出調(diào)料之間的時(shí)間間隔。根據(jù)之前劉大耳的假設(shè),立刻有:
至此,劉小笨可以估算任意時(shí)刻他姥姥賣出一份調(diào)料的概率。比如,任何1個(gè)時(shí)辰內(nèi),會(huì)有調(diào)料賣出的概率是:
而在接下來的30分鐘到60分鐘內(nèi),會(huì)有調(diào)料賣出的概率是:
事實(shí)上,到這里我們已經(jīng)得到了圖片的累計(jì)分布函數(shù)了:
對(duì)其求導(dǎo)就可以得到其概率密度函數(shù):
至此,我們就得到了劉姥姥連續(xù)兩次賣出調(diào)料的時(shí)間間隔圖片的概率密度函數(shù),隨機(jī)變量就符合指數(shù)分布,其中的圖片指的是每個(gè)時(shí)辰平均賣出調(diào)料的份數(shù)(這里是2) 。
指數(shù)分布的圖像我們可以畫出來,如圖3。
import numpy as np
from scipy import stats
from matplotlib import pyplot as plt
x = np.arange(0,10,0.1)
elist1 = stats.expon.pdf(x,scale=1/2)
elist2 = stats.expon.pdf(x,scale=1/3)
elist3 = stats.expon.pdf(x,scale=1/5)
plt.plot(x,elist1,label=r'$\lambda:2$')
plt.plot(x,elist2,label=r'$\lambda:3$')
plt.plot(x,elist3,label=r'$\lambda:5$')
plt.xlim((0,3))
plt.grid()
plt.legend()
plt.title(r'Exponential Distribution PDF')
plt.show()
可以從圖中看出,當(dāng)每個(gè)時(shí)辰賣出更多的調(diào)料份數(shù)時(shí),更小的連續(xù)兩次賣出調(diào)料時(shí)間間隔發(fā)生的概率更高,這很合理。
用一句話來概括,每天賣出的調(diào)料份數(shù)服從的是泊松分布,而賣出兩份調(diào)料的時(shí)間間隔服從指數(shù)分布,它們的期望分別代表了平均每天賣出的調(diào)料份數(shù)和每份調(diào)料賣出的平均時(shí)間間隔。真實(shí)世界中同樣有很多場(chǎng)景也和指數(shù)分布有關(guān),比如某網(wǎng)站被訪問的時(shí)間間隔;客服中心連續(xù)接到電話中間的休息時(shí)間間隔;電子產(chǎn)品的壽命(出現(xiàn)故障的時(shí)間間隔即正常使用壽命)……
伽馬分布
我們緊接上面的故事展開后續(xù)。
話說劉姥姥去世之后,劉小笨和王縣令合作開店。這個(gè)時(shí)候生意更好了,王縣令粗略統(tǒng)計(jì)了一下,發(fā)現(xiàn)平均每個(gè)時(shí)辰能賣出100份調(diào)料。他于是問劉小笨:昨天剛做好的那300份調(diào)料都賣光的時(shí)間滿足什么概率分布?劉小笨沉吟片刻,感覺這種分布和之前的泊松分布指數(shù)分布都不一樣,于是他把這種分布稱作:伽馬分布。
劉小笨后來的手札記錄了他當(dāng)時(shí)的思考過程。
假設(shè)每份調(diào)料賣出都是相互獨(dú)立的,而單位時(shí)間賣出調(diào)料份數(shù)均值為。則在這里,從開張到賣出到當(dāng)日第X份調(diào)料所需要的時(shí)間隨機(jī)變量Tx(t)就是我們應(yīng)該關(guān)注的量。我們假設(shè)該隨機(jī)變量分布的概率密度函數(shù)為。進(jìn)一步的,我們根據(jù)概率密度函數(shù)定義有:
而我們同樣可以使用處理泊松分布時(shí)的方法,將t均分為k份,計(jì)算當(dāng)k趨近于無窮大時(shí)的。需要注意的是,t時(shí)間后,我們應(yīng)該賣出了第x份,也就是說,在將t這一時(shí)間段分為k份后,前k-1份中我們肯定已經(jīng)賣出了x-1份調(diào)料。假設(shè)每一小份時(shí)間段內(nèi)我們賣出調(diào)料的概率為p,那么這么問題又退化成了二項(xiàng)分布相關(guān)的問題。
根據(jù)期望的定義,我們有, 將帶入上式。
至此,我們得到了伽馬分布的概率密度函數(shù)。更一般,當(dāng)我們?cè)试SX為小數(shù)時(shí),可以對(duì)階乘做適當(dāng)?shù)慕馕鲅油?,也就是伽馬函數(shù)了。
別看這式子如此復(fù)雜,實(shí)際上伽馬分布就是要解決計(jì)算從此時(shí)到后X次隨機(jī)事件都發(fā)生,需要等多長時(shí)間的問題。
顯然,當(dāng)x=1時(shí),退化為了指數(shù)分布,即要解決的問題退化為了計(jì)算下一次發(fā)生該隨機(jī)事件的時(shí)間間隔問題。
我們來看看伽馬分布密度函數(shù)的函數(shù)圖像。
import numpy as np
from scipy import stats
from matplotlib import pyplot as plt
x = np.arange(0,10,0.1)
glist1 = stats.gamma.pdf(x,1)
glist2 = stats.gamma.pdf(x,2)
glist3 = stats.gamma.pdf(x,3)
plt.plot(x,glist1,label=r'$x:1$')
plt.plot(x,glist2,label=r'$x:2$')
plt.plot(x,glist3,label=r'$x:3$')
plt.grid()
plt.legend()
plt.title(r'Gamma Distribution PDF: $\lambda:1$')
plt.show()
至此,我們講解完了泊松分布,指數(shù)分布和伽馬分布。
總結(jié)一下,泊松分布解決的是離散事件發(fā)生在連續(xù)的時(shí)間內(nèi)的次數(shù)概率分布的問題;指數(shù)分布解決的是獨(dú)立離散事件發(fā)生一次所需連續(xù)時(shí)間長度分布的問題;伽馬分布解決的是多次離散事件發(fā)生所需連續(xù)時(shí)間長度分布的問題。其中,指數(shù)分布是伽馬分布的特例。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。