贝塔分布(Beta Distribution) 是一个作为伯努利分布和二项式分布的共轭先验分布的密度函数,在机器学习和数理统计学中有重要应用。在概率论中,贝塔分布,也称Β分布,是指一组定义在(0,1) 区间的连续概率分布。
文章来源:https://www.toymoban.com/news/detail-714831.html
文章来源地址https://www.toymoban.com/news/detail-714831.html
1. 生成Β分布的随机数rbeta函数
num <- 1000
alpha <- 2
belta <- 3
x <- seq(0,1,0.01)
# rbeta(num,shape1=0.609501654,shape2=0.695410541)
# rbeta(num,shape1=alpha,shape2=belta)
2.概率密度分布函数dbeta
plot(x,dbeta(x,shape1=alpha,shape2=belta))
plot(x,dbeta(x,shape1=0.609501654,shape2=0.695410541))
3.累积概率函数pbeta
pbeta(0.752,shape1=alpha,shape2=belta)
4.qbeta函数(pbeta的反函数)
# 达到给定累积概率值时,事件发生次数最少为多少
qbeta(0.95,shape1=alpha,shape2=belta)
5.beta分布参数估算
library(MASS)
m_distr <- rbeta(num,shape1=alpha,shape2=belta)
beta_values=fitdistr(m_distr,'beta',start=list(shape1=1,shape2=2))
6 从平均值和方差计算beta分布参数:alpha,belta
# 构造数据框,每一行数据为B分布
m_df <- data.frame()
m_distr <- rbeta(num,shape1=alpha,shape2=belta)
for (alpha in seq(1:3)){
for (belta in seq(2:5)){
data <- rbeta(num,shape1=alpha,shape2=belta)
m_df<- rbind(m_df,data,make.row.names=FALSE)
}
}
colnames(m_df) <- paste0("sample",1:1000)
rownames(m_df) <- paste0("probe",1:dim(m_df)[1])
m_df[1:2,1:3]
dim(m_df)
mean_vec=rowMeans(m_df,na.rm = TRUE)
var_vec=apply(m_df,1,function(x){return(var(x,na.rm = TRUE))})
alfa_vec=(mean_vec*(mean_vec-(mean_vec^2)-(var_vec)))/var_vec
beta_vec=(alfa_vec/mean_vec)-(alfa_vec)
results_df=data.frame(mean_vec,var_vec,alfa_vec,beta_vec)
到了这里,关于R语言B(beta)分布的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!