Для контекста: Я смотрю на несколько различных коэффициентов корреляции. Для каждой корреляции я создал загрузочное распределение, и я использую метод процентили начальной загрузки, чтобы создать доверительные интервалы для каждого коэффициента.Поскольку я смотрю на множественные корреляции, я на самом деле использую более строгий альфа-уровень, и мне нужно будет повторить этот анализ для разных наборов данных с различными альфа-поправками в будущем.Все это прошло хорошо, но я изо всех сил пытаюсь создать график, представляющий пользовательские интервалы в виде полос ошибок.
Вопрос: Как создать график в ggplot для представления медианных значений моих данных вместе с пользовательскими процентилями для моих панелей ошибок.Мои данные находятся в data.frame с одной переменной, идентифицирующей группу (анализ), и второй переменной со всеми оценками в группе.Фактически существует 10 000 случаев для каждого уровня переменной «Анализ», что в общей сложности составляет 40 000 строк.Я включил распечатку индекса для краткости непосредственно ниже.
>BootDistOverall[c(1:2,10000:10002,20000:20002,30000:30002),]
Analysis Dist
1 Alpha by Consequences (No Outlier) -0.4286326
2 Alpha by Consequences (No Outlier) -0.4191646
10000 Alpha by Consequences (No Outlier) -0.5248891
10001 Alpha by Past-30-Day Binge Drinking -0.2972018
10002 Alpha by Past-30-Day Binge Drinking -0.3011621
20000 Alpha by Past-30-Day Binge Drinking -0.4145920
20001 Q0 by Consequences 0.3689336
20002 Q0 by Consequences 0.4540535
30000 Q0 by Consequences 0.5772917
30001 Q0 by Past-30-Day Binge Drinking 0.6655952
30002 Q0 by Past-30-Day Binge Drinking 0.4412748
Мне удалось создать сюжет для скрипки данных с использованием ggplot (см. Ссылку и код ниже), но мне бы очень хотелось, чтобы средние значения каждого распределения были представлены, а такжепроцентили как бары ошибок.Я могу получить срединные значения или блок-график для представления этих данных, но мне нужны пользовательские процентили.
p0 <- <-ggplot(BootDistOverall, aes(Analysis,Dist))+
geom_violin(scale = "area",
color = "#002344",
size = 1,
fill = "#FECB00")+
ylim(-1,1)+
geom_hline(yintercept = 0,
linetype = "dashed",
color = "black")+
xlab("Analysis")+
ylab("Bootstrapped Pearson's r")+
coord_flip()+
theme_bw()
Мне нужна помощь в создании аналогичного графика, но с точками для медианы и панелями ошибок, соответствующими моим пользовательским процентилям.Я пробовал несколько разных методов (geom_errorbar, geom_pointrange), и я не могу заставить их работать.Единственный способ, которым я смог сделать работу - это добавить сегменты линий к графику индивидуально, как я сделал бы в графике base R с помощью стрелок () (см. Код и ссылку ниже), но должен быть лучший способ.Я новичок в ggplot, так что может быть простое исправление, но я в своем уме.
#Create percentile points
Uppers = c(
quantile(BootDist2$Dist, .995,na.rm=T),
quantile(BootDist4$Dist, .995,na.rm=T),
quantile(BootDist1$Dist, .995,na.rm=T),
quantile(BootDist3$Dist, .995,na.rm=T))
Lowers = c(
quantile(BootDist2$Dist, .005,na.rm=T),
quantile(BootDist4$Dist, .005,na.rm=T),
quantile(BootDist1$Dist, .005,na.rm=T),
quantile(BootDist3$Dist, .005,na.rm=T))
#Create a point graph
ggplot(BootDistOverall, aes(x=Analysis,y=Dist))+
stat_summary(fun.y = mean,
geom = "point",
shape=22,
size=5,
color = "#002344",
fill = "#FECB00")+
theme_bw()+
coord_flip()+
ylim(-1,1)+
geom_hline(yintercept = 0,
linetype = "dashed",
color = "black")+
xlab("Analysis")+
ylab("Bootstrapped Pearson's r")+
#Add error bars with geomsemgents
geom_segment(x=1,xend=1,y=Lowers[1],yend=Uppers[1])+
geom_segment(x=2,xend=2,y=Lowers[2],yend=Uppers[2])+
geom_segment(x=3,xend=3,y=Lowers[3],yend=Uppers[3])+
geom_segment(x=4,xend=4,y=Lowers[4],yend=Uppers[4])+
geom_segment(x=.9,xend=1.1,y=Lowers[1],yend=Lowers[1])+
geom_segment(x=.9,xend=1.1,y=Uppers[1],yend=Uppers[1])+
geom_segment(x=1.9,xend=2.1,y=Lowers[2],yend=Lowers[2])+
geom_segment(x=1.9,xend=2.1,y=Uppers[2],yend=Uppers[2])+
geom_segment(x=2.9,xend=3.1,y=Lowers[3],yend=Lowers[3])+
geom_segment(x=2.9,xend=3.1,y=Uppers[3],yend=Uppers[3])+
geom_segment(x=3.9,xend=4.1,y=Lowers[4],yend=Lowers[4])+
geom_segment(x=3.9,xend=4.1,y=Uppers[4],yend=Uppers[4])