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.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がなく、計算できず、エラーが発生します。ocramが言うように、ブーストラップレプリケーションの数を増やすと、これが修正されます。R2000に2倍にしても、おそらくそれを行うはずです。


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.