首页 > 解决方案 > 如何从 ggplot2 R 中的自举模型绘制具有估计均值和置信区间的原始数据点?

问题描述

我有几个因素的数据。我已经运行了一个带有均值和置信区间的自举模型。我想绘制两个数据点以及模型结果均值和置信区间。我怎样才能做到这一点?

yval <- c(0.10,0.12,0.50,0.13,0.20,0.15,0.68,0.71,0.90,0.10,0.11,0.12,0.14,0.15,0.16,0.20,0.14,0.15,0.66,0.222)
type <- c("A","S","A","S","A","S","A","S","A","S","A","S","A","S","A","S","A","S","A","S")
status <- c("L","H","L","H","L","H","L","H","L","H","L","H","L","H","L","H","L","H","L","H")


data <- data.frame(yval, type, status)

然后我尝试了一个很长的复杂模型,它给出了这个矩阵

                      est        2.5%     97.5%
    (Intercept)  0.14593333 -0.10347804 0.3817681
    typeA        0.26295217 -0.01156827 0.5503199
    statusH      0.09181279 -0.18906489 0.3748384

我想将原始数据绘制为模型中具有适当均值和置信区间的点。请不要在 ggplot2 中建议内置的增强置信区间。我想专门使用上面的那些。

ggplot(data, aes(x=status, y= yval, color = status)) + theme_bw()  +  geom_point(position = pd, size = 1.5) + facet_grid(.~type)

标签: rggplot2plotbootstrap-modalconfidence-interval

解决方案


你在找geom_errorbar吗?

data2<-data.frame(yval= c(0.10,0.12,0.50,0.13,0.20,0.15,0.68,0.71,0.90,0.10,0.11,0.12,0.14,0.15,0.16,0.20,0.14,0.15,0.66,0.222),
                  typeA =c("A","S","A","S","A","S","A","S","A","S","A","S","A","S","A","S","A","S","A","S"),
                  statusH=c("L","H","L","H","L","H","L","H","L","H","L","H","L","H","L","H","L","H","L","H")

)
data2<-data2%>%
  mutate(.,type=mapvalues(data2$type, from = c("A", "S"), to = c("typeA", "statusH")))

data<-read.table(text="
type est        l2.5     u97.5
  (Intercept)  0.14593333 -0.10347804 0.3817681
typeA        0.26295217 -0.01156827 0.5503199
statusH      0.09181279 -0.18906489 0.3748384
",header=T)
pd=position_dodge(10)
ggplot(data, aes(x=type, y= est, color = type)) + 
  theme_bw()  +
  geom_point(size = 3.5,position=pd) + 
geom_errorbar(aes(ymin=l2.5, ymax=est+u97.5), width=0.1,position = pd)+
    geom_point(data=data2, aes(x=type,y=yval),size=1)

我可能遗漏了一些东西,但听起来你可以直接使用第二个矩阵。

在此处输入图像描述


推荐阅读