ทำไมข้อผิดพลาด“ การปรับโดยประมาณ 'a' คือ NA” ที่สร้างขึ้นจากแพ็คเกจการบูต R เมื่อคำนวณช่วงความเชื่อมั่นโดยใช้วิธีการ bca


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' เพราะนี่คือสิ่งที่คุณต้องการจริงๆ) และใช้งานได้ ดังนั้นข้อสรุปของฉันก็คือสิ่งที่ทำให้เกิดข้อผิดพลาดนี้ไม่เพียงพอสำหรับการทำสำเนา bootstrap ... แต่ฉันไม่สามารถพูดได้มากกว่านี้ ...
ocram

คำตอบ:


23

ในขณะที่คุณสามารถดูจากข้อผิดพลาดของคุณโทรboot.ci bca.ciเนื่องจากboot.outวัตถุไม่ได้จัดหาLค่าอิทธิพลเชิงประจักษ์สำหรับสถิติที่คุณกำลังคำนวณบนข้อมูลbca.ciพยายามที่จะคำนวณพวกมันโดยใช้empinfฟังก์ชั่นจากนั้น (ตามที่ Michael บอก) มันใช้เพื่อคำนวณค่าคงที่การเร่งความเร็ว:

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

แต่ด้วยการทำซ้ำจำนวนน้อยempinfบางครั้งก็ล้มเหลวและส่งกลับเวกเตอร์ของNAค่า ผลที่ได้คือว่าคุณมีค่าไม่L, aไม่สามารถคำนวณและคุณได้รับข้อผิดพลาดของคุณ ดังที่ ocram กล่าวว่าการเพิ่มจำนวนการเรพลิเคทเพิ่มจะแก้ไขปัญหานี้ แม้แต่สองเท่าRถึง 2,000 ก็น่าจะทำได้


1
+1 @Kieran ขอบคุณ! ฉันดีใจที่เดาของฉันมีเหตุผลบางอย่าง คุณมีคำตอบที่ถูกต้องจากความรู้เกี่ยวกับโปรแกรม R ที่เกี่ยวข้อง ดังนั้นคำตอบของฉันไม่จำเป็นอีกต่อไป บางคนอาจไม่ชอบให้ฉันเดาหรือคิดว่าคำตอบของฉันควรเป็นความคิดเห็น ด้วยเหตุผลทั้งหมดที่ทำให้ฉันลบมันตอนนี้
Michael R. Chernick

4
สำหรับผู้ที่ประสบปัญหา: ตามstat.ethz.ch/pipermail/r-help/2011-F กุมภาพันธ์/269006.htmlจำนวนการทำซ้ำจะต้องมากกว่าจำนวนแถวข้อมูล ฉันถูก suprsed อย่างอ่อนโยนว่าเพื่อให้เกิดซ้ำจำนวนมากมีความจำเป็น ...
BurninLeo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.