wangleihong的个人博客分享 http://blog.sciencenet.cn/u/wangleihong

博文

LearnBayes计算后验,用ggplot2包绘图。

已有 2330 次阅读 2022-5-8 22:45 |系统分类:教学心得

一般认为大学生的睡眠不会超过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))

图片.png

从图上可以看出,后验概率集中在0.35和0.45。

以上原题来自于刘强,裴艳波,张贝贝. R语言与现代统计方法.北京:清华大学出版社,235-237.

但代码,绘图方法与此书是不同的,主要的区别是这里利用了ggplot2包绘图。



https://m.sciencenet.cn/blog-3509182-1337641.html

上一篇:ggplot2,3.3.5 绘图主题与以前的2.2.* 版本有很大的区别
下一篇:ggplot2的函数式编程

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 01:03

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部