我试图引导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])
Run Code Online (Sandbox Code Playgroud)
我显然做错了什么.如何为这种类型的函数引导置信区间(boot.ci)?我确信答案就在这里,但出于某种原因,我无法理解如何做到这一点.
我一致认为bootsynatax有点令人困惑.问题是你需要编写一个既包含数据的函数,又包含一个包含子样本索引的向量i.让我们明确地重写你的函数,使它更清晰:
yourFun <- function(x, i) {
xSub <- x[i, ] #resample x
LnRR <- log(xSub[, 1])/xSub[ ,2]
return(mean(LnRR))
}
Run Code Online (Sandbox Code Playgroud)
然后以与您相同的方式或多或少地调用boot:
b <- boot(dat, yourFun, R=999)
plot(b) #always worth looking at
#Calculate ci's
boot.ci(b)
Run Code Online (Sandbox Code Playgroud)