[英]How to calculate bootstrapped confidence interval using the mean_CI_boot used in ggplot2?
I have a 2 x 2 factorial data set for which I have plotted the confidence intervals using mean_cl_boot
function.我有一个 2 x 2 阶乘数据集,我已经使用mean_cl_boot
函数为其绘制了置信区间。 I want to calculate this in R using the appropriate function.我想使用适当的函数在 R 中计算它。 How can I do that?我怎样才能做到这一点?
A sample of my data set is as:我的数据集示例如下:
df <- data.frame(
fertilizer = c("N","N","N","N","N","N","N","N","N","N","N","N","P","P","P","P","P","P","P","P","P","P","P","P","N","N","N","N","N","N","N","N","N","N","N","N","P","P","P","P","P","P","P","P","P","P","P","P"),
level = c("low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","high","low","low","high","low"),
repro = c(0,90,2,4,0,80,1,90,2,33,56,0,99,100,66,80,1,0,2,33,0,0,1,2,90,5,2,2,5,8,0,1,90,2,4,66,0,0,0,0,1,2,90,5,2,5,8,55)
)
I know there are ways of extracting the CI points from the graph, but I do not want to do this.我知道有一些方法可以从图中提取 CI 点,但我不想这样做。 I want to use the function that calculates this.我想使用计算这个的函数。
mean_cl_boot
is built on Hmisc::smean.cl.boot()
. mean_cl_boot
建立在Hmisc::smean.cl.boot()
。
If you want to compute the bootstrapped CI for all of the values (regardless of level), smean.cl.boot(df$repro)
should do it.如果您想为所有值(无论级别如何)计算自举 CI, smean.cl.boot(df$repro)
应该这样做。
This is how you would do the split-apply-combine in base R:这就是在 base R 中执行拆分-应用-组合的方法:
library(Hmisc)
ss <- with(df, split(df, list(fertilizer,level)))
bb <- lapply(ss, function(x) smean.cl.boot(x$repro))
do.call(rbind,bb)
Results:结果:
Mean Lower Upper
N.high 19.00000 5.747917 36.58750
P.high 26.09091 8.631818 47.27273
N.low 33.75000 12.416667 58.26042
P.low 20.38462 1.615385 42.69423
If you want to do this in tidyverse:如果你想在 tidyverse 中这样做:
library(tidyverse)
(df
%>% group_split(fertilizer,level)
%>% map_dfr(~as_tibble(rbind(smean.cl.boot(.[["repro"]]))))
(this is not entirely satisfactory: there's probably a cleaner way to do it) (这并不完全令人满意:可能有更简洁的方法来做到这一点)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.