離散、連續概率分布小結+python中的應用
- 本文為梳理離散、連續分布的導讀類筆記,大神請繞道,謝謝;
- 本文閱讀大約需要15分鐘左右;
- 若您發現文中有錯誤之處,歡迎留言指正,謝謝。
前言
- 隨機變數:量化隨機事件的函數,將每個可能的隨機事件結果賦予一個數字;
- 概率分布:分布是指數據在統計圖中的形狀,則概率分布是指將隨機變數的概率在統計圖中的表現形式;
- 四種離散分布:伯努利分布、二項分布、幾何分布、泊松分布等;
- 四種連續分布:正態分布、冪律分布、指數分布、 分布等。
一,離散分布
1.1 伯努利分布
# 準備要用到的包import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport scipy.stats as stats# 生成一個0,1的數組X=np.arange(0,2,1)Xarray([0, 1])# 用bernoulli分布計算0和1時的概率分別是多少p=0.5y=stats.bernoulli.pmf(X,p)yarray([ 0.5, 0.5])plt.style.use(ggplot)f,ax=plt.subplots(figsize=(8,5))plt.scatter(X,y,marker=o,color=r)plt.vlines(X,0,y,color=y)# 設置圖像plt.title(伯努利分布,fontsize=22)plt.xlabel(隨機變數,fontsize=15)plt.ylabel(概率,fontsize=15)plt.show()
關於豎線vline
- vline(x坐標值, y坐標最小值, y坐標值最大值)
- plt.vlines(X,0,y),其中X,y都是數組,且是一一對應關係。如上是,兩天豎線
1.2 二項分布(Binomial Distribution)
如何檢驗一個分布是不是二項分布?
- 做某件事的次數n是一定的;
- n次事件是相互獨立的,而且每次的概率是一樣的,例如每次拋硬幣正面朝上的概率;
- 每次實驗有且只有兩個結果,p+q=1;
- 想知道n次中,某一種情況p或q出現k次的概率。
- 二項分布是離散分布,其概率用概率質量函數pmf計算
- 期望為np,方差為np(1-q)
以上就是二項分布的特徵,如符合則該分布是二項分布。
二項分布概率質量函數PMF為:
期望和方差:
* 期望:np , n次獨立事件預計成功多少次;
* 方差:np(1-p) , 用於估計數據的波動。# 計算概率n=5;p=0.5x=np.arange(0,n+1,1)#準備隨機變數,拋5次關於正面朝上有6種可能ylist=stats.binom.pmf(x,n,p)#計算出現各種可能的概率ylistarray([ 0.03125, 0.15625, 0.3125 , 0.3125 , 0.15625, 0.03125])# 繪圖plt.style.use(ggplot)f,ax=plt.subplots(figsize=(8,5))plt.plot(x,ylist,marker=o,linestyle=,color=r)plt.vlines(x,0,ylist,color=y)#繪製豎線# 設置#千萬注意%的使用:%d表示替換為整數,%0.2f替換為保留2為的浮點型數字,%s替換為字元串plt.title(二項分布:n=%d,p=%0.2f%(n,p),fontsize=22)plt.xticks(fontsize=12)plt.xlabel(正面朝上的次數,fontsize=15)plt.yticks(fontsize=12)plt.ylabel(概率,fontsize=15)# plt.text:第3個參數一定是文本,若其中有動態數字,一定要用格式化字元串%for i in x: plt.text(i,ylist[i]+0.006,%0.5f % ylist[i],ha=center, va= bottom,fontsize=11)# ha=center:水平居中;va= bottom:垂直方向在底部plt.show()
1.3 幾何分布(Geometric Distribution)
如何檢驗一個分布是幾何分布?
- 做某件事的次數n是一定的;
- n次事件是相互獨立的,而且每次的概率是一樣的,例如每次拋硬幣正面朝上的概率;
- 每次實驗有且只有兩個結果,p+q=1;
- 求的是第k次做某件事採取的第1次成功的概率
注意與二項分布的區別是:
- 二項分布:n次中共出現k次的概率
- 幾何分布:知道第k次才第1次成功的概率
幾何分布概率質量函數PMF及期望、方差:
- 期望: , 用於估計多少次後取得第1次成功
- 方差: , 用於估計數據波動大小
# 定義隨機變數:計算n=5時,各個k對應的幾何分布概率x=np.arange(1,6,1)p=0.6y_geo=stats.geom.pmf(x,p)y_geoarray([ 0.6 , 0.24 , 0.096 , 0.0384 , 0.01536])# 繪圖f,ax=plt.subplots(figsize=(8,6))plt.plot(x,y_geo,marker=o,linestyle=,color=r)plt.vlines(x,0,y_geo,color=y)# 設置plt.title(幾何分布:k=[1~5],p=%.2f% p,fontsize=22)plt.xlabel(實驗次數,fontsize=15)plt.ylabel(概率,fontsize=15)plt.xticks(fontsize=12)plt.yticks(fontsize=12)# 設置數據點標籤,注意x從1開始,而y_geo索引從0開始for i in x: plt.text(i,y_geo[i-1]+0.006,%.4f% y_geo[i-1], ha=center, va= bottom,fontsize=12)plt.show()
1.4 泊松分布(Poisson Distribution)
如何驗證是泊松分布?
- 事件是獨立事件;
- 任意相同的時間範圍內,事件發生的概率相等;
- 求:某個時間範圍內事件發生k次的概率。
概率質量函數PMF和參數
- k:事件發生的次數;
- :給定時間範圍內事件發生的平均數
- PMF:
- 期望和方差都是:
# 定義隨機變數mu=2# 已知某路口每天平均發生2次交通事故k=4# 求該路口1天發生4次交通事故的概率y=stats.poisson.pmf(k,mu)y0.090223522157741778# 定義隨機變數列表:0至4次x=np.arange(0,k+1,1)y_poiss=stats.poisson.pmf(x,mu)y_poissarray([ 0.13533528, 0.27067057, 0.27067057, 0.18044704, 0.09022352])# 繪圖展示f,ax=plt.subplots(figsize=(10,5))plt.plot(x,y_poiss,marker=o,linestyle=)plt.vlines(x,0,y_poiss,color=y)plt.title(泊松分布:發生0至4次事故的概率分布,均值為:2,fontsize=22)for i in x: plt.text(i,y_poiss[i]+0.006,%.5f%y_poiss[i], ha=center,va=bottom)
二,連續分布
幾種重要連續概率分布
- 正態分布
- 冪律分布
- 指數分布
- 分布
接下來重點介紹正態分布,其餘分布在大量數據情況下也趨於正態分布。
因此,理解了正態分布是極其重要的。正態分布
求正態分布的3個步驟
- 確定概率範圍:如x<3,明確了範圍
- 計算標準分:標準分=(x-平均值)/標準差
- 查表看概率值:根據這個標準分查表
兩種情況下的概率
- p(x>3)=1-p(x<3)
- p(2<x<5)=p(x<5)-p(x<2)
import numpy as npfrom scipy import statsimport matplotlib.pyplot as pltplt.style.use(ggplot)#定義隨機變數mu=0sigma=1x=np.arange(-5,5,0.1)xarray([ -5.00000000e+00, -4.90000000e+00, -4.80000000e+00, -4.70000000e+00, -4.60000000e+00, -4.50000000e+00, -4.40000000e+00, -4.30000000e+00, -4.20000000e+00, -4.10000000e+00, -4.00000000e+00, -3.90000000e+00, -3.80000000e+00, -3.70000000e+00, -3.60000000e+00, -3.50000000e+00, -3.40000000e+00, -3.30000000e+00, -3.20000000e+00, -3.10000000e+00, -3.00000000e+00, -2.90000000e+00, -2.80000000e+00, -2.70000000e+00, -2.60000000e+00, -2.50000000e+00, -2.40000000e+00, -2.30000000e+00, -2.20000000e+00, -2.10000000e+00, -2.00000000e+00, -1.90000000e+00, -1.80000000e+00, -1.70000000e+00, -1.60000000e+00, -1.50000000e+00, -1.40000000e+00, -1.30000000e+00, -1.20000000e+00, -1.10000000e+00, -1.00000000e+00, -9.00000000e-01, -8.00000000e-01, -7.00000000e-01, -6.00000000e-01, -5.00000000e-01, -4.00000000e-01, -3.00000000e-01, -2.00000000e-01, -1.00000000e-01, -1.77635684e-14, 1.00000000e-01, 2.00000000e-01, 3.00000000e-01, 4.00000000e-01, 5.00000000e-01, 6.00000000e-01, 7.00000000e-01, 8.00000000e-01, 9.00000000e-01, 1.00000000e+00, 1.10000000e+00, 1.20000000e+00, 1.30000000e+00, 1.40000000e+00, 1.50000000e+00, 1.60000000e+00, 1.70000000e+00, 1.80000000e+00, 1.90000000e+00, 2.00000000e+00, 2.10000000e+00, 2.20000000e+00, 2.30000000e+00, 2.40000000e+00, 2.50000000e+00, 2.60000000e+00, 2.70000000e+00, 2.80000000e+00, 2.90000000e+00, 3.00000000e+00, 3.10000000e+00, 3.20000000e+00, 3.30000000e+00, 3.40000000e+00, 3.50000000e+00, 3.60000000e+00, 3.70000000e+00, 3.80000000e+00, 3.90000000e+00, 4.00000000e+00, 4.10000000e+00, 4.20000000e+00, 4.30000000e+00, 4.40000000e+00, 4.50000000e+00, 4.60000000e+00, 4.70000000e+00, 4.80000000e+00, 4.90000000e+00])# 定義概率密度函數PDFy=stats.norm.pdf(x,mu,sigma)# 求一個試試看:y(x<0)的概率密度函數值y_0=stats.norm.pdf(0,mu,sigma)print(y_0)0.398942280401plt.style.use(ggplot)# 畫出概率密度函數yf,ax=plt.subplots(figsize=(10,5))plt.plot(x,y)plt.vlines(0,0,y_0,linestyle=--,color=y)plt.title(正態分布:$mu$=%.1f,$sigma$=%.1f%(mu,sigma),fontsize=22)plt.xlabel(隨機變數:x,fontsize=15)plt.ylabel(概率:y,fontsize=15)plt.xticks(fontsize=12)plt.yticks(fontsize=12)plt.show()
親自動手求 的區間
之前總聽說服從正太分布的數據,落在 之間的佔到99.74%,那麼99.74%究竟是怎麼來的?該如何得出這個比例?
正太分布的概率,完全取決於 $和 ,現以標準正太分布為例:
- :即是求P(-3 )
- 根據求正太分布概率的步驟,先求出標準分,即3
- 查表可知,x=3時概率為0.9987
- 帶入第1步計算可知,2*0.9987-1=0.9974,即99.74%
三,小結
- 注意區分四種離散概率分布的適用情況、概率計算;
- 四種連續的概率分布,由於時間的關係,只來得及整理正態分布,後面幾個將在日後整理更新到本文中。
- 理解為上。在理解的基礎上,在python中實現將大大加深記憶。
以上就是本文的全部,謝謝你查看????
人氣稀薄????,急需關愛????。
如果您竟然看到了這裡還沒走開,請幫忙多多點贊、收藏哈,謝謝啦朋友們~~
推薦閱讀:
※為照片添加地理信息
※哪裡能找到 Python 視頻教程地址?
※如何學習Python 標準庫的問題
※Flask的g對象,範圍是什麼?