2012-10-24 6 views
4

치료의 효과 크기를 조사하기 위해 측정을 위해 95 % CI와 평균값을 부트 스트랩하려고합니다. 사용하려는 방법은 LnRR 또는 로그 응답 비율 (1, 2, 3)이라고합니다. 간단히 계산하면 Log(Response to treatment/Response to control)입니다. 95 % CI가 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는 처음에는 조금 혼란 스럽습니다. 문제는 데이터와 서브 샘플링 할 지표를 포함하는 벡터를 모두 취하는 함수를 작성해야한다는 것입니다. 의가 명확하게 명시 적으로 함수를 다시 보자 : 훌륭한 답변

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

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

감사 :

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

그럼 당신이했던 것과 같은 방식으로 다소간에서 부팅을 호출합니다. 나는 그 기능에서 실수를 저지른 것을 본다. log (xSub [, 1])/log (xSub [, 2])가 아닌'log (xSub [, 1]/xSub [, 2])'이어야합니다. 나는 당신의 포스트에서 단지 2 인의 문자이기 때문에 이것을 고칠 수 없다. 사람들이 혼란스러워하지 않도록 수정하십시오. – Mikko