คุณต้องมีการทดสอบของ McNemar ( http://en.wikipedia.org/wiki/McNemar%27s_test , http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3346204/ ) ต่อไปนี้เป็นตัวอย่าง:
มีการศึกษา 1300 จุดและตัวควบคุมที่ตรงกัน 1300 ตัว สถานะการสูบบุหรี่มีสถานะดังนี้:
Normal
|no |yes|
Cancer|No |1000|40 |
|Yes |200 |60 |
แต่ละรายการของตารางแสดงข้อมูลเกี่ยวกับคู่ของ CASE-CONTROL PAY: 1,000 หมายถึงใน 1,000 คู่ควบคุมกรณีและไม่สูบบุหรี่ 40 เป็นจำนวนคู่ควบคุมกรณีที่การควบคุมเป็นผู้สูบบุหรี่และผู้ป่วยโรคมะเร็งไม่ได้เป็นและอื่น ๆ รหัส R ต่อไปนี้สามารถใช้สร้างตารางนี้และทำการทดสอบของ McNemar
mat = as.table(rbind(c(1000, 40), c( 200, 60) ))
colnames(mat) <- rownames(mat) <- c("Nonsmoker", "Smoker")
names(dimnames(mat)) = c("Cancer", "Normal")
mat
# Normal
# Nonsmoker Smoker
# Cancer
# Nonsmoker 1000 40
# Smoker 200 60
mcnemar.test(mat)
# McNemar's Chi-squared test with continuity correction
#
#data: mat
#McNemar's chi-squared = 105.34, df = 1, p-value < 2.2e-16
การทดสอบของ McNemar ยังใช้เพื่อประเมินผลของการแทรกแซงในตัวแปรผลลัพธ์ไบนารี ผลลัพธ์คู่ก่อน - หลังถูกขึ้นบัญชีดำและผ่านการทดสอบข้างต้น
แก้ไข: การขยายตัวอย่างที่กำหนดโดย @gung หากสถานะการสูบบุหรี่แสดงอยู่ใน dataframe mydf ของคุณดังนี้:
pairID cancer control
1 1 1
2 1 1
3 1 0
...
การทดสอบ McNemars สามารถทำได้ด้วยคำสั่ง R ต่อไปนี้:
> tt = with(mydf, table(cancer, control))
> tt
control
cancer 0 1
0 5 1
1 3 2
> mcnemar.test(tt)
McNemar`s Chi-squared test with continuity correction
data: tt
McNemar`s chi-squared = 0.25, df = 1, p-value = 0.6171