看看答案here如何估算自举时间间隔?这个问题也在ggplot2列表中被提出 .
library(dplyr)
mtcars %>%
group_by(vs) %>%
summarise(mean.mpg = mean(mpg, na.rm = TRUE),
sd.mpg = sd(mpg, na.rm = TRUE),
n.mpg = n()) %>%
mutate(se.mpg = sd.mpg / sqrt(n.mpg),
lower.ci.mpg = mean.mpg - qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg,
upper.ci.mpg = mean.mpg + qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg)
3 回答
Hmisc
包具有函数smean.cl.boot
,可以轻松计算简单的引导置信区间 . 最难的部分(IMO)将此结果的多个输出(该函数返回一个3元素的数字向量)合并到dplyr
工作流程中(参见dplyr::mutate to add multiple values)新列标记为
Mean
,Lower
,Upper
,但是额外的setNames
调用将修复该...如果做了很多这样的事情,
使用上面的代码,
答案是
ORIGINAL ANSWER:引导单个列
下面的代码包括一个简单的引导函数以及一些返回信息数据框的附加代码:
更新:引导任何列的选择
根据您的评论,这里有一个更新的方法来获取任何列选择的bootsrapped置信区间:
其他更新以回答评论中的问题
UPDATE: 在@BenBolker的回答中回答你对我的评论:如果你想要
sample
返回的结果,你可以这样做:这将返回一个包含1000列的矩阵,每个列都是
mtcars$mpg
的vs==1
的单独引导样本 . 你也可以这样做:这将返回一个列表,其中第一个列表元素是
vs==0
的引导样本矩阵,第二个列表元素是vs==1
.UPDATE 2: 为了回答你的第二条评论,这里是如何引导整个数据框(并假设你要保存所有副本,而不是总结它们 . 下面的代码返回1000个自举版本
mtcars1
的列表 . 如果列表将是巨大的,如果你有很多数据,所以你可能只想保留每个bootstrap样本的汇总结果,比如列方法 .