เหตุใดค่า p ของฉันจึงแตกต่างกันระหว่างเอาต์พุตการถดถอยโลจิสติกการทดสอบไคสแควร์และช่วงความมั่นใจสำหรับ OR


37

ฉันได้สร้างการถดถอยโลจิสติกที่ตัวแปรผลลัพธ์จะหายหลังจากได้รับการรักษา ( CureเทียบกับNo Cure) ผู้ป่วยทั้งหมดในการศึกษานี้ได้รับการรักษา ฉันสนใจที่จะดูว่ามีโรคเบาหวานเกี่ยวข้องกับผลลัพธ์นี้หรือไม่

ใน R ผลลัพธ์การถดถอยโลจิสติกของฉันมีลักษณะดังนี้:

Call:
glm(formula = Cure ~ Diabetes, family = binomial(link = "logit"), data = All_patients)
...
Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   1.2735     0.1306   9.749   <2e-16 ***
Diabetes     -0.5597     0.2813  -1.990   0.0466 *  
...
    Null deviance: 456.55  on 415  degrees of freedom
Residual deviance: 452.75  on 414  degrees of freedom
  (2 observations deleted due to missingness)
AIC: 456.75

อย่างไรก็ตามช่วงความเชื่อมั่นสำหรับอัตราต่อรองรวมถึง 1 :

                   OR     2.5 %   97.5 %
(Intercept) 3.5733333 2.7822031 4.646366
Diabetes    0.5713619 0.3316513 1.003167

เมื่อฉันทำการทดสอบไคสแควร์กับข้อมูลเหล่านี้ฉันได้รับต่อไปนี้:

data:  check
X-squared = 3.4397, df = 1, p-value = 0.06365

หากคุณต้องการคำนวณด้วยตัวคุณเองเรื่องการกระจายตัวของโรคเบาหวานในกลุ่มที่หายขาดและไม่แน่นอนมีดังนี้:

Diabetic cure rate:      49 /  73 (67%)
Non-diabetic cure rate: 268 / 343 (78%)

คำถามของฉันคือ: ทำไม p-values ​​และช่วงความมั่นใจไม่รวม 1 เห็นด้วย?


ช่วงความเชื่อมั่นสำหรับโรคเบาหวานคำนวณได้อย่างไร หากคุณใช้การประมาณพารามิเตอร์และข้อผิดพลาดมาตรฐานเพื่อสร้าง Wald CI คุณจะได้รับ exp (-. 5597 + 1.96 * .2813) = .99168 เป็นจุดปลายด้านบน
hard2fathom

@ hard2fathom ส่วนใหญ่มีแนวโน้ม OP confint()ที่ใช้ คือความเป็นไปได้ที่จะถูกทำโปรไฟล์ ด้วยวิธีนี้คุณจะได้รับ CIs ที่คล้ายคลึงกับ LRT การคำนวณของคุณถูกต้อง แต่เป็น Wald CIs แทน มีข้อมูลเพิ่มเติมในคำตอบของฉันด้านล่าง
gung - Reinstate Monica

ฉัน upvoted หลังจากอ่านอย่างระมัดระวังมากขึ้น มีเหตุผล.
hard2fathom

คำตอบ:


64

ด้วยแบบจำลองเชิงเส้นทั่วไปมีการทดสอบทางสถิติสามประเภทที่สามารถเรียกใช้ได้ การทดสอบ Wald การทดสอบอัตราส่วนความน่าจะเป็นและการทดสอบคะแนน ดีสถิติยูซีแอลช่วยเหลือสถานที่มีการอภิปรายของพวกเขาที่นี่ รูปต่อไปนี้ (คัดลอกมาจากเว็บไซต์ของพวกเขา) ช่วยในการอธิบาย:

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

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

summary.glm()confint()profile()1.96χ2

Nppα=.05.05

ด้านล่างฉันแสดงค่าสัมประสิทธิ์ของสเกลของตัวทำนายเชิงเส้นและเรียกใช้การทดสอบอัตราส่วนความน่าจะเป็นอย่างชัดเจน (ผ่านanova.glm()) ฉันได้รับผลลัพธ์เช่นเดียวกับคุณ:

library(MASS)
x = matrix(c(343-268,268,73-49,49), nrow=2, byrow=T);  x
#      [,1] [,2]
# [1,]   75  268
# [2,]   24   49
D = factor(c("N","Diabetes"), levels=c("N","Diabetes"))
m = glm(x~D, family=binomial)
summary(m)
# ...
# Coefficients:
#             Estimate Std. Error z value Pr(>|z|)    
# (Intercept)  -1.2735     0.1306  -9.749   <2e-16 ***
# DDiabetes     0.5597     0.2813   1.990   0.0466 *  
# ...
confint(m)
# Waiting for profiling to be done...
#                    2.5 %    97.5 %
# (Intercept) -1.536085360 -1.023243
# DDiabetes   -0.003161693  1.103671
anova(m, test="LRT")
# ...
#      Df Deviance Resid. Df Resid. Dev Pr(>Chi)  
# NULL                     1     3.7997           
# D     1   3.7997         0     0.0000  0.05126 .
chisq.test(x)
#         Pearson's Chi-squared test with Yates' continuity correction
# 
# X-squared = 3.4397, df = 1, p-value = 0.06365

ในฐานะที่เป็น @JWilliman ชี้ให้เห็นในความคิดเห็น (ตอนนี้ลบ) ในการRนี้คุณยังสามารถได้รับคะแนนตาม p-value anova.glm(model, test="Rao")ใช้ ในตัวอย่างด้านล่างทราบว่า p-value ไม่มากเช่นเดียวกับในการทดสอบไคสแควร์ดังกล่าวข้างต้นเพราะโดยค่าเริ่มต้นR's chisq.test()ใช้แก้ไขต่อเนื่อง หากเราเปลี่ยนการตั้งค่านั้นค่า p จะตรงกับ:

anova(m, test="Rao")
# ...
#      Df Deviance Resid. Df Resid. Dev   Rao Pr(>Chi)  
# NULL                     1     3.7997                 
# D     1   3.7997         0     0.0000 4.024  0.04486 *
chisq.test(x, correct=FALSE)
#   Pearson's Chi-squared test
# 
# data:  x
# X-squared = 4.024, df = 1, p-value = 0.04486

12
+1 นี่คือการวิเคราะห์ที่ให้ข้อมูลอย่างมากการจัดการกับพฤติกรรมที่ค่อนข้างลึกลับอย่างชัดเจนและมีอำนาจและให้คำแนะนำที่เป็นประโยชน์
whuber

คำตอบที่ดีแม้ว่าฉันไม่เข้าใจความหมายของคุณโดย "ฉันจะบอกว่าข้อมูลของคุณไม่ได้ค่อนข้าง 'สำคัญ' ตามเกณฑ์ปกติ"
mark999

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