我正在尝试引导95%CI和测量值的平均值,以检查治疗的效果大小。我想要使用的方法称为LnRR或对数响应比(1,2,3)。它只是由Log(Response to treatment / Response to control)
计算得出。如果95%CI与0不重叠,则效果自然超过95%。负LnRR意味着治疗具有负面影响。
启动包中的bootstrapping功能有点令人困惑,我正在努力计算95%的CI和平均值。我试过以下:
library(boot)
set.seed(2)
dat <- data.frame(treatment = rnorm(10, 1.2, 0.4), control = rnorm(10, 1.5, 0.3))
boot(dat, function(x) log(x[,1]/x[,2]), R = 999) # Because LnRR = log(dat[,1]/dat[,2])
我显然做错了什么。如何为这种类型的函数引导置信区间(boot.ci)?我确信答案是here,但由于某种原因,我无法理解如何做到这一点。
答案 0 :(得分:7)
我同意boot
synatax起初有点令人困惑。问题是你需要编写一个函数来获取你的数据,以及包含索引的向量i到子样本。让我们明确地重写你的函数,使它更清晰:
yourFun <- function(x, i) {
xSub <- x[i, ] #resample x
LnRR <- log(xSub[, 1])/xSub[ ,2]
return(mean(LnRR))
}
然后以与你相同的方式或多或少地调用boot:
b <- boot(dat, yourFun, R=999)
plot(b) #always worth looking at
#Calculate ci's
boot.ci(b)