Почему при расчете доверительных интервалов с использованием метода bca генерируется ошибка «оценочная корректировка« a »является NA» из загрузочного пакета R?


14

У меня есть вектор чисел, который я загрузил здесь (... / code / MyData.Rdata), используя dput.

Я хотел бы получить 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 = 10000 вместо R = 1000 (и указав type = 'bca' вместо type = 'all', поскольку это то, что вы действительно хотите), и это работает. Так что мой вывод был бы то , что является причиной этой ошибки не хватает бутстраповских репликаций ... но я не могу сказать больше ...
ocram

Ответы:


23

Как видно из сообщения об ошибке, boot.ciзвонки bca.ci. Поскольку boot.outобъект не предоставляет L, эмпирические значения влияния для статистики, которую вы рассчитываете на данных, bca.ciпытается вычислить их с помощью empinfфункции, а затем (как говорит Майкл) использует их для вычисления константы ускорения:

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

Но при небольшом количестве репликаций empinfиногда происходит сбой и возвращается вектор NAзначений. В результате у вас нет значений для L, aвы не можете рассчитать, и вы получите свою ошибку. Как говорит Окрам, увеличение количества репликаций Boostrap это исправит. Даже удвоение Rдо 2000 года, вероятно, должно сделать это.


1
+1 @Kieran Спасибо! Я рад, что мое предположение имело определенную силу. У вас есть правильный ответ из ваших знаний о программах R. так что мой ответ больше не нужен. Кто-то или не хотел, чтобы я угадывал, или думал, что мой ответ должен быть комментарием. По всем этим причинам имеет смысл удалить его сейчас.
Майкл Р. Черник

4
Для других, кто страдает от этой проблемы: Согласно stat.ethz.ch/pipermail/r-help/2011-F февраль/269006.html количество повторений должно быть больше, чем количество строк данных. Я был слегка удивлен, что так много повторений необходимо ...
BurninLeo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.