Beta分布

摘要:
Beta分布beta分布可以看做一个概率的概率分布。而Beta分布是先有一些试验结果,比如说有100个试验结果,其中30次成功,70次失败,然后在这个基础上继续试验,把新的试验结果加到原有结果上,beta分布就是这一系列操作后是某一概率的可能性大小,分布曲线的x轴是概率。beta分布描述的就是我们不知道概率是多少,但是我们有一些先验结果,我们可以合理的猜测,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分布相关代码
#导入库
importnumpy as np
importmatplotlib.pyplot as plt
import scipy.stats as stats

PDF

#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()

Beta分布第1张

参数

$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()

Beta分布第2张

$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()

Beta分布第3张

随机样本

print(stats.beta.rvs(a=2,b=2))
print(stats.beta.rvs(a=2,b=2,size=10))

Beta分布第4张

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()

Beta分布第5张

区间概率

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分布第6张

免责声明:文章转载自《Beta分布》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇apk签名原理及实现Ehcache与Guava Cache的区别浅谈下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python--matplotlib

无论你工作在什么项目上,IPython都是值得推荐的。利用ipython --pylab,可以进入PyLab模式,已经导入了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使用相关库的功能。 本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找。 这样IPython配置为使用你所指定的matplotlib GU...

使用matplotlib画出log的图像

以下内容是学习笔记,若有侵权,立即删除! import math import matplotlib.pyplot as plt import numpy as np if __name__ == '__main__': #获得浮点类型numpy数组 x = np.arange(0.05,3,0.05) #获得函数结果 y1...

VS2015调用matlab Plot函数

最近经常采用Matlab仿真,然后C语言实现,最后需要将计算结果使用Qt的qwt或者matlab中的plot函数绘图。 因此想借用matlab的plot函数接口,使用VS2015来编写信号处理代码,最后通过绘图来验证。 参考博客: https://blog.csdn.net/shouzang/article/details/80795945 https:/...

Latex常用符号

Todo: 添加数学符号名称和用途 优化界面 希腊字母: 字母名称 小写 latex 大写 latex alpha $alpha$ alpha A A beta $eta$ eta B B gamma $gamma$ gamma $Gamma$ Gamma delta $delta$ delta $Delta$ Delta ep...

Matlab 曲线拟合

在matlab中经常需要对数据进行曲线拟合,如最常见的多项式拟合,一般可以通过cftool调用曲线拟合工具(curve fit tool),通过图形界面可以很方便的进行曲线拟合,但是有些时候也会遇到不方便用图形工具。因此这里简单的记下两种常用的拟合方法。 1 多项式拟合(polyfit和polyval) polyfit可以对数据进行拟合(自定义用几次多项式...

Python绘制正余弦函数图像的方法

今天打算通过绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样。通过这个过程来学习如何进行对图表的一些元素的进行调整。 简单绘图 matplotlib有一套允许定制各种属性的默认设置。你可以几乎控制matplotlib中的每一个默认属性:图像大小,每英寸点数,线宽,色彩和样式,子图(axes),坐标轴和网...