ช่วงความเชื่อมั่นสำหรับค่ามัธยฐาน


40

ฉันต้องหา 95% CI บนค่ามัธยฐานและเปอร์เซ็นไทล์อื่น ๆ ฉันไม่ทราบวิธีการนี้ ฉันใช้ R เป็นเครื่องมือในการเขียนโปรแกรมเป็นหลัก

คำตอบ:


31

นี่คือภาพประกอบของชุดข้อมูล R แบบคลาสสิก:

> x       = faithful$waiting
> bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
> quantile(bootmed, c(.025, 0.975))
2.5% 97.5% 
 73.5    77 

ซึ่งให้ช่วงความเชื่อมั่น (73.5, 77) กับค่ามัธยฐาน

( หมายเหตุ:เวอร์ชั่นที่ถูกต้องต้องขอบคุณJohnฉันใช้ในตอนก่อนหน้าซึ่งนำไปสู่ความสับสน!)103nrow


7
ดูเหมือนจะแคบไปหน่อย การใช้ฟังก์ชั่นจากlibrary(boot)ปรากฏขึ้นเพื่อยืนยันสิ่งนี้:> boot.ci (boot (x, ฟังก์ชั่น (x, i) มัธยฐาน (x [i]), R = 1000)) ช่วงเวลา: ระดับปกติพื้นฐาน 95% (74.42, 78.22) (75.00 , 78.49) ระดับ Percentile BCa 95% (73.51, 77.00) (73.00, 77.00)
onestop

2
คุณยินดีต้อนรับซีอาน ... นอกจากนี้ฉันชอบตั้งค่า N ดั้งเดิมในเมทริกซ์เสมอเพราะนั่นเป็นค่าคงที่สำหรับขนาดบูตที่หลากหลายที่ฉันอาจทำ ดังนั้นฉันมักจะพูด ncol = length (x) ฉันพบว่ามีโอกาสเกิดข้อผิดพลาดน้อยลง
John

6
นี่เป็นเพียงวิธีที่ไม่มีประสิทธิภาพในการคำนวณ quantiles ทวินามในขณะที่คำตอบของ OneStop
whuber

30

อีกวิธีหนึ่งขึ้นอยู่กับปริมาณของการแจกแจงทวินาม
เช่น:

> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77

4
ฉันชอบความเรียบง่ายของอันนี้ ... ผลลัพธ์ใกล้เคียงกับวิธีบูตสแตรป
Dominic Comtois

1
เห็นได้ชัดว่ามีประสิทธิภาพมากกว่า bootstrapping สำหรับกรณีที่เกิดขึ้นอย่างต่อเนื่อง แต่ข้อเสียอย่างหนึ่งคือมันไม่ได้คำนึงถึงอันดับที่ผูกกัน คุณรู้วิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?
ali_m

15

ลองดู bootstrap resampling ใหม่ ค้นหาวิธีใช้ R สำหรับฟังก์ชั่นการบู๊ต คุณสามารถประมาณช่วงความเชื่อมั่นได้สำหรับข้อมูลอะไรก็ได้ทั้งนี้ขึ้นอยู่กับข้อมูลของคุณ


ตกลง. นี่เป็นวิธีที่ดีที่สุด Underused ในวิทยาศาสตร์ชีวการแพทย์ในความคิดของฉัน
pmgjones

10
ลองพิจารณาดู bootstrap ที่ราบรื่นสำหรับการประมาณปริมาณประชากรเนื่องจากตัวเร่งแบบดั้งเดิมดูเหมือนจะมีปัญหาในกรณีนั้น - การอ้างอิงสามารถพบได้ในไฟล์ PDFนี้ หากคุณเพียงแค่สนใจในทฤษฎีค่ามัธยฐานตัวประมาณ Hodges-Lehman สามารถใช้งานได้ - ตามที่จัดทำโดยเช่นwilcox.test(..., conf.int=TRUE)ฟังก์ชันของ R
caracal

4

และมีวิธีการอื่น ๆ : วิธีหนึ่งใช้การทดสอบผลรวมของ Wilcoxon Rank Sum สำหรับตัวอย่างหนึ่งที่มีการแก้ไขอย่างต่อเนื่อง ใน R นี้สามารถจัดเป็น:

wilcox.test(x,conf.level=0.95,alternative="two.sided",correct=TRUE)

และมี CI ของ David Olive สำหรับค่ามัธยฐานที่กล่าวถึงที่นี่:

CI สำหรับค่ามัธยฐาน


1

ผลลัพธ์ตามวิธี qbinom ไม่ถูกต้องสำหรับตัวอย่างขนาดเล็ก สมมติว่า x มี 10 องค์ประกอบ จากนั้น qbinom (c (.025, .975), 10, .5) ให้ 2 และ 8 ช่วงเวลาผลลัพธ์ไม่ได้ปฏิบัติตามสถิติการสั่งซื้อที่หางล่างสมมาตรกับที่มาจากหางบน; คุณควรได้ทั้ง 2 และ 9 หรือ 3 และ 8 คำตอบที่ถูกคือ 2 และ 9 คุณสามารถตรวจสอบกับ proc univariate ใน SAS จับที่นี่คือคุณต้องไม่เกิน 0.25 น่าจะเป็นด้านล่างและด้านบน; ควอนไทล์ที่ต่ำกว่าไม่ได้ทำเช่นนี้เพราะอย่างน้อยให้. 025 ที่หรือด้านล่าง คุณได้รับการบันทึกที่ด้านล่างเนื่องจากการนับที่ควรเป็น 1 ควรถูกแมปกับสถิติลำดับที่สองการนับ 0 และการยกเลิกการ "ปิดหนึ่งครั้ง" การยกเลิกโดยบังเอิญนี้ไม่ได้เกิดขึ้นด้านบนและคุณจะได้รับคำตอบที่ผิดที่นี่ การเรียงลำดับรหัส (x) [qbinom (c (.025, .975), ความยาว (x), 5) + c (0,1)] เกือบจะใช้งานได้และ .5 สามารถแทนที่ด้วยค่า quantile อื่น ๆ เพื่อให้ได้ช่วงความเชื่อมั่นสำหรับ quantiles อื่น ๆ แต่มันจะไม่ถูกต้องเมื่อมีอยู่เช่นนั้นที่ P [X <= a ] =. 025 ดูตัวอย่างเช่น Higgins, Statisitcs Nonparametric

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.