R语言 贝塔分布
统计学中的分布是一个函数,它显示了一个变量的可能值以及它们在特定实验或数据集中出现的频率。 贝塔分布 是一种概率分布,它代表了数据集的所有可能结果。贝塔分布基本上显示的是概率的概率,其中α和β,可以取任何数值,这取决于成功/失败的概率。
β分布的概率密度函数的一般公式是
其中
- p和q是形状参数
- a和b是下限和上限
- a≤x≤b
- p,q>0
- B(p,q)是β函数
为了具体了解R中的β分布,我们将学习β函数。 β函数 是β分布的一个组成部分(R中的β函数可以用β(a,b)函数来实现),其中包括这些beta、pbeta、qbeta和rbeta,它们是β分布的函数。
Beta函数的定义为
a=0,b=1的情况称为标准β分布。因此,标准贝塔分布是 。
通过贝塔分布,我们还可以找出中心趋势的量度,如平均数、中位数和模式,以及统计分散的量度,如方差。
为什么是贝塔分布
为什么我们可能真的要选择β分布来指定关于θ的先验知识,其中一个主要原因是这个分布是在[0,1]
的范围内定义的,所以当我们谈论概率时,β分布是一个非常自然的分布,我们要指定关于某物累积的概率的先验知识。
贝塔分布中的信念范围
信念范围是指我们实际上可以通过改变p和q的参数即形状参数来定义一个相当大的范围。
让我们举一个例子来更好地理解它。
S.no. | p | q |
---|---|---|
1 | 0.5 | 0.5 |
2 | 0.5 | 1 |
3 | 1 | 1 |
4 | 3 | 3 |
让我们从p和q都是0.5时开始。我们把1/2放在这个方程中。
之后,它变成
那么我们也可以这样写这个方程。
因此,从上述方程中我们观察到,如果x变成了0或1,那么我们就有无穷大。然后我们将计算所有p和q值的点。从上面的观察结果来看,Beta分布的PDF(概率分布函数)可以形成三种形状:带有渐近末端的U形、钟形、严格增加/减少甚至是直线。当你改变p或q的值时,分布的形状会发生变化。
因此,图表将看起来像这样
现在,让我们在R中绘制Beta分布函数,以便更好地理解它们。首先,绘制Beta密度,然后再绘制所有其他函数。
贝塔密度
为了绘制贝塔密度,我们知道它将位于(0,1)的范围之间。我们在绘图中使用一个dbeta和plot函数。
语法: dbeta(xvalues,alpha,beta)
例1: 在这里,我们可以观察到Beta密度(1,1)的绘图,我们可以观察到0和1之间的 均匀分布 。
# Creating the Sequence
gfg = seq(0, 1, by = 0.1)
# Plotting the beta density
plot(gfg, dbeta(gfg, 1,1), xlab="X",
ylab = "Beta Density", type = "l",
col = "Red")
输出
β密度图(1,1)。
例2: 在这里,我们可以观察到Beta密度(2,1)的图,在这里我们可以观察到 线性增加的函数, 在上面的图中我们可以看到,是点比0更有可能在1附近,它们以一种比例的方式上升。如果我们把图从(2,1)改为(1,2),我们可以看到,这些点比1更有可能靠近0。
# Creating the Sequence
gfg = seq(0,1, by=0.1)
# Case 2
plot(gfg, dbeta(gfg, 2,1), xlab="X",
ylab = "Beta Density", type = "l",
col = "Red")
输出
β密度图(2,1)。
例3: 在这里,我们可以观察到Beta密度图(2,2),我们可以观察到二次函数值几乎在0和1之间,但最可能有一个接近1/2的值。
# Creating the Sequence
gfg = seq(0,1, by=0.1)
# Case 3
plot(gfg, dbeta(gfg, 2,2), xlab = "X",
ylab = "Beta Density", type = "l",
col = "Red")
输出
β密度图(2,2)。
累积分布函数
你可以参考这个链接,了解贝塔分布函数的功能。
在我们的例子中,我们所拥有的数据显示了平均数,它可以采取0和1之间的任何数值,你可以看到0,1是上述代码中第3行的顺序参数,所以通过贝塔分布,我们描述了一个有界的连续分布,其值在0和1之间,主要是模拟随机实验成功的概率的不确定性,在我们的例子中,是具有特定平均值的概率。
正因为如此,它经常被用于与比例、频率或百分比有关的不确定性问题中。
# The Beta Distribution
plr.data <- data.frame(
player_avg <- c(seq(0, 1, by = 0.025)),
stringsAsFactors = FALSE
)
# Print the data frame.
print(plr.data)
print(plr.dataplayer_avg)
by1 <- dbeta(plr.dataplayer_avg, shape1 = 5, shape2 = 8)
par(mar = rep(2,4))
plot(by1)
# Cummilative distribution function
by2<- pbeta(plr.dataplayer_avg, shape1 = 4, shape2 = 6)
par(mar = rep(2,4))
plot(by2)
# Inverse Cummilative distribution function
by3 <- qbeta(plr.dataplayer_avg, shape1 = 4, shape2 = 6)
par(mar = rep(2,4))
plot(by3)
b4 <- rbeta(plr.data$player_avg, shape1 = 5, shape2 = 8)
par(mar = rep(2,4))
plot(density(b4), main = "Rbeta Plot")
输出