|
一般认为大学生的睡眠不会超过8小时,概率值p低于0.5,为了进一步研究,随机抽取了27名大学生,其中11名大学生睡眠超过了8小时,利用这个先验信息和观测数据,对这个深睡眠比率p进行估计。
install.packages("LearnBayes")
library(LearnBayes)
p <- seq(0.05,0.95,by=0.1) # 概率网格
prior <- c(1,5.2,8,7.2,4.6,2.1,0.7,0.1,0,0) # 睡眠可能时间
prior <- prior/sum(prior) # 计算先验概率
plot(p,prior,type="h",ylab="Prior Probability") # 先验分布图
data <- c(11,16)
post <- pdisc(p,prior,data)
round(cbind(p,prior,post),2)
PRIOR <- data.frame("prior",p,prior)
POST <- data.frame("post",p,post)
names(PRIOR)[1] <-"Type"
names(PRIOR)[3] <- "probability"
names(POST)[1] <- "Type"
names(POST)[3] <- "probability"
data <- rbind(PRIOR,POST)
library(ggplot2)
p <- ggplot(data,aes(p,probability,shape=Type,colour=Type))
p+geom_bin2d()+
theme_classic()+
facet_wrap(~Type,ncol=1)+
scale_x_continuous(limits = c(0,1),breaks=c(0,0.1,0.2,0.3,0.4,0.5,0.6,
0.7,0.8,0.9,1))
从图上可以看出,后验概率集中在0.35和0.45。
以上原题来自于刘强,裴艳波,张贝贝. R语言与现代统计方法.北京:清华大学出版社,235-237.
但代码,绘图方法与此书是不同的,主要的区别是这里利用了ggplot2包绘图。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-7-23 05:20
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社