Beta分布
Posted gloria-zhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beta分布相关的知识,希望对你有一定的参考价值。
Beta分布
beta分布可以看做一个概率的概率分布。
首先试验是伯努利试验,它符合二项式分布。而Beta分布是先有一些试验结果,比如说有100个试验结果,其中30次成功,70次失败,然后在这个基础上继续试验,把新的试验结果加到原有结果上,beta分布就是这一系列操作后是某一概率的可能性大小,分布曲线的x轴是概率。
beta分布描述的就是我们不知道概率是多少,但是我们有一些先验结果,我们可以合理的猜测,beta分布就是作为表示概率的概率分布。
beta分布的概率密度函数是$$Betaleft( x|alpha ,eta
ight) =dfrac {x^{alpha -1}left( 1-x
ight) ^{eta -1}}{Bleft( alpha ,eta
ight) }$$
其中$$Bleft( alpha ,eta
ight) =dfrac {Gamma left( alpha
ight) Gamma left( eta
ight) }{Gamma left( alpha +eta
ight) }$$
$alpha $和$eta $可以当成是成功和失败的次数。
Beta分布相关代码
#导入库 import numpy as np import matplotlib.pyplot as plt import scipy.stats as stats
#PDF plt.figure(figsize=(14,7)) x=np.linspace(0,1,100) y=stats.beta.pdf(x,a=2,b=2) plt.plot(x,y,color=‘b‘,label=‘PDF‘) plt.fill_between(x,y,color=‘b‘,alpha=0.25) plt.legend() plt.show()
参数
$alpha $和$eta $比例相同,值不同。
#a和b比例相同,值不同 plt.figure(figsize=(14,7)) x=np.linspace(0,1,100) y1=stats.beta.pdf(x,a=1,b=1) y2=stats.beta.pdf(x,a=10,b=10) y3=stats.beta.pdf(x,a=100,b=100) plt.plot(x,y1,color=‘r‘,label=r‘$alpha=1,eta=1$‘) plt.fill_between(x,y1,color=‘r‘,alpha=0.25) plt.plot(x,y2,color=‘g‘,label=r‘$alpha=10,eta=10$‘) plt.fill_between(x,y2,color=‘g‘,alpha=0.25) plt.plot(x,y3,color=‘b‘,label=r‘$alpha=100,eta=100$‘) plt.fill_between(x,y3,color=‘b‘,alpha=0.25) plt.legend() plt.show()
$alpha $和$eta $比例不同,总和相同。
#a和b比例不同,总和相同 plt.figure(figsize=(14,7)) x=np.linspace(0,1,100) y1=stats.beta.pdf(x,a=25,b=75) y2=stats.beta.pdf(x,a=50,b=50) y3=stats.beta.pdf(x,a=75,b=25) plt.plot(x,y1,color=‘r‘,label=r‘$alpha=25,eta=75$‘) plt.fill_between(x,y1,color=‘r‘,alpha=0.25) plt.plot(x,y2,color=‘g‘,label=r‘$alpha=50,eta=50$‘) plt.fill_between(x,y2,color=‘g‘,alpha=0.25) plt.plot(x,y3,color=‘b‘,label=r‘$alpha=75,eta=25$‘) plt.fill_between(x,y3,color=‘b‘,alpha=0.25) plt.legend() plt.show()
随机样本
print(stats.beta.rvs(a=2,b=2)) print(stats.beta.rvs(a=2,b=2,size=10))
CDF
#CDF plt.figure(figsize=(14,7)) x=np.linspace(0,1,100) y=stats.beta.cdf(x,a=2,b=2) plt.plot(x,y,color=‘b‘,label=‘CDF‘) plt.legend() plt.show()
区间概率
print(‘p(x<0.3)={:.3}‘.format(stats.beta.cdf(a=2,b=2,x=0.3))) print(‘p(0.2<x<0.8)={:.3}‘.format(stats.beta.cdf(a=2,b=2,x=0.8)-stats.beta.cdf(a=2,b=2,x=0.2)))
以上是关于Beta分布的主要内容,如果未能解决你的问题,请参考以下文章
solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例