視頻手機網(wǎng)站開發(fā)廣告營銷是做什么的
Beta分布與二項分布的關系
Beta分布與二項分布密切相關,由二項分布擴展而來,它是用來描述一個連續(xù)型隨機變量出現(xiàn)的概率的概率密度分布,表示為 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) , a 、 b a、b a、b 是形狀參數(shù)。Beta分布本質(zhì)上也是一個概率密度函數(shù),只是這個函數(shù)的自變量和因變量都表示某種概率。
下面我們會先溫故下二項分布的知識,然后循序漸進地引出Beta分布。
在二項分布這篇文章里介紹過,二項分布能解決的是 n次獨立伯努利試驗中成功k次的概率 問題,記作 X X X~ B i n ( n , p ) Bin(n,p) Bin(n,p) 。
仍以拋硬幣為例,二項分布求的是拋 n n n 次硬幣中出現(xiàn) k k k 次正面向上的概率,它是一個概率質(zhì)量函數(shù)(對離散型隨機變量叫概率質(zhì)量函數(shù)、對連續(xù)性隨機變量叫概率密度函數(shù)),這個函數(shù)的自變量是 k k k ,因變量是概率,前提是硬幣出現(xiàn)正面向上的概率 p p p (質(zhì)地均勻)和拋的次數(shù) n n n 是已知的。
假設一枚硬幣質(zhì)地均勻,也就是說拋一次硬幣,出現(xiàn)正面向上和反面向上的概率 p p p 都為0.5,然后拋10次,下圖是正面向上出現(xiàn)0次到10次的概率圖:
附繪圖代碼
import numpy as np import matplotlib.pyplot as plt from scipy.stats import binom #plt.rcParams['font.family']=['Arial Unicode MS']n = 10 #試驗次數(shù) p = 0.5 #正面向上的概率#生成x軸的數(shù)據(jù)點 x = np.arange(0, n + 1, 0.001)#二項分布的概率質(zhì)量函數(shù)(PMF)和累積分布函數(shù)(CDF) pmf = binom.pmf(x, n, p) #cdf = binom.cdf(x, n, p)plt.figure(figsize=(10, 5)) plt.subplot(121) plt.plot(x, pmf, 'b-', lw=2, label='PMF') plt.vlines(x, 0, pmf, colors='b', lw=1, alpha=0.5) plt.xlabel('正面向上次數(shù)') plt.ylabel('概率') plt.title('二項分布-拋硬幣10次') plt.legend() plt.show()
正常來說,我們可以提前就預料到結(jié)果中出現(xiàn)5次正面向上的概率最大,實際上也雀食如此。但這是對質(zhì)地均勻的硬幣來說的,如果是一枚質(zhì)地不均勻的硬幣,我們還能這么信誓旦旦地判斷嗎?
再假設我們拿到了一枚不知道是否質(zhì)地均勻的硬幣,然后想求拋一次硬幣正面向上的概率。這個問題如何解決呢?
一個粗糙的解決方案是: 我盡可能地多拋硬幣,然后看所有結(jié)果中正面向上出現(xiàn)的概率是多少,這個概率就是拋一次硬幣正面向上的概率的逼近。比如我茶不思飯不想地連續(xù)拋了10000次硬幣,其中出現(xiàn)正面向上的有3000次,現(xiàn)在我可以自信地說再拋一次硬幣正面向上的概率 大概 就是0.3。注意我這里用了大概兩個字,也就是說0.3這個概率只是拋一次硬幣中正面向上出現(xiàn)的所有概率中最大的一個概率,那有沒有可能是0.4、0.5甚至0.9呢?是有可能的,只是這些概率出現(xiàn)的概率都相對0.3 更低 罷了。
再試想一下,我只拋了100次,其中出現(xiàn)正面向上的有30次,那我判斷再拋一次硬幣正面向上的概率是0.3的 把握 是不是會比10000次出現(xiàn)3000次 更低 呢?
用圖展示一下拋一次質(zhì)地未知硬幣出現(xiàn)正面向上的概率的概率(先驗知識是已知拋了n次中出現(xiàn)正面向上的有a次):
附繪圖代碼
import numpy as np import matplotlib.pyplot as plt from scipy.stats import beta #plt.rcParams['font.family']=['Arial Unicode MS']a1 = 3000 # 拋一萬次硬幣中正面向上的次數(shù) b1 = 7000 # 拋一萬次硬幣中反面向上的次數(shù) a2 = 30 # 拋一百次硬幣中正面向上的次數(shù) b2 = 70 # 拋一百次硬幣中反面向上的次數(shù)x = np.linspace(0.0, 1.0, 1000)# 計算Beta分布的概率密度函數(shù)值 y1 = beta.pdf(x, a1, b1) y2 = beta.pdf(x, a2, b2)plt.plot(x, y1, label='Beta(a={}, b={})'.format(a1, b1)) plt.plot(x, y2, label='Beta(a={}, b={})'.format(a2, b2)) plt.xlabel('正面向上的概率') plt.ylabel('概率密度') plt.title('拋一次質(zhì)地未知硬幣出現(xiàn)正面向上的概率的概率') plt.legend() plt.show()
這個圖像表示了拋一次質(zhì)地未知硬幣出現(xiàn)正面向上的概率的概率分布,其中圖像的形狀隨參數(shù)a和b的不同而變化。從圖中可以看出:
- 基于拋10000次硬幣中出現(xiàn)正面向上3000次的是藍色曲線,其在橫坐標上正面向上的概率為0.3處取得最大值,即再拋一次硬幣出現(xiàn)正面向上的概率是0.3的結(jié)果最為確信;
- 基于拋100次硬幣中出現(xiàn)正面向上30次的是橙色曲線,其也在橫坐標上正面向上的概率為0.3處取得最大值,即再拋一次硬幣出現(xiàn)正面向上的概率是0.3的結(jié)果最為確信,但與藍色曲線對比可以看出,明顯橙色曲線對此判斷的把握要比藍色曲線小得多;
那么如何去量化上面提到的 更低 與 把握 ?此時就該Beta分布登場了!
細心的小伙伴可以看出上圖就是用Beta函數(shù)畫出來的圖像。
文章開頭說過Beta分布的表示為 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) ,其中 a 、 b a、b a、b 是形狀參數(shù),可以控制圖像的形狀。對應到拋硬幣場景中,