ก่อนอื่นฉันจะตรวจสอบว่าค่าเฉลี่ยเป็นดัชนีที่เหมาะสมสำหรับงานในมือหรือไม่ หากคุณกำลังมองหา "ค่าทั่วไป / หรือค่ากลาง" ของการแจกแจงแบบเบ้ค่าเฉลี่ยอาจนำคุณไปสู่ค่าที่ไม่ได้เป็นตัวแทน พิจารณาการกระจายล็อกปกติ:
x <- rlnorm(1000)
plot(density(x), xlim=c(0, 10))
abline(v=mean(x), col="red")
abline(v=mean(x, tr=.20), col="darkgreen")
abline(v=median(x), col="blue")
ค่าเฉลี่ย (เส้นสีแดง) อยู่ค่อนข้างไกลจากกลุ่มข้อมูล ค่าเฉลี่ยที่ตัดออก 20% (สีเขียว) และค่ามัธยฐาน (สีน้ำเงิน) อยู่ใกล้กับค่า "ทั่วไป"
ผลลัพธ์ขึ้นอยู่กับประเภทของการแจกแจง "ไม่ปกติ" (ฮิสโตแกรมของข้อมูลจริงของคุณจะเป็นประโยชน์) ถ้ามันไม่เบ้ แต่มีหางที่หนา CIs ของคุณจะกว้างมาก
ไม่ว่าในกรณีใดฉันคิดว่าการบูตสแตรปปิ้งเป็นวิธีการที่ดีเพราะมันสามารถให้ CIs ไม่สมดุลได้ R
แพคเกจsimpleboot
เริ่มต้นที่ดี:
library(simpleboot)
# 20% trimmed mean bootstrap
b1 <- one.boot(x, mean, R=2000, tr=.2)
boot.ci(b1, type=c("perc", "bca"))
... ให้ผลลัพธ์ต่อไปนี้แก่คุณ:
# The bootstrap trimmed mean:
> b1$t0
[1] 1.144648
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 2000 bootstrap replicates
Intervals :
Level Percentile BCa
95% ( 1.062, 1.228 ) ( 1.065, 1.229 )
Calculations and Intervals on Original Scale