ปัญหาเกี่ยวกับการศึกษาแบบจำลองของคำอธิบายการทดลองซ้ำในช่วงความมั่นใจ 95% - ฉันจะไปไหนผิด


9

ฉันกำลังพยายามเขียนสคริปต์ R เพื่อจำลองการตีความการทดลองซ้ำในช่วงความมั่นใจ 95% ฉันพบว่ามันประเมินค่าสัดส่วนของจำนวนครั้งที่ค่าของประชากรที่แท้จริงของสัดส่วนนั้นอยู่ใน 95% CI ของกลุ่มตัวอย่าง ไม่แตกต่างกันมาก - ประมาณ 96% เทียบกับ 95% แต่นี่ก็สนใจฉันอยู่ดี

ฟังก์ชั่นของฉันจะรับตัวอย่างsamp_nจากการกระจาย Bernoulli กับความน่าจะเป็นpop_pและจากนั้นคำนวณช่วงความเชื่อมั่น 95% มีการใช้แก้ไขความต่อเนื่องหรือมากกว่าตรงกับprop.test() binom.test()มันจะส่งกลับ 1 ถ้าสัดส่วนประชากรที่แท้จริงpop_pมีอยู่ใน 95% CI ฉันได้เขียนฟังก์ชันที่สองซึ่งหนึ่งที่ใช้prop.test()และหนึ่งซึ่งใช้binom.test()และมีผลลัพธ์ที่คล้ายกันกับทั้ง:

in_conf_int_normal <- function(pop_p = 0.3, samp_n = 1000, correct = T){
    ## uses normal approximation to calculate confidence interval
    ## returns 1 if the CI contain the pop proportion
    ## returns 0 otherwise
    samp <- rbinom(samp_n, 1, pop_p)
    pt_result <- prop.test(length(which(samp == 1)), samp_n)
    lb <- pt_result$conf.int[1]
        ub <- pt_result$conf.int[2]
    if(pop_p < ub & pop_p > lb){
        return(1)
    } else {
    return(0)
    }
}
in_conf_int_binom <- function(pop_p = 0.3, samp_n = 1000, correct = T){
    ## uses Clopper and Pearson method
    ## returns 1 if the CI contain the pop proportion
    ## returns 0 otherwise
    samp <- rbinom(samp_n, 1, pop_p)
    pt_result <- binom.test(length(which(samp == 1)), samp_n)
    lb <- pt_result$conf.int[1]
        ub <- pt_result$conf.int[2] 
    if(pop_p < ub & pop_p > lb){
        return(1)
    } else {
    return(0)
    }
 }

ฉันพบว่าเมื่อคุณทำการทดสอบซ้ำสองสามพันครั้งสัดส่วนของเวลาที่pop_pอยู่ภายใน 95% CI ของกลุ่มตัวอย่างนั้นใกล้เคียงกับ 0.96 มากกว่า 0.95

set.seed(1234)
times = 10000
results <- replicate(times, in_conf_int_binom())
sum(results) / times
[1] 0.9562

ความคิดของฉันจนถึงตอนนี้เกี่ยวกับสาเหตุที่เป็นเช่นนี้

  • รหัสของฉันผิด (แต่ฉันตรวจสอบมันมาก)
  • ตอนแรกฉันคิดว่านี่เป็นเพราะปัญหาการประมาณปกติ แต่ก็พบแล้ว binom.test()

ข้อเสนอแนะใด ๆ


(+1) อย่างไรก็ตามฉันรันโค้ดของคุณtimes=100000อีกครั้งในเวลาที่ต่างกันและเห็นผลลัพธ์เดียวกัน ฉันอยากรู้ว่าใครมีคำอธิบายสำหรับเรื่องนี้ รหัสง่ายพอที่ฉันค่อนข้างมั่นใจว่าไม่มีข้อผิดพลาดในการเขียนโค้ด นอกจากนี้หนึ่งวิ่งด้วยtimes=1000000ให้.954931เป็นผล
แมโคร

3
(+1) แต่ทำไมคุณถึงคาดหวังให้ได้ 95% อย่างแน่นอน ตัวอย่างเช่น Clopper Pearson รับประกันได้ว่าจะอนุรักษ์ สำหรับคุณn และ pฉันเข้าใจว่า CI ควรครอบคลุมมูลค่าที่แท้จริง 95.3648% ของเวลา
พระคาร์ดินัล

2
เพื่อสนับสนุนพระคาร์ดินัลแสดงความเห็นความน่าจะเป็นแบบทวินามที่แน่นอนเพราะจะขึ้นอยู่กับการคำนวณความน่าจะเป็นที่แน่นอน แต่พวกเขาไม่จำเป็นต้องให้ระดับความเชื่อมั่นที่แน่นอน นั่นเป็นเพราะทวินามเป็นการกระจายแบบไม่ต่อเนื่อง ดังนั้น Clopper-Pearson จึงเลือกจุดสิ้นสุดสำหรับช่วงเวลาเพื่อให้คุณมีความน่าจะเป็นที่ใกล้เคียงที่สุดกับระดับความเชื่อมั่นที่สูงกว่านั้น สิ่งนี้ยังสร้างพฤติกรรมแบบฟันเลื่อยให้กับฟังก์ชั่นกำลังของการทดสอบทวินาม ผลลัพธ์ที่แปลก แต่มีพื้นฐานนี้ถูกกล่าวถึงในกระดาษของฉันกับคริสตินหลิวในสถิติชาวอเมริกัน
Michael R. Chernick

1
รายละเอียดเกี่ยวกับกระดาษของฉันที่ลิงค์นี้: citeulike.org/user/austin987/article/7571878
Michael R. Chernick

3
CIs ทวินามที่แน่นอนเป็น "แน่นอน" เพราะประสิทธิภาพที่แท้จริงของพวกเขาเท่ากับประสิทธิภาพที่ระบุไม่ใช่เพราะการคำนวณความน่าจะเป็นคือ "แน่นอน"! จะต้องเข้าใจว่า1αCI จะต้องมีอย่างน้อย1αโอกาสที่จะครอบคลุมพารามิเตอร์ที่แท้จริงไม่ว่าการแจกแจงพื้นฐานคืออะไร (ภายในตระกูลที่สันนิษฐาน) "แน่นอน" หมายความว่าขอบเขตที่น้อยที่สุดของความครอบคลุมทั้งหมดเหล่านี้ซึ่งยึดครองตระกูลการกระจายทั้งหมดเท่ากับ 1α. ในการบรรลุเป้าหมายนี้ความครอบคลุมที่แท้จริงสำหรับการแจกแจงที่เป็นไปได้จำนวนมากมักจะต้องมากกว่า1α.
whuber

คำตอบ:


9

คุณจะไม่ผิด มันก็เป็นไปไม่ได้ที่จะสร้างความเชื่อมั่นสำหรับสัดส่วนทวินามซึ่งมักจะมีการรายงานข่าวของว่า 95% เนื่องจากลักษณะที่ไม่ต่อเนื่องของผล ช่วง Clopper-Pearson ('แน่นอน') รับประกันว่าจะมีความครอบคลุมอย่างน้อย 95% ช่วงเวลาอื่นมีความครอบคลุมโดยเฉลี่ย 95% โดยเฉลี่ยเมื่ออยู่ในสัดส่วนที่แท้จริง

ฉันมักจะชอบช่วงเวลา Jeffreys ด้วยตัวเองเนื่องจากมันมีความครอบคลุมเกือบ 95% โดยเฉลี่ยและ (ต่างจากช่วงคะแนน Wilson) ประมาณความคุ้มครองเท่ากันในหางทั้งสอง

ด้วยการเปลี่ยนแปลงเพียงเล็กน้อยของรหัสในคำถามเราสามารถคำนวณความครอบคลุมที่แน่นอนโดยไม่ต้องจำลอง

p <- 0.3
n <- 1000

# Normal test
CI <- sapply(0:n, function(m) prop.test(m,n)$conf.int[1:2])
caught.you <- which(CI[1,] <= p & p <= CI[2,])
coverage.pr <- sum(dbinom(caught.you - 1, n, p))

# Clopper-Pearson
CI <- sapply(0:n, function(m) binom.test(m,n)$conf.int[1:2])
caught.you.again <- which(CI[1,] <= p & p <= CI[2,])
coverage.cp <- sum(dbinom(caught.you.again - 1, n, p))

นี่ให้ผลผลิตต่อไปนี้

> coverage.pr
[1] 0.9508569

> coverage.cp
[1] 0.9546087

1
" มันเป็นไปไม่ได้ที่จะสร้างช่วงความมั่นใจสำหรับสัดส่วนทวินามซึ่งมักจะมีความครอบคลุมถึง 95% เนื่องจากธรรมชาติของผลลัพธ์ที่ไม่ต่อเนื่อง " --- กันบางทีสำหรับความเป็นไปได้ (ค่อนข้างแปลก) ของช่วงเวลาสุ่ม . (อย่างน้อยก็ด้วยวิธีนี้สามารถทำได้แม้ว่าอาจเป็นไปได้ว่ามันไม่ควรทำ )
Glen_b

2
@Glen_b ฉันสงสัยมานานเกี่ยวกับการคัดค้านการตัดสินใจแบบสุ่ม ฉันเชื่อว่า Jack Kiefer ตั้งข้อสังเกตว่าหากคุณตกลงที่จะใช้การสุ่มเพื่อรวบรวมตัวอย่างของคุณคุณไม่ควรมีปัญหาในการใช้กระบวนการตัดสินใจ หากคุณต้องการขั้นตอนการตัดสินใจที่สามารถทำซ้ำจัดทำเอกสารและโกงได้ยากเพียงแค่สร้างค่าสุ่มที่จำเป็นสำหรับช่วงเวลาที่สุ่มก่อนที่จะรวบรวมข้อมูล - ทำให้เป็นส่วนหนึ่งของการออกแบบ
whuber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.