Mengapa kesalahan "estimasi penyesuaian 'a' adalah NA" dihasilkan dari paket boot R ketika menghitung interval kepercayaan menggunakan metode bca?

14

Saya memiliki vektor angka yang saya unggah di sini (... / code / MyData.Rdata) menggunakan dput.

Saya ingin mendapatkan bca ci jadi saya sudah menulis kode ini:

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

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

Tetapi ketika saya menjalankan yang berikut ini saya mendapatkan ini:

> 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

Dapatkah seseorang membantu saya mencari tahu apa yang menyebabkan kesalahan ini? Terima kasih untuk bantuannya!

pengguna1357015
sumber
3
Saya telah mencoba dengan R = 10000, bukan R = 1000 (dan menentukan tipe = 'bca', bukan tipe = 'semua' karena ini adalah apa yang Anda inginkan) dan itu berfungsi. Jadi kesimpulan saya adalah bahwa apa yang menyebabkan kesalahan ini tidak cukup replikasi bootstrap ... tapi saya tidak bisa mengatakan lebih banyak ...
ocram

Jawaban:

23

Seperti yang dapat Anda lihat dari pesan kesalahan Anda, boot.cipanggilan bca.ci. Karena boot.outobjek tidak menyediakan L, nilai-nilai pengaruh empiris untuk statistik yang Anda hitung pada data, bca.cimencoba menghitungnya menggunakan empinffungsi, dan kemudian (seperti kata Michael) ia menggunakannya untuk menghitung konstanta percepatan:

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

Tetapi dengan sejumlah kecil replikasi, empinfterkadang gagal dan mengembalikan vektor NAnilai. Hasilnya adalah Anda tidak memiliki nilai untuk L, atidak dapat dihitung, dan Anda mendapatkan kesalahan. Seperti kata ocram, meningkatkan jumlah replikasi boostrap akan memperbaikinya. Bahkan dua kali lipat Rmenjadi 2000 mungkin harus melakukannya.

Kieran
sumber
1
+1 @Kieran Terima kasih! Saya senang bahwa dugaan saya memiliki validitas. Anda memiliki jawaban yang benar dari pengetahuan Anda tentang program R yang terlibat. jadi jawaban saya tidak lagi dibutuhkan. Seseorang entah tidak suka saya menebak atau berpikir jawaban saya harus menjadi komentar. Untuk semua alasan itu masuk akal bagi saya untuk menghapusnya sekarang.
Michael R. Chernick
4
Untuk orang lain yang menderita masalah: Menurut stat.ethz.ch/pipermail/r-help/2011-Februari/269006.html jumlah pengulangan harus lebih besar daripada jumlah baris data. Saya agak terkejut bahwa begitu banyak pengulangan diperlukan ...
BurninLeo