bca 방법을 사용하여 신뢰 구간을 계산할 때 R 부트 패키지에서 "추정 조정 'a'는 NA입니다"라는 오류가 발생하는 이유는 무엇입니까?


14

dput을 사용하여 여기에 업로드 한 숫자 벡터가 있습니다 (... / code / MyData.Rdata).

bca ci를 얻고 싶습니다.이 코드를 작성했습니다.

my.mean <- function(dat, idx){
 return (mean(dat[idx], na.rm = TRUE))
} 

boot.out<-boot(data=my.data, statistic = my.mean, R=1000)

그러나 다음을 실행하면이를 얻습니다.

> boot.ci(boot.out)
Error in bca.ci(boot.out, conf, index[1L], L = L, t = t.o, t0 = t0.o,  : 
estimated adjustment 'a' is NA
In addition: Warning message:
In boot.ci(boot.out) : bootstrap variances needed for studentized intervals

누군가이 오류의 원인을 파악하도록 도와 줄 수 있습니까? 도와 주셔서 감사합니다!


3
R = 1000 대신 R = 10000으로 시도하고 (이것은 실제로 원하는 것이므로 type = 'all'대신 type = 'bca'를 지정) 작동합니다. 내 결론은이 오류의 원인은 부트 스트랩 복제가 충분하지 않다는 것입니다 ... 그러나 더 이상 말할 수 없습니다 ...
ocram

답변:


23

오류 메시지에서 볼 수 boot.ci있듯이을 호출하십시오 bca.ci. boot.out객체가를 제공하지 않기 때문에 L데이터에서 계산하는 통계에 대한 경험적 영향 값 bca.ciempinf함수를 사용하여 계산하려고 시도한 다음 (Michael이 말한 것처럼) 가속 상수를 계산하는 데 사용합니다.

L <- empinf(boot.out, index = index, t = t.o, ...)
a <- sum(L^3)/(6 * sum(L^2)^1.5)

그러나 적은 수의 복제로 empinf때로는 실패하고 NA값 의 벡터를 반환 합니다. 결과는 당신이 값이없는 것입니다 L, a계산 될 수없고, 당신이 당신의 오류가 발생합니다. ocram이 말했듯이 boostrap 복제 수를 늘리면 문제가 해결됩니다. R2000 년으로 두 배로 늘려야 할 것입니다.


1
+1 @Kieran 감사합니다! 내 추측에 약간의 타당성이있어서 기쁘다. 귀하는 관련된 R 프로그램에 대한 지식을 바탕으로 정답을 얻습니다. 그래서 내 대답은 더 이상 필요하지 않습니다. 누군가가 나를 추측하는 것을 좋아하지 않았거나 내 대답이 의견이어야한다고 생각했습니다. 이러한 이유로 인해 지금 삭제하는 것이 좋습니다.
Michael R. Chernick

4
stat.ethz.ch/pipermail/r-help/2011-February/269006.html 에 따르면 반복 횟수는 데이터 행 수보다 커야합니다. 나는 많은 반복이 필요하다고 가볍게 생각했다 ...
BurninLeo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.