ดูเหมือนว่าฉันได้ทำแฮชของสิ่งนี้ ให้ฉันพยายามอธิบายสิ่งนี้อีกครั้งด้วยวิธีที่ต่างกันและเราจะดูว่ามันช่วยล้างสิ่งต่างๆได้ไหม
วิธีดั้งเดิมในการอธิบายการทดสอบของ 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
ณ จุดนี้มันเป็นสิ่งสำคัญที่จะคิดออกว่าคำถามที่เราต้องการถามข้อมูลของเรา มีคำถามสามข้อที่เราสามารถถามได้ที่นี่:
- เราอาจต้องการทราบว่าตัวแปรเด็ดขาด
BP
และNationality
เกี่ยวข้องหรือเป็นอิสระ;
- เราอาจสงสัยว่าความดันโลหิตสูงเป็นเรื่องธรรมดาในหมู่นักสถิติของสหรัฐอเมริกามากกว่าในบรรดานักสถิติของสหราชอาณาจักรหรือไม่
ในที่สุดเราอาจสงสัยว่าสัดส่วนของนักสถิติที่มีความดันโลหิตสูงเท่ากับสัดส่วนของนักสถิติสหรัฐที่เราคุยด้วยหรือไม่ นี่หมายถึงสัดส่วนของตาราง สิ่งเหล่านี้ไม่ได้ถูกพิมพ์ตามค่าเริ่มต้นใน 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
อย่างที่ฉันได้กล่าวไปแล้ววิธีการดั้งเดิมที่กล่าวถึงในหนังสือเรียนหลายเล่มคือการพิจารณาว่าการทดสอบใดที่จะใช้ขึ้นอยู่กับว่าข้อมูลนั้น "จับคู่" หรือไม่ แต่นี่เป็นสิ่งที่ทำให้เกิดความสับสนเป็นอย่างมากตารางฉุกเฉินนี้ "จับคู่" หรือไม่? หากเราเปรียบเทียบสัดส่วนกับความดันโลหิตสูงระหว่างนักสถิติในสหรัฐอเมริกาและสหราชอาณาจักรคุณกำลังเปรียบเทียบสองสัดส่วน (แม้ว่าตัวแปรเดียวกัน) วัดจากกลุ่มคนที่แตกต่างกัน ในทางตรงกันข้ามถ้าคุณต้องการเปรียบเทียบสัดส่วนกับความดันโลหิตสูงกับสัดส่วนของสหรัฐอเมริกาคุณกำลังเปรียบเทียบสองสัดส่วน (แม้ว่าตัวแปรต่างกัน) วัดจากกลุ่มคนเดียวกัน ข้อมูลเหล่านี้มีทั้ง"จับคู่" และ "ไม่จับคู่" ในเวลาเดียวกัน (แม้ว่าจะเกี่ยวกับแง่มุมต่าง ๆ ของข้อมูล) สิ่งนี้นำไปสู่ความสับสน เพื่อพยายามหลีกเลี่ยงความสับสนนี้ฉันขอยืนยันว่าคุณควรคิดในแง่ของคำถามที่คุณถาม โดยเฉพาะถ้าคุณต้องการทราบ:
- หากตัวแปรอิสระ: ใช้การทดสอบไค - สแควร์
- หากสัดส่วนที่มีความดันโลหิตสูงแตกต่างกันไปตามสัญชาติ: ใช้การทดสอบ z สำหรับความแตกต่างของสัดส่วน
- หากสัดส่วนของส่วนต่างเท่ากันให้ใช้การทดสอบของ 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π= .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 (หรือการทดสอบทวินามที่คำนวณด้วยตนเองอย่างถูกต้อง) ใช้ข้อมูลที่เกี่ยวข้องเท่านั้นโดยไม่ใช้ข้อมูลใด ๆ สองครั้งอย่างผิดกฎหมาย ไม่เพียง 'เกิดขึ้น' เพื่อให้ได้ผลลัพธ์ที่เหมาะสมกับข้อมูล
ฉันยังคงเชื่อว่าการพยายามคิดออกว่าตารางที่อาจเกิดขึ้นเป็น "คู่" นั้นไม่ช่วยเหลือหรือไม่ ฉันขอแนะนำให้ใช้การทดสอบที่ตรงกับคำถามที่คุณขอข้อมูล