ฟิชเชอร์ทดสอบที่ถูกต้องกับข้อมูลที่จับคู่


9

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

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

คำตอบ:


8

คุณต้องมีการทดสอบของ 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

คุณใช้การทดสอบแบบใดสำหรับการควบคุมหลายตัวต่อกรณีพูดได้ 10 ตัวควบคุมต่อหนึ่งกรณี?
eXpander

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

5

คุณมีสิทธิ์ที่การทดสอบที่แน่นอนของฟิชเชอร์ไม่เหมาะสมสำหรับข้อมูลของคุณ คุณจะต้องฟอร์มตารางฉุกเฉินของคุณใหม่ ตารางใหม่จะมีไว้สำหรับคู่ดังนั้นจึงมีข้อมูลครึ่งหนึ่งที่แสดง (ในกรณีของคุณ 40 แทนที่จะเป็น 80) ตัวอย่างเช่นสมมติว่าข้อมูลของคุณมีลักษณะเช่นนี้ (แต่ละกลุ่มของคู่ที่จับคู่อยู่ในแถวของตัวเองและ1ระบุว่าเป็นผู้สูบบุหรี่):

cancer  control
1       1
1       1
1       0
1       0
1       0
0       1
0       0
0       0
0       0
0       0
0       0

จากนั้นตารางฉุกเฉินสำรองของคุณอาจเป็น:

       cancer  control
smoker 5       3
non    6       8

ตารางฉุกเฉินใหม่ของคุณจะมีลักษณะดังนี้:

            control
cancer    smoker  non           
  smoker  2       3
  non     1       5

ตารางฉุกเฉินครั้งแรกรวมเป็น 22 (จำนวนวิชาทั้งหมดในการศึกษาของคุณ) แต่ตารางฉุกเฉินที่สองรวมเป็น 11 (จำนวนคู่ที่ตรงกัน)

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


1
โปรดทราบว่าการทดสอบ McNemar สำหรับข้อมูลแบบแยกคู่นั้นเทียบเท่ากับการทดสอบเครื่องหมาย ดังนั้น OP อาจใช้การทดสอบเครื่องหมาย (ด้วยการเปลี่ยนแปลงหรือการทดสอบนัยสำคัญของ Monte Carlo หากจำเป็น)
ttnphns

1
@ttnphns ฉันพูดถึงในหัวข้อที่เชื่อมโยงซึ่งฉันอธิบายการทดสอบของ McNemar โดยละเอียด
gung - Reinstate Monica

1

ไม่จำเป็นต้องใช้การทดสอบแบบจับคู่ การจับคู่ของประชากรยืนยันว่าการกระจายตัวของโควาไรต์ (อายุ, ... ) เหมือนกันในสอง populatoins ดังนั้นจึงไม่ "บิดเบือน" ภาพ

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


0

ใช่และไม่:

อาจเป็นกรณีของคุณตกอยู่ภายใต้กรณีPearce (2015) : จุดในบทความคือว่าตัวแปรที่คุณใช้เพื่อเลือกการควบคุมควรได้รับการควบคุมในการศึกษาและไม่ได้อยู่ในการทดสอบ นั่นอาจเป็นเรื่องยากเนื่องจาก N = 80

หวังว่าความช่วยเหลือนี้ :)

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