อะไรคือความแตกต่างระหว่างการทดสอบของ McNemar กับการทดสอบแบบไคสแควร์และคุณรู้ได้อย่างไรว่าจะใช้เมื่อใด


30

ฉันได้ลองอ่านจากแหล่งข้อมูลต่าง ๆ แล้ว แต่ฉันยังไม่ชัดเจนว่าการทดสอบใดที่จะเหมาะสมในกรณีของฉัน มีคำถามที่แตกต่างกันสามคำถามที่ฉันถามเกี่ยวกับชุดข้อมูลของฉัน:

  1. วิชาถูกทดสอบการติดเชื้อจาก X ในเวลาต่างกัน ฉันต้องการทราบว่าสัดส่วนของการบวกสำหรับ X หลังจากนั้นเกี่ยวข้องกับสัดส่วนการบวกสำหรับ X ก่อนหน้านี้หรือไม่:

                 After   
               |no  |yes|
    Before|No  |1157|35 |
          |Yes |220 |13 |
    
    results of chi-squared test: 
    Chi^2 =  4.183     d.f. =  1     p =  0.04082 
    
    results of McNemar's test: 
    Chi^2 =  134.2     d.f. =  1     p =  4.901e-31

    จากความเข้าใจของฉันเนื่องจากข้อมูลเป็นการวัดซ้ำฉันต้องใช้การทดสอบของ McNemar ซึ่งทดสอบว่าสัดส่วนของผลบวกสำหรับ X เปลี่ยนไปหรือไม่

    แต่คำถามของฉันดูเหมือนจะต้องการการทดสอบแบบไคสแควร์ - การทดสอบว่าสัดส่วนของค่าบวกสำหรับ X หลังจากนั้นเกี่ยวข้องกับสัดส่วนค่าบวกสำหรับ X ก่อนหรือไม่

    ฉันไม่แน่ใจด้วยซ้ำว่าฉันเข้าใจความแตกต่างระหว่างการทดสอบของ McNemar และไคสแควร์อย่างถูกต้อง จะมีการทดสอบที่ถูกต้องอย่างไรถ้าคำถามของฉันคือ "สัดส่วนของผู้ติดเชื้อ X หลังจากแตกต่างจากเมื่อก่อนหรือไม่"

  2. กรณีที่คล้ายกัน แต่แทนที่จะเป็นก่อนและหลังฉันจะวัดการติดเชื้อต่าง ๆ สองครั้งในช่วงเวลาหนึ่ง:

            Y   
          |no  |yes|
    X|No  |1157|35 |
     |Yes |220 |13 |

    การทดสอบใดที่จะอยู่ที่นี่หากคำถามคือ "สัดส่วนที่สูงกว่าของการติดเชื้อหนึ่งที่เกี่ยวข้องกับสัดส่วนที่สูงขึ้นของ Y"?

  3. หากคำถามของฉันคือ "การติดเชื้อ Y ณ เวลา t2 เกี่ยวข้องกับการติดเชื้อ X ณ เวลา t1 หรือไม่" การทดสอบใดที่เหมาะสม

                  Y at t2   
                |no  |yes|
    X at t1|No  |1157|35 |
           |Yes |220 |13 |

ฉันใช้การทดสอบของ McNemar ในทุกกรณี แต่ฉันมีข้อสงสัยว่าเป็นการทดสอบที่ถูกต้องในการตอบคำถามของฉันหรือไม่ ฉันกำลังใช้อาร์ฉันสามารถใช้ทวินามglmแทนได้หรือไม่? นั่นจะคล้ายคลึงกับการทดสอบไคสแควร์หรือไม่?


1
คุณพยายามอ่านstats.stackexchange.com/questions/tagged/mcnemar-testหัวข้อที่นี่ในการทดสอบ Mcnemar หรือไม่?
ttnphns

คุณหมายถึงอะไรโดย "ความสัมพันธ์ระหว่างสองความน่าจะเป็น"
Michael M

@ttnphns ฉันผ่านไปแล้ว แต่ไม่สามารถปรับรูปแบบคำถาม หลังจากคิดเพิ่มเติมดูเหมือนว่าฉันสามารถตอบคำถามสองข้อที่อิงกับไตรมาสที่ 1: Chi-sq จะบอกฉันว่าสัดส่วนของ + ve X หลังจากนั้นเกี่ยวข้องกับสัดส่วนของ + ve X ก่อนหรือไม่ขณะที่ Mcnemar จะบอกฉันว่ามี เปลี่ยนสัดส่วน ฉันถูกไหม?
Anto

คุณไม่สามารถใช้มาตรฐานทดสอบความเป็นอิสระได้ที่นี่เพราะแต่ละคนมีค่าสองค่าที่ทำให้เกิดตัวอย่างที่ไม่ใช่แบบสุ่ม χ2
Michael M

ขอบคุณ @MichaelMayer ผมใช้ mcnemar จนกระทั่งผมเห็นนี้ ในที่ที่ Mcnemar อธิบายไว้เขาบอกว่าการทำ Chi-sq จะตอบในกรณีเดียวกัน ฉันค่อนข้างงุนงง วิธีที่การทดสอบแต่ละครั้งบอกเราว่ามีกรอบในหน้านี้ฉันต้องไปที่ Chi-sq แต่เนื่องจากการวัดในหัวข้อเดียวกันฉันต้องเลือกของ McNemar!
Anto

คำตอบ:


48

เป็นเรื่องน่าเสียดายอย่างยิ่งที่การทดสอบของ McNemarนั้นยากสำหรับคนที่จะเข้าใจ ฉันยังสังเกตเห็นว่าที่ด้านบนสุดของหน้า Wikipedia มันระบุว่าคำอธิบายในหน้านั้นยากสำหรับคนที่จะเข้าใจ คำอธิบายสั้น ๆ โดยทั่วไปสำหรับการทดสอบของ McNemar ก็คือ: 'การทดสอบไคสแควร์ภายในวิชา' หรือว่าเป็นการทดสอบความเป็นเนื้อเดียวกันของตารางฉุกเฉิน ฉันคิดว่าสิ่งเหล่านี้ไม่มีประโยชน์เลย ก่อนอื่นมันไม่ชัดเจนว่า 'ภายใน-subject chi-squared' นั้นมีความหมายอย่างไรเพราะคุณมักจะทำการวัดหัวเรื่องของคุณสองครั้ง (หนึ่งครั้งในแต่ละตัวแปร) และพยายามกำหนดความสัมพันธ์ระหว่างตัวแปรเหล่านั้น นอกจากนี้ 'ความสม่ำเสมอของส่วนต่าง' (น่าเศร้าแม้แต่คำตอบนี้อาจสับสนถ้าเป็นเช่นนั้นอาจช่วยอ่านความพยายามครั้งที่สองของฉันด้านล่าง)

เรามาดูกันว่าเราสามารถผ่านกระบวนการให้เหตุผลเกี่ยวกับตัวอย่างอันดับต้น ๆ ของคุณเพื่อดูว่าเราสามารถเข้าใจว่า (และถ้าเป็นเช่นนั้นทำไม) การทดสอบของ McNemar นั้นเหมาะสมหรือไม่ คุณได้ใส่:

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือตารางฉุกเฉินดังนั้นจึงมีความหมายว่าการวิเคราะห์ไคสแควร์ ยิ่งไปกว่านั้นคุณต้องการที่จะเข้าใจความสัมพันธ์ระหว่างและA f t e rและการทดสอบไคสแควร์ตรวจสอบความสัมพันธ์ระหว่างตัวแปรดังนั้นเมื่อมองในครั้งแรกดูเหมือนว่าการทดสอบไคสแควร์จะต้อง การวิเคราะห์ที่ตอบคำถามของคุณ BอีโอRอีAเสื้ออีR

อย่างไรก็ตามมันมีค่าที่ชี้ให้เห็นว่าเราสามารถนำเสนอข้อมูลเหล่านี้ได้เช่น:

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อคุณดูที่ข้อมูลด้วยวิธีนี้คุณอาจคิดว่าคุณสามารถทำปกติเก่า -test แต่T -test ไม่ถูกต้อง มีสองประเด็นคือประการแรกเพราะข้อมูลแต่ละรายการแถววัดจากเรื่องเดียวกันเราจะไม่ต้องการที่จะทำระหว่างวิชาT -test เราต้องการจะทำภายในวิชาT -test ประการที่สองเนื่องจากข้อมูลเหล่านี้มีการกระจายเป็นทวินามความแปรปรวนเป็นฟังก์ชันของค่าเฉลี่ย ซึ่งหมายความว่าไม่มีความไม่แน่นอนเพิ่มเติมที่ต้องกังวลเกี่ยวกับเมื่อค่าเฉลี่ยตัวอย่างได้รับการประมาณ (เช่นคุณไม่จำเป็นต้องประเมินความแปรปรวนในภายหลัง) ดังนั้นคุณไม่จำเป็นต้องอ้างอิงการแจกแจงtคุณสามารถใช้Zเสื้อเสื้อเสื้อเสื้อเสื้อZการกระจาย (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้มันอาจจะช่วยในการอ่านคำตอบของฉันที่นี่: Z -test เทียบกับχ 2ทดสอบ .) ดังนั้นเราจึงจะต้องมีภายในวิชาZ -test นั่นคือเราจำเป็นต้องมีการทดสอบภายในวิชาของความเท่าเทียมกันของสัดส่วน Zχ2Z

เราได้เห็นแล้วว่ามีวิธีคิดและวิเคราะห์ข้อมูลเหล่านี้สองวิธีที่แตกต่างกัน (ได้รับแจ้งจากสองวิธีในการดูข้อมูล) ดังนั้นเราต้องตัดสินใจด้วยวิธีที่เราควรใช้ การทดสอบแบบไคสแควร์ประเมินว่าและA f t e rเป็นอิสระหรือไม่ นั่นคือคนที่ป่วยมาก่อนมีแนวโน้มที่จะป่วยหลังจากนั้นกว่าคนที่ไม่เคยป่วย มันยากมากที่จะเห็นว่าจะไม่เป็นเช่นไรเนื่องจากการวัดเหล่านี้ได้รับการประเมินในเรื่องเดียวกัน หากคุณได้รับผลลัพธ์ที่ไม่สำคัญ (อย่างที่คุณทำ) ซึ่งอาจเป็นข้อผิดพลาด type II แทนที่จะเป็นB e fBอีโอRอีAเสื้ออีRและทีอีอาร์มีความเป็นอิสระคุณเกือบจะแน่นอนต้องการทราบว่าการทำงานของการรักษา (คำถามไคสแควร์จะไม่ได้คำตอบ) นี่คล้ายกับการรักษาจำนวนมากเทียบกับการศึกษาการควบคุมที่คุณต้องการดูว่าค่าเฉลี่ยเท่ากันยกเว้นในกรณีนี้การวัดของคุณใช่ / ไม่ใช่และอยู่ในอาสาสมัคร พิจารณา tทั่วไปมากขึ้นBอีโอRอีAเสื้ออีRเสื้อ- ทดสอบสถานการณ์ที่มีความดันโลหิตวัดก่อนและหลังการรักษาบางอย่าง ผู้ที่มีค่า bp สูงกว่าค่าเฉลี่ยตัวอย่างของคุณก่อนหน้านี้เกือบจะมีแนวโน้มที่จะอยู่ในกลุ่มค่า bps ที่สูงขึ้นในภายหลัง แต่คุณไม่ต้องการทราบเกี่ยวกับความสอดคล้องของอันดับที่คุณต้องการทราบหากการรักษานั้นนำไปสู่การเปลี่ยนแปลงค่าเฉลี่ย bp . สถานการณ์ของคุณที่นี่คล้ายคลึงกันโดยตรง โดยเฉพาะอย่างยิ่งคุณต้องการเรียกใช้ภายใน - วิชาทดสอบความเท่าเทียมกันของสัดส่วน นั่นคือการทดสอบของ McNemarZ

Z

Aเสื้ออีRยังไม่มีข้อความโอYอีsเสื้อโอเสื้อaล.BอีโอRอียังไม่มีข้อความโอ1157351192Yอีs22013233เสื้อโอเสื้อaล.1377481425
BอีโอRอีAเสื้ออีR
ก่อนสัดส่วนใช่=220+131425,หลังจากสัดส่วนใช่=35+131425
1322035220/(220+35)0.5R

มีการอภิปรายของการทดสอบ McNemar อื่นคือมีส่วนขยายไปยังตารางฉุกเฉินขนาดใหญ่กว่า 2x2, ที่นี่


นี่คือRตัวอย่างของข้อมูลของคุณ:

mat = as.table(rbind(c(1157, 35), 
                     c( 220, 13) ))
colnames(mat) <- rownames(mat) <- c("No", "Yes")
names(dimnames(mat)) = c("Before", "After")
mat
margin.table(mat, 1)
margin.table(mat, 2)
sum(mat)

mcnemar.test(mat, correct=FALSE)
#  McNemar's Chi-squared test
# 
# data:  mat
# McNemar's chi-squared = 134.2157, df = 1, p-value < 2.2e-16
binom.test(c(220, 35), p=0.5)
#  Exact binomial test
# 
# data:  c(220, 35)
# number of successes = 220, number of trials = 255, p-value < 2.2e-16
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
#  0.8143138 0.9024996
# sample estimates:
# probability of success 
#              0.8627451 

หากเราไม่ได้คำนึงถึงลักษณะภายในของข้อมูลของคุณเราจะมีการทดสอบที่มีประสิทธิภาพน้อยกว่าเล็กน้อยเกี่ยวกับความเท่าเทียมกันของสัดส่วน:

prop.test(rbind(margin.table(mat, 1), margin.table(mat, 2)), correct=FALSE)
#  2-sample test for equality of proportions without continuity
#  correction
# 
# data:  rbind(margin.table(mat, 1), margin.table(mat, 2))
# X-squared = 135.1195, df = 1, p-value < 2.2e-16
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#  0.1084598 0.1511894
# sample estimates:
#    prop 1    prop 2 
# 0.9663158 0.8364912 

X-squared = 133.6627chi-squared = 134.215713ยังไม่มีข้อความ=2850ยังไม่มีข้อความ=1425


นี่คือคำตอบสำหรับคำถามที่เป็นรูปธรรมของคุณ:

  1. การวิเคราะห์ที่ถูกต้องคือการทดสอบของ McNemar (ตามที่กล่าวไว้ข้างต้น)
  2. รุ่นนี้มีเล่ห์เหลี่ยมและการใช้ถ้อยคำ "ทำสัดส่วนที่สูงขึ้นของการติดเชื้อหนึ่งที่เกี่ยวข้องกับสัดส่วนที่สูงขึ้นของ Y" จะคลุมเครือ มีสองคำถามที่เป็นไปได้:

    • มีเหตุผลอย่างสมบูรณ์ที่จะต้องการทราบว่าผู้ป่วยที่ได้รับการติดเชื้ออย่างใดอย่างหนึ่งมีแนวโน้มที่จะได้รับอีกคนหนึ่งซึ่งในกรณีนี้คุณจะใช้การทดสอบความเป็นอิสระแบบไคสแควร์ คำถามนี้ถามว่าความไวต่อการติดเชื้อทั้งสองนั้นแตกต่างกันหรือไม่ (อาจเป็นเพราะพวกมันถูกทำสัญญาผ่านทางเดินสรีรวิทยาที่แตกต่างกัน) หรือไม่ (บางทีพวกมันอาจถูกทำสัญญาเนื่องจากระบบภูมิคุ้มกันอ่อนแอลง)
    • นอกจากนี้ยังมีเหตุผลที่สมบูรณ์แบบที่จะรู้ว่าหากสัดส่วนของผู้ป่วยมีแนวโน้มที่จะติดเชื้อทั้งสองในกรณีนี้คุณจะต้องใช้การทดสอบของ McNemar คำถามที่นี่เป็นเรื่องเกี่ยวกับการติดเชื้อที่รุนแรงพอ ๆ กัน
  3. เนื่องจากนี่เป็นการติดเชื้อเดียวกันอีกครั้งแน่นอนว่าพวกมันจะเกี่ยวข้องกัน ฉันรวบรวมว่ารุ่นนี้ไม่ได้เป็นก่อนและหลังการรักษา แต่เพียงในเวลาต่อมา ดังนั้นคุณจะถามว่าอัตราการติดเชื้อพื้นหลังมีการเปลี่ยนแปลงตามปกติหรือไม่ซึ่งเป็นคำถามที่เหมาะสมอย่างสมบูรณ์ การวิเคราะห์ที่ถูกต้องคือการทดสอบของ McNemar
    แก้ไข:ดูเหมือนว่าฉันตีความคำถามที่สามของคุณผิดอาจเป็นเพราะพิมพ์ผิด ตอนนี้ฉันตีความว่ามันเป็นการติดเชื้อสองแบบที่แตกต่างกันในเวลาสองจุดแยกกัน ภายใต้การตีความนี้การทดสอบไค - สแควร์จะเหมาะสม

@Alexis เท่าที่ฉันสามารถทำได้คุณและ gung ดูเหมือนจะพูดคุยกัน แม้แต่การทดสอบแบบทีเรียกว่า "unpaired" หรือ "ตัวอย่างอิสระ" หรือ "one-way" หรือ "ANOVA ตัวอย่างอิสระ" ต้องใช้ข้อมูลที่จับคู่ในความหมายของ gung: สำหรับแต่ละวิชาคุณต้องบันทึกทั้งกลุ่มที่เป็นหมวดหมู่ ตัวแปรสมาชิกและตัวแปรผลอย่างต่อเนื่อง (หากตัวแปรความเป็นสมาชิกกลุ่มมีสองระดับโดยปกติเราจะใช้การทดสอบ t แบบไม่คู่สำหรับ 3 ระดับขึ้นไปที่คุณต้องการ ANOVA แบบทางเดียว)
Silverfish

2
เมื่ออธิบายการทดสอบที่จะใช้ฉันแสดงทั้งสองวิธีในการดูถ้าคุณมีการสังเกตตัวแปรต่อเนื่องหนึ่งสำหรับแต่ละเรื่องและวิชามาจากกลุ่ม 2 (หรือ 3+) และคุณสนใจความแตกต่างระหว่าง กลุ่มจากนั้นใช้ตัวอย่างอิสระ t-test (หรือ ANOVA แบบทางเดียว) จากนั้นยืนยันการเลือกของคุณโดยดูที่ตารางข้อมูลของคุณ: คุณมีข้อมูลสองชิ้นสำหรับแต่ละหัวข้อ: หมวดหมู่สำหรับสมาชิกกลุ่มและตัวแปรต่อเนื่อง เราสามารถหมุนสิ่งต่าง ๆ และพูดว่า t-test เป็นการทดสอบความสัมพันธ์ระหว่างตัวแปรไบนารีและตัวแปรต่อเนื่อง
Silverfish

2
การทดสอบแบบจับคู่ t (หรือ ANOVA ตัวอย่างที่มีความสัมพันธ์) จะใช้หากในแต่ละวิชาคุณมีการอ่านต่อเนื่องสอง (หรือ 3+) ภายใต้เงื่อนไขที่แตกต่างกันและคุณต้องการทดสอบความแตกต่างระหว่างเงื่อนไข นี่คือ "จับคู่" ในแง่ที่แตกต่าง แต่ในคำถามนี้เรามีการบันทึกตัวแปรเด็ดขาดสองรายการสำหรับแต่ละวิชา ดูตารางข้อมูลค่าที่บันทึกไว้ของตัวแปรเด็ดขาดเหล่านั้นต้องมาเป็นคู่ แต่นี่ไม่ได้หมายความว่าการออกแบบการศึกษานั้นถูกจับคู่ นี่คือความสับสน (เป็นบันทึก gung) แต่ถ้าคุณรู้รูปแบบการเรียนของคุณสิ่งนี้สามารถแก้ไขได้ (ตามที่อเล็กซิสโน้ต)
Silverfish

@Silverfish หากคุณมีการสังเกตสองครั้ง (ของตัวแปรเล็กน้อยที่เหมือนกัน) ที่เกิดขึ้นในแต่ละวิชาในแง่ใดที่ไม่ใช่การออกแบบที่จับคู่กัน?
Alexis

1
@Alexis นั่นคือ "ตัวแปรเดียวกัน" ซึ่งเป็นกุญแจสำคัญและอาจเกิดความสับสน คุณอาจรู้ว่ามันแสดงถึงตัวแปรเดียวกันแม้ว่าจะอยู่ภายใต้เงื่อนไขที่ต่างกันหรือในเวลาที่ต่างกัน แต่ขึ้นอยู่กับวิธีที่เราวางตารางข้อมูลออกมาพวกเขาอาจจะถูกบันทึกเป็นตัวแปรต่าง ๆ (เช่นแยก "ก่อน" และ "หลัง" ตัวแปร).
Silverfish

22

ดูเหมือนว่าฉันได้ทำแฮชของสิ่งนี้ ให้ฉันพยายามอธิบายสิ่งนี้อีกครั้งด้วยวิธีที่ต่างกันและเราจะดูว่ามันช่วยล้างสิ่งต่างๆได้ไหม

วิธีดั้งเดิมในการอธิบายการทดสอบของ McNemar กับการทดสอบไคสแควร์คือการถามว่าข้อมูลเป็น "จับคู่" และแนะนำการทดสอบของ McNemar หรือไม่ถ้าข้อมูลถูกจับคู่และทดสอบไคสแควร์หากข้อมูลนั้นเป็น "คู่" ฉันได้พบว่าสิ่งนี้นำไปสู่ความสับสนมาก (หัวข้อนี้เป็นตัวอย่าง!) ในจุดนี้ฉันพบว่ามันเป็นประโยชน์มากที่สุดในการมุ่งเน้นคำถามที่คุณพยายามถามและใช้แบบทดสอบที่ตรงกับคำถามของคุณ เพื่อให้เป็นรูปธรรมมากขึ้นลองดูที่สถานการณ์จำลอง:

คุณเดินไปรอบ ๆ การประชุมสถิติและสำหรับนักสถิติแต่ละคนที่คุณพบคุณบันทึกว่าพวกเขามาจากสหรัฐอเมริกาหรือสหราชอาณาจักร คุณบันทึกว่าพวกเขามีความดันโลหิตสูงหรือความดันโลหิตปกติ

นี่คือข้อมูล:

mat = as.table(rbind(c(195,   5),
                     c(  5, 195) ))
colnames(mat)        = c("US", "UK")
rownames(mat)        = c("Hi", "Normal")
names(dimnames(mat)) = c("BP", "Nationality")
mat
#         Nationality
# BP        US  UK
#   Hi     195   5
#   Normal   5 195

ณ จุดนี้มันเป็นสิ่งสำคัญที่จะคิดออกว่าคำถามที่เราต้องการถามข้อมูลของเรา มีคำถามสามข้อที่เราสามารถถามได้ที่นี่:

  1. เราอาจต้องการทราบว่าตัวแปรเด็ดขาดBPและNationalityเกี่ยวข้องหรือเป็นอิสระ;
  2. เราอาจสงสัยว่าความดันโลหิตสูงเป็นเรื่องธรรมดาในหมู่นักสถิติของสหรัฐอเมริกามากกว่าในบรรดานักสถิติของสหราชอาณาจักรหรือไม่
  3. ในที่สุดเราอาจสงสัยว่าสัดส่วนของนักสถิติที่มีความดันโลหิตสูงเท่ากับสัดส่วนของนักสถิติสหรัฐที่เราคุยด้วยหรือไม่ นี่หมายถึงสัดส่วนของตาราง สิ่งเหล่านี้ไม่ได้ถูกพิมพ์ตามค่าเริ่มต้นใน R แต่เราสามารถรับมันได้ (โปรดสังเกตว่าในกรณีนี้มันเหมือนกันทุกประการ):

    margin.table(mat, 1)/sum(mat)
    # BP
    #    Hi Normal 
    #   0.5    0.5 
    margin.table(mat, 2)/sum(mat)
    # Nationality
    #  US  UK 
    # 0.5 0.5 

อย่างที่ฉันได้กล่าวไปแล้ววิธีการดั้งเดิมที่กล่าวถึงในหนังสือเรียนหลายเล่มคือการพิจารณาว่าการทดสอบใดที่จะใช้ขึ้นอยู่กับว่าข้อมูลนั้น "จับคู่" หรือไม่ แต่นี่เป็นสิ่งที่ทำให้เกิดความสับสนเป็นอย่างมากตารางฉุกเฉินนี้ "จับคู่" หรือไม่? หากเราเปรียบเทียบสัดส่วนกับความดันโลหิตสูงระหว่างนักสถิติในสหรัฐอเมริกาและสหราชอาณาจักรคุณกำลังเปรียบเทียบสองสัดส่วน (แม้ว่าตัวแปรเดียวกัน) วัดจากกลุ่มคนที่แตกต่างกัน ในทางตรงกันข้ามถ้าคุณต้องการเปรียบเทียบสัดส่วนกับความดันโลหิตสูงกับสัดส่วนของสหรัฐอเมริกาคุณกำลังเปรียบเทียบสองสัดส่วน (แม้ว่าตัวแปรต่างกัน) วัดจากกลุ่มคนเดียวกัน ข้อมูลเหล่านี้มีทั้ง"จับคู่" และ "ไม่จับคู่" ในเวลาเดียวกัน (แม้ว่าจะเกี่ยวกับแง่มุมต่าง ๆ ของข้อมูล) สิ่งนี้นำไปสู่ความสับสน เพื่อพยายามหลีกเลี่ยงความสับสนนี้ฉันขอยืนยันว่าคุณควรคิดในแง่ของคำถามที่คุณถาม โดยเฉพาะถ้าคุณต้องการทราบ:

  1. หากตัวแปรอิสระ: ใช้การทดสอบไค - สแควร์
  2. หากสัดส่วนที่มีความดันโลหิตสูงแตกต่างกันไปตามสัญชาติ: ใช้การทดสอบ z สำหรับความแตกต่างของสัดส่วน
  3. หากสัดส่วนของส่วนต่างเท่ากันให้ใช้การทดสอบของ McNemar

บางคนอาจไม่เห็นด้วยกับฉันที่นี่เถียงว่าเนื่องจากตารางฉุกเฉินอาจไม่ "จับคู่" การทดสอบของ McNemar ไม่สามารถใช้ในการทดสอบความเท่าเทียมกันของสัดส่วนชายขอบและควรใช้การทดสอบไคสแควร์แทน เนื่องจากนี่คือประเด็นของความขัดแย้งลองทั้งคู่ลองดูว่าผลลัพธ์ดูสมเหตุสมผลหรือไม่:

chisq.test(mat)
#  Pearson's Chi-squared test with Yates' continuity correction
# 
# data:  mat
# X-squared = 357.21, df = 1, p-value < 2.2e-16
mcnemar.test(mat)
#  McNemar's Chi-squared test
# 
# data:  mat
# McNemar's chi-squared = 0, df = 1, p-value = 1

50%=50%

ลองอีกตัวอย่าง:

mat2 = as.table(rbind(c(195, 195),
                      c(  5,   5) ))
colnames(mat2)        = c("US", "UK")
rownames(mat2)        = c("Hi", "Normal")
names(dimnames(mat2)) = c("BP", "Nationality")
mat2
#         Nationality
# BP        US  UK
#   Hi     195 195
#   Normal   5   5
margin.table(mat2, 1)/sum(mat2)
# BP
#     Hi Normal 
#  0.975  0.025 
margin.table(mat2, 2)/sum(mat2)
# Nationality
#  US  UK 
# 0.5 0.5 

97.5%»50%

chisq.test(mat2)
#  Pearson's Chi-squared test
# 
# data:  mat2
# X-squared = 0, df = 1, p-value = 1
mcnemar.test(mat2)
#  McNemar's Chi-squared test with continuity correction
# 
# data:  mat2
# McNemar's chi-squared = 178.605, df = 1, p-value < 2.2e-16

ในครั้งนี้การทดสอบไคสแควร์จะให้ค่า p เป็น 1 ซึ่งหมายความว่าสัดส่วนส่วนเพิ่มเท่ากับเท่าที่จะเป็นไปได้ แต่เราเห็นว่าสัดส่วนของชายขอบนั้นไม่เท่ากันอย่างเห็นได้ชัดดังนั้นผลลัพธ์นี้จึงไม่สมเหตุสมผลกับข้อมูลของเรา ในทางกลับกันการทดสอบของ McNemar ให้ค่า p-value ประมาณ 0 ในคำอื่น ๆ มันไม่น่าเป็นไปได้อย่างยิ่งที่จะได้รับข้อมูลที่มีสัดส่วนเพียงเล็กน้อยจากความเสมอภาคเช่นนี้หากพวกเขามีค่าเท่ากันในประชากร เนื่องจากสัดส่วนส่วนเพิ่มที่สังเกตได้ของเราอยู่ไกลจากค่าเท่ากันผลลัพธ์นี้จึงสมเหตุสมผล

ความจริงที่ว่าการทดสอบไคสแควร์ให้ผลลัพธ์ที่ไม่สมเหตุสมผลเนื่องจากข้อมูลของเราชี้ให้เห็นว่ามีบางอย่างผิดปกติในการใช้การทดสอบไคสแควร์ที่นี่ แน่นอนความจริงที่ว่าการทดสอบของ McNemar นั้นให้ผลลัพธ์ที่สมเหตุสมผลไม่ได้พิสูจน์ว่าถูกต้อง แต่อาจเป็นเรื่องบังเอิญ แต่การทดสอบไคสแควร์นั้นผิดอย่างชัดเจน

ลองมาดูกันว่าเราสามารถทำงานผ่านการโต้แย้งว่าทำไมการทดสอบของ McNemar อาจเป็นสิ่งที่ถูกต้อง ฉันจะใช้ชุดข้อมูลที่สาม:

mat3 = as.table(rbind(c(190,  15),
                      c( 60, 135) ))
colnames(mat3)        = c("US", "UK")
rownames(mat3)        = c("Hi", "Normal")
names(dimnames(mat3)) = c("BP", "Nationality")
mat3
#         Nationality
# BP        US  UK
#   Hi     190  15
#   Normal  60 135
margin.table(mat3, 1)/sum(mat3)
# BP
#     Hi Normal 
# 0.5125 0.4875 
margin.table(mat3, 2)/sum(mat3)
# Nationality
#    US    UK 
# 0.625 0.375 

51.25%62.5%

prop.test(x=c(205, 250), n=c(400, 400))
#  2-sample test for equality of proportions with continuity correction
# 
# data:  c(205, 250) out of c(400, 400)
# X-squared = 9.8665, df = 1, p-value = 0.001683
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#   -0.18319286 -0.04180714
# sample estimates:
# prop 1 prop 2 
# 0.5125 0.6250 

(หากต้องการใช้prop.test()เพื่อทดสอบสัดส่วนส่วนเพิ่มฉันต้องป้อนหมายเลข 'ความสำเร็จ' และจำนวนทั้งหมดของ 'การทดลอง' ด้วยตนเอง แต่คุณสามารถเห็นได้จากบรรทัดสุดท้ายของผลลัพธ์ที่สัดส่วนถูกต้อง) สิ่งนี้แสดงให้เห็นว่า มันไม่น่าเป็นไปได้ที่จะได้รับส่วนต่างจากความเสมอภาคหากพวกเขาเท่ากันจริง ๆ ตามปริมาณข้อมูลที่เรามี

การทดสอบนี้ใช้ได้หรือไม่ มีสองปัญหาที่นี่: การทดสอบเชื่อว่าเรามี 800 ข้อมูลเมื่อเรามีจริงเพียง 400 เท่านั้นการทดสอบนี้ไม่ได้คำนึงถึงว่าสัดส่วนทั้งสองนี้ไม่เป็นอิสระในแง่ที่ว่าพวกเขาวัดจากคนเดียวกัน


% สูง BP: 190+15400% US: 190+60400
1904001560π=0.5ภายใต้ null นั่นคือความเข้าใจของ McNemar ในความเป็นจริงการทดสอบของ McNemar นั้นเป็นเพียงแค่การทดสอบแบบทวินามว่าการสังเกตมีแนวโน้มที่จะตกอยู่ในเซลล์ทั้งสองเท่ากันหรือไม่:
binom.test(x=15, n=(15+60))
#  Exact binomial test
# 
# data:  15 and (15 + 60)
# number of successes = 15, number of trials = 75, p-value = 1.588e-07
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
#   0.1164821 0.3083261
# sample estimates:
# probability of success 
#                    0.2 

ในรุ่นนี้มีการใช้การสังเกตแบบให้ข้อมูลเท่านั้นและจะไม่ถูกนับสองครั้ง ค่า p ที่นี่มีขนาดเล็กมาก 0.0000001588 ซึ่งมักจะเป็นกรณีที่เมื่อมีการพิจารณาการอ้างอิงในข้อมูล นั่นคือการทดสอบนี้มีประสิทธิภาพมากกว่าการทดสอบ z ของความแตกต่างของสัดส่วน เราจะเห็นเพิ่มเติมว่าเวอร์ชั่นด้านบนนั้นเหมือนกับการทดสอบของ McNemar:

mcnemar.test(mat3, correct=FALSE)
#  McNemar's Chi-squared test
# 
# data:  mat3
# McNemar's chi-squared = 27, df = 1, p-value = 2.035e-07

หากไม่ใช่การระบุตัวตนที่สับสนการทดสอบของ McNemar โดยทั่วไปและใน R จะยกกำลังสองผลลัพธ์และเปรียบเทียบกับการแจกแจงไคสแควร์ซึ่งไม่ใช่การทดสอบที่แน่นอนเช่นทวินามเหนือ

(15-60)^2/(15+60)
# [1] 27
1-pchisq(27, df=1)
# [1] 2.034555e-07

ดังนั้นเมื่อคุณต้องการตรวจสอบสัดส่วนส่วนเพิ่มของตารางฉุกเฉินที่เท่ากันการทดสอบของ McNemar (หรือการทดสอบทวินามที่คำนวณด้วยตนเองอย่างถูกต้อง) ใช้ข้อมูลที่เกี่ยวข้องเท่านั้นโดยไม่ใช้ข้อมูลใด ๆ สองครั้งอย่างผิดกฎหมาย ไม่เพียง 'เกิดขึ้น' เพื่อให้ได้ผลลัพธ์ที่เหมาะสมกับข้อมูล

ฉันยังคงเชื่อว่าการพยายามคิดออกว่าตารางที่อาจเกิดขึ้นเป็น "คู่" นั้นไม่ช่วยเหลือหรือไม่ ฉันขอแนะนำให้ใช้การทดสอบที่ตรงกับคำถามที่คุณขอข้อมูล


1
คุณได้รับคะแนนของฉัน :)
Alexis

11

คำถามที่ต้องใช้ในการทดสอบตารางที่อาจเกิดขึ้นχ2χ2


χ2

ตัวอย่างเช่นคุณอาจมีตัวอย่างจาก 20 สถิติจากประเทศสหรัฐอเมริกาและแยกอิสระตัวอย่าง 37 สถิติจากสหราชอาณาจักรและมีการวัดว่าสถิติเหล่านี้เป็นความดันโลหิตสูงหรือโลหิตปกติ สมมติฐานว่างของคุณคือนักสถิติทั้งในสหราชอาณาจักรและสหรัฐอเมริกามีความน่าจะเป็นพื้นฐานของการเป็นความดันโลหิตสูงเหมือนกัน (นั่นคือการรู้ว่าหนึ่งมาจากสหรัฐอเมริกาหรือจากสหราชอาณาจักรไม่ได้บอกอะไรเกี่ยวกับความน่าจะเป็น แน่นอนว่าเป็นไปได้ที่คุณจะมีขนาดตัวอย่างเท่ากันในแต่ละกลุ่ม แต่ไม่ได้เปลี่ยนความจริงของตัวอย่างที่เป็นอิสระ (เช่นไม่มีคู่ )


χ2

ตัวอย่างเช่นคุณอาจมีข้อมูลการศึกษากรณีศึกษาที่จับคู่แบบสุ่มจากการประชุมสถิตินานาชาติซึ่งนักสถิติ 30 คนที่มีความดันโลหิตสูง (กรณี) และนักสถิติ 30 คนที่ไม่มีความดันโลหิตสูง (การควบคุมบุคคลที่จับคู่เป็นรายบุคคลตามอายุเพศ ในบางกรณี) ได้รับการประเมินแบบย้อนหลังสำหรับการพำนักอาศัยในประเทศอังกฤษเมื่อเทียบกับที่อื่น ๆ โมฆะคือความน่าจะเป็นของการพำนักอยู่ในสหราชอาณาจักรในกรณีต่าง ๆ เช่นเดียวกับความน่าจะเป็นที่พำนักอยู่ในสหราชอาณาจักรในฐานะตัวควบคุม (เช่นการรู้สถานะความดันโลหิตสูงของบุคคลนั้น

ในความเป็นจริงการทดสอบ McNemar ของการวิเคราะห์คู่ของข้อมูล โดยเฉพาะมันวิเคราะห์คู่ที่ไม่ลงรอยกัน ดังนั้นและsจากχ 2 = [ ( r - s ) -Rsχ2=[(R-s)-1]2(R+s)

ในตัวอย่างของคุณข้อมูลของคุณถูกจับคู่ (ตัวแปรเดียวกันวัดสองครั้งในเรื่องเดียวกัน) ดังนั้นการทดสอบของ McNemar จึงเป็นตัวเลือกที่เหมาะสมสำหรับการทดสอบความสัมพันธ์

[gung และฉันไม่เห็นด้วยสักครู่เกี่ยวกับคำตอบก่อนหน้านี้]

อ้างอิงที่ยกมา
"สมมติว่าเรายังสนใจในการเปรียบเทียบสัดส่วนเราจะทำอย่างไรถ้าข้อมูลของเราถูกจับคู่แทนที่จะเป็นอิสระ? ... ในสถานการณ์นี้เราใช้การทดสอบของ McNemar" - Pagano และ Gauvreau หลักการของชีวสถิติ 2 รุ่น, หน้า 349 [ เน้นเพิ่ม ]

"การแสดงออกเป็นที่รู้จักกันดีในฐานะสถิติการทดสอบจับคู่คู่ของ McNemar (McNemar, 1949) และเป็นแกนนำของการวิเคราะห์การจับคู่คู่ " - Rothman, กรีนแลนด์และแลช วิทยาการระบาดสมัยใหม่ , หน้า 286 [ เพิ่มเติมโดยเน้น ]

"การจับคู่เสื้อการทดสอบและการวัดซ้ำของการวิเคราะห์ความแปรปรวนสามารถนำมาใช้ในการวิเคราะห์การทดลองซึ่งตัวแปรการศึกษาสามารถวัดได้ในระดับช่วงเวลา (และน่าพอใจสมมติฐานอื่น ๆ ที่จำเป็นของวิธีพารา). สิ่งที่เกี่ยวกับการทดลองคล้ายกับคนที่ ในบทที่ 5 มีการวัดผลลัพธ์ในระดับเล็กน้อยปัญหานี้มักเกิดขึ้นเมื่อถามว่าบุคคลตอบรับการรักษาหรือเมื่อเปรียบเทียบผลลัพธ์ของการทดสอบการวินิจฉัยที่แตกต่างกันสองแบบซึ่งจัดประเภทเป็นบวกหรือลบในบุคคลเดียวกันเราจะพัฒนาขั้นตอนในการวิเคราะห์การทดลองดังกล่าวการทดสอบของ Mcnemar สำหรับการเปลี่ยนแปลงในบริบทของการศึกษาดังกล่าว "- Glanz, Primer of Biostatisticsχ2

"สำหรับข้อมูลกรณีการควบคุมการจับคู่ที่มีการควบคุมอย่างใดอย่างหนึ่งต่อกรณีการวิเคราะห์ผลเป็นเรื่องง่ายและทดสอบทางสถิติที่เหมาะสม McNemar ของไคสแควร์ทดสอบ ... ทราบว่าการคำนวณของทั้งสองอัตราส่วนราคาต่อรองและสถิติที่ผู้ให้ข้อมูลเท่านั้น เป็นคู่ที่มีการเปิดรับที่แตกต่างกันนั่นคือคู่ที่คดีถูกเปิดเผย แต่การควบคุมไม่ได้และผู้ที่สัมผัสถูกควบคุม แต่กรณีที่ไม่ได้สัมผัส "- Elwood การประเมินที่สำคัญของการศึกษาทางระบาดวิทยาและการทดลองทางคลินิกรุ่นที่ 1 หน้า 189–190 [ เน้นเพิ่ม ]


7

ความเข้าใจของฉันเกี่ยวกับการทดสอบของ McNemar มีดังนี้: มันถูกใช้เพื่อดูว่าการแทรกแซงได้สร้างความแตกต่างอย่างมีนัยสำคัญกับผลลัพธ์ไบนารีหรือไม่ ในตัวอย่างของคุณกลุ่มวิชาจะถูกตรวจสอบหาการติดเชื้อและการตอบสนองจะถูกบันทึกเป็นใช่หรือไม่ อาสาสมัครทุกคนจะได้รับการแทรกแซงพูดยาปฏิชีวนะ พวกเขาจะถูกตรวจสอบอีกครั้งสำหรับการติดเชื้อและการตอบสนองจะถูกบันทึกเป็นใช่ / ไม่อีกครั้ง การตอบสนอง (คู่) สามารถใส่ไว้ในตารางต่อไปนี้:

             After   
           |no  |yes|
Before|No  |1157|35 |
      |Yes |220 |13 |

และการทดสอบของ McNemar ก็เหมาะสมสำหรับเรื่องนี้

เป็นที่ชัดเจนจากตารางที่มีการแปลงจาก 'ใช่' เป็น 'ไม่' (220 / (220 + 13) หรือ 94.4%) มากกว่าจาก 'ไม่' เป็น 'ใช่' (35 / (1157 + 35) หรือ 2.9 %) เมื่อพิจารณาตามสัดส่วนเหล่านี้ค่า P ของ McNemar (4.901e-31) จะถูกต้องมากกว่าค่าไคสแควร์ (0.04082)

หากตารางแสดงถึงการติดเชื้อ 2 แบบที่แตกต่างกัน (คำถามที่ 2) แสดงว่า Chi-square นั้นเหมาะสมกว่า

คำถามข้อที่สามของคุณคลุมเครือ: คุณระบุเกี่ยวกับ Y ที่ t2 กับ Y ที่ t1 แต่ในตารางคุณเขียน 'X' ที่ t1 กับ Y ที่ t2 Y ที่ t2 เทียบกับ Y ที่ t1 เหมือนกับคำถามแรกของคุณและด้วยเหตุนี้จึงจำเป็นต้องมีการทดสอบของ McNemar ในขณะที่ X ที่ t1 และ Y ที่ t2 หมายถึงการเปรียบเทียบเหตุการณ์ที่แตกต่างกันและ Chi-square จะเหมาะสมกว่า

แก้ไข: ตามที่ Alexis กล่าวไว้ในความคิดเห็นข้อมูลที่ตรงกับตัวควบคุมและวิเคราะห์ด้วยการทดสอบของ McNemar ยกตัวอย่างเช่นผู้ป่วยโรคมะเร็ง 1425 คนได้รับการคัดเลือกเพื่อการศึกษาและสำหรับผู้ป่วยแต่ละคนก็มีการคัดเลือกผู้ป่วยโรคมะเร็ง ทั้งหมดเหล่านี้ (1425 * 2) ได้รับการตรวจสอบการติดเชื้อ ผลลัพธ์ของแต่ละคู่สามารถแสดงโดยตารางที่คล้ายกัน:

             Normal   
           |no  |yes|
Cancer|No  |1157|35 |
      |Yes |220 |13 |

ชัดเจนกว่านี้:

                                    Normal:
                                    No infection   Infection  
Cancer patient:     No infection    1157            35      
                    Infection       220             13      

มันแสดงให้เห็นว่าบ่อยครั้งมากขึ้นที่ผู้ป่วยโรคมะเร็งมีการติดเชื้อและการควบคุมไม่ได้กลับดีกว่า ความสำคัญของมันสามารถทดสอบได้โดยการทดสอบของ McNemar

หากผู้ป่วยและการควบคุมเหล่านี้ไม่ตรงกันและเป็นอิสระหนึ่งสามารถสร้างตารางต่อไปนี้และทำการทดสอบ chisquare:

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

ชัดเจนกว่านี้:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

โปรดทราบว่าตัวเลขเหล่านี้เหมือนกับขอบของตารางแรก:

> addmargins(mat)
      After
Before   No  Yes  Sum
   No  1157   35 1192
   Yes  220   13  233
   Sum 1377   48 1425

นั่นเป็นเหตุผลสำหรับการใช้คำเช่น 'marginal frequency' และ 'marginal homogeneity' ในการทดสอบของ McNemar

ที่น่าสนใจฟังก์ชั่น addmargins ยังสามารถช่วยในการตัดสินใจเลือกทดสอบที่จะใช้ หากผลรวมทั้งหมดมีจำนวนครึ่งหนึ่งของจำนวนผู้เข้าร่วมการวิจัย (บ่งบอกว่ามีการจับคู่เสร็จแล้ว) การทดสอบของ McNemar นั้นสามารถทำได้การทดสอบ chisquare อื่นนั้นเหมาะสม:

> addmargins(mat)
      Normal
Cancer   No  Yes  Sum
   No  1157   35 1192
   Yes  220   13  233
   Sum 1377   48 1425
> 
> addmargins(mat3)
      Infection
Cancer   No  Yes  Sum
   No  1377   48 1425
   Yes 1192  233 1425
   Sum 2569  281 2850

รหัส R สำหรับตารางด้านบนนั้นมาจากคำตอบข้างบน:

mat = as.table(rbind(c(1157, 35), 
                      c( 220, 13) ))
colnames(mat) <- rownames(mat) <- c("No", "Yes")
names(dimnames(mat)) = c("Cancer", "Normal")

mat3 = as.table(rbind(c(1377, 48), 
                     c(1192, 233) ))
colnames(mat3) <- rownames(mat3) <- c("No", "Yes")
names(dimnames(mat3)) = c("Cancer", "Infection")

การติดตามรหัสเทียมอาจช่วยให้ทราบถึงความแตกต่าง:

subject_id      result_first_observation    result_second_observation   
1               no                          yes                     
2               yes                         no                      
...

mcnemar.test(table(result_first_observation, result_second_observation))



pair_id     result_case_subject     result_control_subject  
1           no                      yes                     
2           yes                     no                      
...

mcnemar.test(table(result_case_subject, result_control_subject))



subject_id      result_first_test       result_second_test
1               yes                     no
2               no                      yes
..

chisq.test(table(result_first_test, result_second_test))

แก้ไข:

mid-pรูปแบบที่หลากหลายของการทดสอบ McNemar ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ ) เป็นสิ่งที่น่าสนใจ มันเปรียบเทียบbและcของตารางฉุกเฉินเช่นจำนวนที่เปลี่ยนจากใช่เป็นไม่ใช่เมื่อเทียบกับจำนวนที่เปลี่ยนจากไม่ใช่เป็นใช่ (ไม่สนใจจำนวนของผู้ที่ยังคงใช่หรือไม่ผ่านการศึกษา) สามารถดำเนินการได้โดยใช้การทดสอบทวินามใน python ดังที่แสดงไว้ที่https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb

มันอาจจะเทียบเท่ากับการbinom.test(b, b+c, 0.5)ตั้งแต่การเปลี่ยนแปลงการสุ่มหนึ่งจะคาดหวังให้เท่ากับbc


3
ไม่เพียง แต่สำหรับการวิเคราะห์การแทรกแซง: มันถูกใช้เพื่อวิเคราะห์ข้อมูลที่ตรงกับตัวควบคุมและการสังเกตการณ์
Alexis

เมื่อพิจารณาคำอธิบาย / การตั้งค่าก่อนตารางสำหรับไตรมาสที่ 3 ฉันสงสัยว่า "X" เป็นตัวพิมพ์ผิด แต่นั่นเป็นสิ่งที่ดีมาก
gung - Reinstate Monica

@mso แก้ไข Q3 มันคือ X ที่ t1! อย่างอื่นอย่างที่คุณบอกว่ามันไม่แตกต่างจาก Q1 คำถามนี้อายุมากกว่าหนึ่งปีและแปลกใจที่เห็นใครบางคนกลับมาด้วยความคิดเดียวกันที่ทำให้ฉันสับสน ติดตามด้วยความสนใจ!
Anto

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