Warum wird der Fehler "geschätzte Anpassung 'a' ist NA" aus dem R-Boot-Paket generiert, wenn Konfidenzintervalle mit der bca-Methode berechnet werden?


14

Ich habe einen Vektor von Zahlen, den ich hier mit dput hochgeladen habe (... / code / MyData.Rdata).

Ich möchte das bca ci bekommen, also habe ich diesen Code geschrieben:

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

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

Aber wenn ich Folgendes ausführe, bekomme ich Folgendes:

> 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

Kann mir jemand helfen, herauszufinden, was diesen Fehler verursacht? Danke für deine Hilfe!


3
Ich habe es mit R = 10000 anstelle von R = 1000 versucht (und type = 'bca' anstelle von type = 'all' angegeben, da dies das ist, was Sie wirklich wollen) und es funktioniert. Meine Schlussfolgerung wäre also, dass das, was diesen Fehler verursacht, nicht genug Bootstrap-Replikationen sind ... aber ich kann nicht mehr sagen ...
ocram

Antworten:


23

Wie Sie Ihrer Fehlermeldung entnehmen können, werden boot.ciAnrufe getätigt bca.ci. Da das boot.outObjekt nicht liefert L, bca.civersuchen die empirischen Einflusswerte für die Statistik, die Sie für die Daten berechnen, diese mithilfe der empinfFunktion zu berechnen und verwenden sie dann (wie Michael sagt) zur Berechnung der Beschleunigungskonstante:

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

Bei einer kleinen Anzahl von Replikationen empinfschlägt dies jedoch manchmal fehl und gibt einen Wertevektor zurück NA. Das Ergebnis ist, dass Sie keine Werte für haben L, anicht berechnet werden können und Ihren Fehler erhalten. Wie ocram sagt, wird dies durch Erhöhen der Anzahl der Boostrap-Replikationen behoben. Selbst eine Verdoppelung Rauf 2000 sollte es wahrscheinlich tun.


1
+1 @Kieran Danke! Ich bin froh, dass meine Vermutung Gültigkeit hatte. Sie haben die richtige Antwort aus Ihrem Wissen über die beteiligten R-Programme. Meine Antwort wird also nicht mehr benötigt. Jemand mochte mich entweder nicht erraten oder dachte, meine Antwort sollte ein Kommentar sein. Aus all diesen Gründen ist es für mich sinnvoll, es jetzt zu löschen.
Michael R. Chernick

4
Für andere, die unter dem Problem leiden: Laut stat.ethz.ch/pipermail/r-help/2011-February/269006.html muss die Anzahl der Wiederholungen größer sein als die Anzahl der Datenzeilen . Ich war leicht überrascht, dass so viele Wiederholungen notwendig sind ...
BurninLeo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.