P-değerlerim lojistik regresyon çıktısı, ki-kare testi ve OR için güven aralığı arasında neden farklılıklar gösteriyor?


37

Tedavi değişkenini ( Curevs. No Cure) aldıktan sonra sonuç değişkeninin iyileştirildiği lojistik bir regresyon oluşturdum . Bu çalışmada tüm hastalar tedavi gördü. Diyabetin bu sonuçla ilişkili olup olmadığını görmekle ilgileniyorum.

R'de lojistik regresyon çıktım şöyle gözüküyor:

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

Ancak, oran oranı için güven aralığı 1 içerir :

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

Bu veriler üzerinde ki-kare testi yaptığımda aşağıdakileri alıyorum:

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

Bunu kendi başınıza hesaplamak istiyorsanız, tedavi edilmiş ve kürlenmemiş gruplardaki diyabet dağılımı aşağıdaki gibidir:

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

Sorum şu: Neden 1'i içeren p değerleri ve güven aralığı aynı fikirde değil?


Diyabet için güven aralığı nasıl hesaplandı? Bir Wald CI oluşturmak için parametre tahmini ve standart hata kullanırsanız, üst uç nokta olarak exp (-. 5597 + 1.96 * .2813) = .99168 elde edersiniz.
hard2fathom

@ hard2fathom, muhtemelen OP kullandı confint(). Yani, olasılık profillendi. Bu şekilde LRT'ye benzer CI'ler elde edersiniz. Hesaplamanız doğru, ancak bunun yerine Wald CI'leri oluşturuyor. Aşağıda cevabımda daha fazla bilgi var.
gung - Reinstate Monica

Daha dikkatli okuduktan sonra iptal ettim. Mantıklı.
hard2fathom

Yanıtlar:


64

Genelleştirilmiş doğrusal modellerde, çalıştırılabilecek üç farklı istatistiksel test türü vardır. Bunlar: Wald testleri, olabilirlik oran testleri ve puan testleri. Mükemmel UCLA istatistikleri yardım sitesi burada bir tartışma var . Aşağıdaki şekil (sitelerden kopyalanmıştır) onları göstermeye yardımcı olur:

görüntü tanımını buraya girin

  1. zNNN
  2. Olabilirlik oranı testleri , olasılıkların (veya log olasılıklarındaki farkın) oranına maksimumda ve sıfırda bakar. Bu genellikle en iyi test olarak kabul edilir.
  3. Skor testi sıfır değerde olasılığı eğimi dayanmaktadır. Bu genellikle daha az güçlüdür, ancak tam olasılığın hesaplanamadığı zamanlar vardır ve bu yüzden bu güzel bir geri dönüş seçeneğidir.

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

Nppα=.05.05

I altında profiller doğrusal yordayıcının ölçeğinde belirlenir ve olasılık oranı testini açıkça (üzerinden anova.glm()) uygularlar . Sizinle aynı sonuçları alıyorum:

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'ın bir yorumda işaret ettiği gibi (şimdi silindi), içinde R, sınava dayalı p-değeri de elde edebilirsiniz anova.glm(model, test="Rao"). Varsayılan olarak, çünkü kayda aşağıdaki örnekte p-değeri, yukarıda chi-square testi olarak tamamen aynı değildir Rsitesindeki chisq.test()bir süreklilik düzeltmesi uygular. Bu ayarı değiştirirsek, p değerleri eşleşir:

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 Bu, biraz gizemli bir davranışı net ve otoriter bir şekilde ele alan ve faydalı rehberlik sağlayan oldukça bilgilendirici bir analizdir.
whuber

Güzel cevap, "Verilerinizin konvansiyonel ölçütlere göre oldukça 'önemli olmadığını söyleyebilirim" diyerek ne demek istediğinizi anlamadığım halde.
mark999

@ mark999, buradaki en güvenilir testler (LRT ve ki-kare) her ikisi de hafifçe .05'in üzerindedir.
gung -
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.