2012-10-24 45 views
4

我試圖引導95%CI和測量的平均值,以檢查治療效果的大小。我想要使​​用的方法稱爲LnRR或對數響應比(1,2,3)。它僅僅由Log(Response to treatment/Response to control)計算。如果95%置信區間不與0重疊,則自然效應的概率有95%以上。負面LnRR意味着治療有負面影響。自愈置信區間和平均值對數響應比率

引導軟件包中的引導功能有點令人困惑,我正在努力計算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,但由於某種原因,我無法理解如何做到這一點。

回答

7

我同意boot synatax起初有點混亂。問題是你需要編寫一個函數,它包含你的數據,以及一個包含索引的向量i來進行子採樣。讓我們重寫功能明確,以使其更清晰:

yourFun <- function(x, i) { 
    xSub <- x[i, ] #resample x 
    LnRR <- log(xSub[, 1])/xSub[ ,2] 
    return(mean(LnRR)) 
} 

然後調用啓動在更多或更少,你做了同樣的方式:

b <- boot(dat, yourFun, R=999) 
plot(b) #always worth looking at 

#Calculate ci's 
boot.ci(b) 
+0

感謝一個很好的答案。我看到我在函數中犯了一個錯誤。它應該是'log(xSub [,1]/xSub [,2])',而不是'log(xSub [,1])/ log(xSub [,2])''。我無法在你的文章中解決這個問題,因爲它只有幾個字符。請修復它,這樣人們不會感到困惑。 – Mikko

相關問題