4

治療の効果量を調べるために、95%のCIと測定値の平均値をブートストラップしようとしています。私が使用したい方法は、LnRRまたは対数応答比(1、2、3 呼ばれます。単純に。で計算されます。95%のCIが0と重なっていない場合、自然に効果が発生する確率は95%を超えます。負のLnRRは、治療が負の効果をもたらすことを意味します。Log(Response to treatment / Response to control)

ブートパッケージのブートストラップ機能はちょっと混乱していて、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)をブートストラップするにはどうすればよいですか?答えはここにあると思いますが、どういうわけか、どうしたらいいのかわかりません。

4

1 に答える 1

7

boot最初は、シナタックスが少し混乱していることに同意します。問題は、データと、サブサンプリングするインデックスを含むベクトル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)
于 2012-10-24T16:31:14.323 に答える