58 votos

¿Por qué ¿se diferencian mis valores de p entre la salida de la regresión logística, prueba de ji cuadrado y el intervalo de confianza para el OR?

He construido una regresión logística donde la variable de resultado es curado después de recibir el tratamiento (Cure vs No Cure). Todos los pacientes en este estudio recibieron tratamiento. Estoy interesado en ver si la diabetes está asociada con este resultado.

En R mi regresión logística de salida se ve de la siguiente manera:

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

Sin embargo, el intervalo de confianza para la razón de odds de 1:

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

Cuando hago una prueba de chi-cuadrado en estos datos me sale lo siguiente:

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

Si quieres calcular por su cuenta la distribución de la diabetes en los curados y no curados grupos son los siguientes:

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

Mi pregunta es: ¿por Qué no los valores de p y el intervalo de confianza del 1 de ellas de acuerdo?

105voto

Sean Hanley Puntos 2428

Con modelos lineales generalizados, hay tres diferentes tipos de pruebas estadísticas que se pueden ejecutar. Estos son: pruebas de Wald, el cociente de probabilidad de las pruebas, y el resultado de las pruebas. La excelente UCLA estadísticas del sitio de ayuda tiene una discusión de ellos aquí. La figura siguiente (copiado de su sitio) ayuda a ilustrar ellos:

enter image description here

  1. La prueba de Wald se supone que la probabilidad se distribuye normalmente, y sobre esa base, se utiliza el grado de curvatura para estimar el error estándar. Entonces, la estimación del parámetro dividido por la SE produce un $z$-score. Esto es en virtud de un gran $N$, pero no es del todo cierto con menor $N$s. Es difícil decir cuando su $N$ es lo suficientemente grande como para que esta propiedad suspenso, por lo que esta prueba puede ser un poco arriesgado.
  2. Cociente de probabilidad de las pruebas vistazo a la relación de las probabilidades (o de la diferencia del logaritmo de las probabilidades) en su máximo y al nulo. Esto es a menudo considerado como el mejor de la prueba.
  3. La puntuación de la prueba se basa en la pendiente de la probabilidad en el valor null. Este normalmente es menos potente, pero hay veces cuando la probabilidad puede ser calculada así que esta es una buena opción de reserva.

Las pruebas que vienen con summary.glm() son pruebas de Wald. No dices cómo obtuvo sus intervalos de confianza, pero supongo que utilizó confint(), que a su vez llama a profile(). Más específicamente, los intervalos de confianza se calculan por los perfiles de la probabilidad (que es un mejor enfoque de multiplicar el SE $1.96$). Es decir, que son análogas a las de la prueba de razón de verosimilitud, no la prueba de Wald. El $\chi^2$-prueba, a su vez, es una prueba de puntuación.

Como su $N$ se convierte indefinidamente grande, los tres diferentes $p$'s deben converger en el mismo valor, pero pueden diferir ligeramente cuando usted no tiene infinito de datos. Vale la pena señalar que el (Wald) $p$-valor en su salida inicial es apenas significativo y hay poca diferencia real entre poco más y un poco menos de $\alpha=.05$ (comilla). Esa línea no es "magia". Dado que los dos más fiables las pruebas están a poco más de $.05$, yo diría que sus datos no son muy "significativo" por los criterios convencionales.

A continuación el perfil de los coeficientes en la escala de la predictor lineal y ejecutar la prueba de razón de verosimilitud explícitamente (a través de la anova.glm()). Puedo obtener los mismos resultados como:

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X