ความสัมพันธ์ระหว่างการทดสอบของ McNemar กับการถดถอยโลจิสติกตามเงื่อนไข


14

ฉันสนใจในการสร้างแบบจำลองของข้อมูลการตอบสนองแบบไบนารีในการสังเกตคู่ เราตั้งเป้าหมายที่จะทำการอนุมานเกี่ยวกับประสิทธิผลของการแทรกแซงก่อนการโพสต์ในกลุ่มอาจปรับเปลี่ยนสำหรับ covariates หลายคนและพิจารณาว่ามีการแก้ไขผลกระทบโดยกลุ่มที่ได้รับการฝึกอบรมที่แตกต่างกันโดยเฉพาะอย่างยิ่งเป็นส่วนหนึ่งของการแทรกแซง

รับข้อมูลของแบบฟอร์มต่อไปนี้:

id phase resp
1  pre   1
1  post  0
2  pre   0
2  post  0
3  pre   1
3  post  0

และตารางฉุกเฉินของข้อมูลที่ตอบสนองต่อการจับคู่:2×2

Preแก้ไขไม่ถูกต้องเสาแก้ไขaไม่ถูกต้องd

เรากำลังสนใจในการทดสอบสมมติฐาน:1H0:θ=1

การทดสอบของ McNemar ให้:ภายใต้ (asymptotically) สิ่งนี้เป็นสิ่งที่เข้าใจได้ง่ายเพราะเราคาดหวังว่าสัดส่วนของคู่ที่ไม่ลงรอยกัน (และ ) เท่ากันจะได้รับผลบวก ( ) หรือผลลบ ( c ) ด้วยความน่าจะเป็นของนิยามกรณีบวกกำหนดp = bQ=(-)2+~χ12H0และn=B+C อัตราต่อรองของการสังเกตคู่ที่ไม่ลงรอยกันเป็นบวกคือpพี=+n=+ .พี1-พี=

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

L(X;β)=ΠJ=1nประสบการณ์(βXJ,2)ประสบการณ์(βXJ,1)+ประสบการณ์(βXJ,2)

ที่ประสบการณ์(β)=θ

ดังนั้นความสัมพันธ์ระหว่างการทดสอบเหล่านี้คืออะไร? เราจะทำการทดสอบอย่างง่ายของตารางฉุกเฉินที่แสดงไว้ก่อนหน้านี้ได้อย่างไร ดูการปรับเทียบค่า p จาก clogit และแนวทางของ McNemar ภายใต้ null คุณคิดว่ามันไม่เกี่ยวข้องกันอย่างสมบูรณ์!

library(survival)
n <- 100
do.one <- function(n) {
  id <- rep(1:n, each=2)
  ph <- rep(0:1, times=n)
  rs <- rbinom(n*2, 1, 0.5)
  c(
    'pclogit' = coef(summary(clogit(rs ~ ph + strata(id))))[5],
    'pmctest' = mcnemar.test(table(ph,rs))$p.value
  )
}

out <- replicate(1000, do.one(n))
plot(t(out), main='Calibration plot of pvalues for McNemar and Clogit tests', 
  xlab='p-value McNemar', ylab='p-value conditional logistic regression')

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


พี=พีad/=1

ฉันดูเหมือนจะจำได้ว่ามีใครสามารถแปรการทดสอบของ McNemar เป็นการทดสอบอัตราส่วนของอัตราเดิมพันดังนั้นฉันสงสัยว่าจะเขียนความน่าจะเป็น (ความน่าจะเป็นตามเงื่อนไขได้อย่างไร) สำหรับการทดสอบนั้น
AdamO

ฉันไม่แน่ใจว่าคุณหมายถึงรุ่นทดสอบที่แน่นอนของ McNemar หรือไม่ Breslow and Day (1980) , p. 164-166 และแพ็คเกจ exact2x2อาจอ้างอิง
Randel

คำตอบ:


4

ขออภัยเป็นปัญหาเก่าฉันเจอสิ่งนี้โดยบังเอิญ

มีข้อผิดพลาดในรหัสของคุณสำหรับการทดสอบ mcnemar ลองด้วย:

n <- 100
do.one <- function(n) {
  id <- rep(1:n, each=2)
  case <- rep(0:1, times=n)
  rs <- rbinom(n*2, 1, 0.5)
  c(
    'pclogit' = coef(summary(clogit(case ~ rs + strata(id))))[5],
    'pmctest' = mcnemar.test(table(rs[case == 0], rs[case == 1]))$p.value
  )
}

out <- replicate(1000, do.one(n))

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


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

2

มี 2 ​​แบบจำลองทางสถิติการแข่งขัน โมเดล # 1 (สมมติฐานว่าง, McNemar): ความน่าจะเป็นที่ถูกต้องถึงไม่ถูกต้อง = ความน่าจะเป็นที่ไม่ถูกต้องที่จะถูก = 0.5 หรือเทียบเท่า b = c รุ่น # 2: ความน่าจะเป็นที่ถูกต้องถึง <ความน่าจะเป็นที่ไม่ถูกต้องถึงถูกต้องหรือเทียบเท่า b> c สำหรับแบบจำลอง # 2 เราใช้วิธีความน่าจะเป็นสูงสุดและการถดถอยแบบลอจิสติกเพื่อกำหนดพารามิเตอร์แบบจำลองที่เป็นตัวแทนของแบบจำลอง 2 วิธีทางสถิติดูแตกต่างกันเนื่องจากแต่ละวิธีแสดงแบบจำลองที่แตกต่างกัน


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