超几何分布_常见概率分布
離散分布
退化分布
若r.v.??只取常數值c,即??,這時分布函數為:??
把這種分布稱為退化分布或者單點分布。
伯努利分布
在一次實驗中,事件A出現的概率為??,不出現的概率為??,若用??記事件A出現的次數,則??僅取值0或1,相應的概率分布為
這個分布稱為伯努利分布,也叫兩點分布。
from?IPython.core.pylabtools?import?figsizeimport?numpy?as?np
import?scipy.stats?as?stats
from?matplotlib?import?pyplot?as?plt
import?warnings
warnings.filterwarnings("ignore")
%matplotlib?inline
X?=?np.arange(0,?2,1)
p?=?0.2?
pList?=?stats.bernoulli.pmf(X,?p)
plt.plot(X,?pList,?marker='o',linestyle='None')
plt.vlines(X,?0,?pList)
plt.xlabel('$k$')
plt.ylabel('$P(X?=?k)$')
plt.title('$P=%.2f$'?%?p)
plt.show()
二項分布
N:實驗次數或潛在事件發生數的一個正整數
P:在一次實驗中一種事件發生的概率
binomial?=?stats.binom
parameters?=?[(10,?.4),?(10,?.9)]
for?i?in?range(2):
????N,?p?=?parameters[i]
????_x?=?np.arange(N?+?1)
????plt.bar(_x?-?0.5,?binomial.pmf(_x,?N,?p),alpha=0.6,
????????????label="$N$:?{},?$p$:?{:.1f}"?.format(N,?p),
????????????linewidth=3)
plt.legend(loc="upper?left")
plt.xlim(0,?10.5)
plt.xlabel("$k$")
plt.ylabel("$P(X?=?k)$")
Text(0,?0.5,?'$P(X?=?k)$')
超幾何分布
對某批N 件產品進行不放回抽樣檢查,若這
批產品中有M件次品,現從整批產品中隨機抽出
n件產品,則在
這n件產品中出現的次品數x是隨機變量,它取值0,1, 2,..
n,其概率分布為超幾何分布.
s?=?np.random.hypergeometric(10,20,5,size=1000000)
p?=?sum(s>=4)/1000000.
fig?=?plt.figure(figsize=(8,6))
a1?=?fig.add_subplot(2,2,1)
a1.hist(s?,bins=20,color='b',alpha=0.3)
plt.show()
Poisson分布
若事件流具有平穩性、無后效性、普通性,則稱該事件流為泊松事件流(泊松流)。
平穩性:在任意時間區間內,事件發生k次(k≥0)的概率只依賴于區間長度而與區間端點無關.
無后效性:在不相重疊的時間段內,事件的發生是相互獨立的.
普通性:如果時間區間充分小,事件出現兩次或兩次以上的概率可忽略不計.
λ為任意正數,被稱為Poisson分布的強度。λ越大,得到大值的概率越大;λ越小,得到小值的概率越大。
k為任意非負整數,即k必須為0、1、2之類的值。
Poisson分布的重要性質是:它的期望值和方差值都等于它的參數??
figsize(12.5,?4)lams?=?[1,5,10]
for?i?in?lams:
????plt.scatter(np.arange(20),stats.poisson.pmf(np.arange(20),?mu=i),s=100,label='lam={}'.format(i))
????plt.plot(np.arange(20),stats.poisson.pmf(np.arange(20),?mu=i))
plt.legend()
<matplotlib.legend.Legend?at?0x277b1ad2f28>
幾何分布
在事件A發生的概率為p的伯努利試驗中,若
以η記A首次出現時的試驗次數,則η為隨機變量,它可能取的
值為1,2,3,…其概率分布為幾何分布:
?η?
k?=?5??p?=?0.6
X?=?np.arange(1,?k+1,1)
pList?=?stats.geom.pmf(X,p)
plt.vlines(X,?0,?pList,colors='r')
plt.xlabel('$k$')
plt.ylabel('$p\{X=k\}$')
plt.title('p=%.2f'?%?p)
plt.show()
帕斯卡分布
在伯努利試驗中,若以ζ記第r次成
功出現時的試驗次數,則ζ是隨機變量,取值r,r+l, .其概率
分布為帕斯卡分布:?ζ?
負二項分布
對巴斯卡分布,可以略加推廣,即去掉r是正整數的限制,這
便得到負二項分布
對于任意實數r>0,稱
??
為負二項分布。
可證??
fig,?ax?=?plt.subplots(1,?1)n,?p?=?0.4,?0.4
mean,?var,?skew,?kurt?=?stats.nbinom.stats(n,?p,?moments='mvsk')
x?=?np.arange(stats.nbinom.ppf(0.01,?n,?p),
??????????????stats.nbinom.ppf(0.99,?n,?p))
ax.plot(x,?stats.nbinom.pmf(x,?n,?p),?'bo',?ms=8,?label='nbinom?pmf')
ax.vlines(x,?0,?stats.nbinom.pmf(x,?n,?p),?colors='b',?lw=5,?alpha=0.5)
rv?=?stats.nbinom(n,?p)
ax.vlines(x,?0,?rv.pmf(x),?colors='k',?linestyles='-',?lw=1,
????????label='frozen?pmf')
ax.legend(loc='best',?frameon=False)
plt.show()
連續分布
均勻分布
若a,b為有限數,由下列密度函數定義的分布
稱為[a, b].上均勻分布:
?或?
plt.plot(np.linspace(-4,4,100),stats.uniform.pdf(np.linspace(-4,4,100)))plt.fill_between(np.linspace(-4,4,100),stats.uniform.pdf(np.linspace(-4,4,100)),alpha=0.15)
plt.plot(np.linspace(-4,4,100),stats.uniform.cdf(np.linspace(-4,4,100)))
plt.text(x=-1.5,y=0.7,s="pdf(uniform)",rotation=65,alpha=0.75,weight="bold",color="b")
plt.text(x=-0.4,y=0.5,s="cdf",rotation=55,alpha=0.75,weight="bold",color="r")
Text(-0.4,?0.5,?'cdf')
正態分布
一個正態分布用X~N(μ,1/τ)表示,它帶有兩個參數:均值μ和精準度τ。這里用1/τ代替了σ2,主要是因為這樣能簡化數據分析。記住:τ越小,分布越寬(即我們越不能確定);τ越大,分布越窄(即我們越能確定)。不管怎么樣,τ永遠為正數。
一個服從N(μ,1/τ)的隨機變量的概率密度函數如下:
#?展示正態分布的不同密度函數figsize(12.5,?4)
nor?=?stats.norm
x?=?np.linspace(-8,?7,?150)
mu?=?(-2,?0,?3)
tau?=?(.7,?1,?2.8)
parameters?=?zip(mu,?tau)
for?_mu,?_tau?in?parameters:
????plt.plot(x,?nor.pdf(x,?_mu,?scale=1./_tau),
?????????????label="$\mu?=?{},\;\\tau?=?{:.1f}$".format(_mu,?_tau))
????plt.fill_between(x,?nor.pdf(x,?_mu,?scale=1./_tau),alpha=.33)
plt.legend(loc="upper?right")
<matplotlib.legend.Legend?at?0x277b3db7748>
指數分布
指數可以取任意非負值,包括非整數
對指定的參數λ,指數型隨機變量的期望值為λ的逆??????????????????????????????
a?=?np.linspace(0,?4,?100)expo?=?stats.expon
lambda_?=?[0.2,0.5,?1]
for?l?in?lambda_:
????plt.plot(a,?expo.pdf(a,?scale=1./l),?lw=3,?label="$\lambda?=?{:.1f}$".format(l))
????plt.fill_between(a,?expo.pdf(a,?scale=1./l),alpha=.33)
plt.legend()
plt.ylabel("PDF?at?$z$")
plt.xlabel("$z$")
plt.ylim(0,1.2)
(0.0,?1.2)
gamma?=?stats.gamma
fig,?ax?=?plt.subplots(1,?1)
a?=?1.99
mean,?var,?skew,?kurt?=?gamma.stats(a,?moments='mvsk')
x?=?np.linspace(gamma.ppf(0.01,?a),
????????????????gamma.ppf(0.99,?a),?100)
ax.plot(x,?gamma.pdf(x,?a),
???????'r-',?lw=5,?alpha=0.6,?label='gamma?pdf')
rv?=?gamma(a)
ax.plot(x,?rv.pdf(x),?'k-',?lw=2,?label='frozen?pdf')
r?=?gamma.rvs(a,?size=1000)
ax.hist(r,?density=True,?histtype='stepfilled',?alpha=0.2)
ax.legend(loc='best',?frameon=False)
plt.show()
Gamma分布
指數分布解決的問題是“要等到一個隨機事件發生,需要經歷多久時間”,伽瑪分布解決的問題是“要等到n個隨機事件都發生,需要經歷多久時間”。所以,伽瑪分布可以看作是n個指數分布的獨立隨機變量的加總。
figsize(12.5,?5)parameters?=?[(1,?0.5),?(9,?2),?(3,?0.5),?(7,?0.5)]
x?=?np.linspace(0.001?,20,?150)
for?alpha,?beta?in?parameters:
????y?=?gamma.pdf(x,?alpha,?scale=1./beta)
????lines?=?plt.plot(x,?y,?label?=?"({:.1f},{:.1f})".format(alpha,beta),?lw?=?3)
????plt.fill_between(x,?0,?y,?alpha?=?0.2,?color?=?lines[0].get_color())
????plt.autoscale(tight=True)
plt.legend(title=r"$\alpha,?\beta$?-?parameters")
<matplotlib.legend.Legend?at?0x277b3c247b8>
Beta分布
Beta分布的密度函數為:??
figsize(12.5,?4)datas?=?np.linspace(0,?1,?200)
plt.fill_between(datas,stats.beta.pdf(datas,?a=5,?b=10),hatch="+")
plt.fill_between(datas,stats.beta.pdf(datas,?a=100,?b=20),hatch="//")
plt.fill_between(datas,stats.beta.pdf(datas,?a=20,?b=60),hatch="*")
<matplotlib.collections.PolyCollection?at?0x277b4184710>
總結
以上是生活随笔為你收集整理的超几何分布_常见概率分布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配F1赛车同款发动机 史上最强AMG发布
- 下一篇: ENQUEUE_UNIQUE_RENDE