Pourquoi l'erreur «l'ajustement estimé« a »est NA» est-elle générée à partir du package de démarrage R lors du calcul des intervalles de confiance à l'aide de la méthode bca?

14

J'ai un vecteur de nombres que j'ai téléchargé ici (... / code / MyData.Rdata) en utilisant dput.

Je voudrais obtenir le bca ci donc j'ai écrit ce code:

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

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

Mais quand je lance ce qui suit, j'obtiens ceci:

> 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

Quelqu'un peut-il m'aider à déterminer la cause de cette erreur? Merci de votre aide!

user1357015
la source
3
J'ai essayé avec R = 10000 au lieu de R = 1000 (et en spécifiant type = 'bca' au lieu de type = 'all' car c'est ce que vous voulez vraiment) et cela fonctionne. Donc ma conclusion serait que ce qui cause cette erreur n'est pas assez de réplications bootstrap ... mais je ne peux pas en dire plus ...
ocram

Réponses:

23

Comme vous pouvez le voir dans votre message d'erreur, les boot.ciappels bca.ci. Parce que l' boot.outobjet ne fournit pas L, les valeurs d'influence empiriques pour la statistique que vous calculez sur les données, bca.ciessaient de les calculer en utilisant la empinffonction, puis (comme Michael le dit), il les utilise pour calculer la constante d'accélération:

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

Mais avec un petit nombre de réplications, empinféchoue parfois et renvoie un vecteur de NAvaleurs. Le résultat est que vous n'avez aucune valeur pour L, ane peut pas être calculé et vous obtenez votre erreur. Comme le dit ocram, l'augmentation du nombre de réplications boostrap corrigera ce problème. Même doubler Rà 2000 devrait probablement le faire.

Kieran
la source
1
+1 @Kieran Merci! Je suis heureux que ma supposition ait une certaine validité. Vous avez la bonne réponse de votre connaissance des programmes R impliqués. donc ma réponse n'est plus nécessaire. Quelqu'un n'a pas aimé que je devine ou a pensé que ma réponse devrait être un commentaire. Pour toutes ces raisons, il est logique pour moi de le supprimer maintenant.
Michael R. Chernick
4
Pour les autres personnes qui souffrent du problème: selon stat.ethz.ch/pipermail/r-help/2011-F February/269006.html, le nombre de répétitions doit être supérieur au nombre de lignes de données. J'ai été légèrement surpris que tant de répétitions soient nécessaires ...
BurninLeo