Puede ayudarlo a leer mi respuesta aquí: ¿Por qué mis valores p difieren entre la salida de regresión logística, la prueba de chi-cuadrado y el intervalo de confianza para el OR? Su pregunta aquí es casi un duplicado de eso, pero hay un par de elementos adicionales en su pregunta que pueden abordarse.
Como señala @CliffAB, los valores p en la summary.glm()
salida son de las pruebas de Wald. Estos son análogos a las pruebas de coeficientes para un modelo lineal, ya que son la diferencia entre el valor ajustado del coeficiente y el valor de referencia (tomado como ), dividido por el error estándar. La diferencia es que estos se toman para ser distribuidos como un estándar normal en lugar de . Por otro lado, estos son válidos para muestras grandes y no necesariamente sabemos qué constituye una 'muestra grande' en ningún caso. t0 0t
El uso anova.glm()
le da acceso a diferentes pruebas. Cuando configura test="Rao"
, le da el valor p de una prueba de puntaje. Y cuando establece cualquiera test="Chisq"
o test="LRT"
(son lo mismo), le da el valor p de una prueba de razón de probabilidad.
La anova.glm()
función prueba la misma hipótesis nula que la prueba de Wald en la summary()
salida en este caso . Eso es solo porque su modelo tiene solo una variable. La anova.glm()
función realizará pruebas secuenciales, que son análogas a 'SS tipo I' en un entorno lineal, mientras que las pruebas de Wald summary()
son análogas a 'SS tipo III' en un entorno lineal (vea mi respuesta aquí: Cómo interpretar el tipo I, tipo II y tipo III ANOVA y MANOVA? ). Considerar:
x2 = rnorm(n)
m2 = glm(y~x+x2, family="binomial")
summary(m2)$coefficients
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -0.05906436 0.186876339 -0.3160612 7.519561e-01
# x -0.01567551 0.003537183 -4.4316372 9.352029e-06
# x2 -0.05967796 0.099093504 -0.6022388 5.470152e-01
anova(m2, test="LRT")
# Terms added sequentially (first to last)
#
# Df Deviance Resid. Df Resid. Dev Pr(>Chi)
# NULL 499 619.10
# x 1 20.3841 498 598.72 6.335e-06 ***
# x2 1 0.3627 497 598.35 0.547
m3 = glm(y~x2+x, family="binomial") # I just switched the order of x & x2 here
summary(m3)$coefficients
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -0.05906436 0.186876339 -0.3160612 7.519561e-01
# x2 -0.05967796 0.099093504 -0.6022388 5.470152e-01 # these are the same
# x -0.01567551 0.003537183 -4.4316372 9.352029e-06 # as above
anova(m3, test="LRT")
# Terms added sequentially (first to last)
#
# Df Deviance Resid. Df Resid. Dev Pr(>Chi)
# NULL 499 619.10
# x2 1 0.1585 498 618.94 0.6906 # these differ from the
# x 1 20.5883 497 598.35 5.694e-06 *** # anova output above
Puede calzar la anova.glm()
función para darle pruebas de puntaje y razón de probabilidad de variables individuales en un modelo de regresión logística múltiple que es análogo al 'SS tipo III', pero es tedioso. Debería seguir reajustando su modelo para que cada variable a su vez aparezca en último lugar en la fórmula proporcionada a la glm()
llamada. El último valor p listado en la anova.glm()
salida es uno que será análogo al 'tipo III SS'.
Para obtener la puntuación o las pruebas de razón de verosimilitud de variables individuales más convenientemente, use drop1()
en su lugar Considerar:
drop1(m3, test="LRT")
# Single term deletions
#
# Model:
# y ~ x2 + x
# Df Deviance AIC LRT Pr(>Chi)
# <none> 598.35 604.35
# x2 1 598.72 602.72 0.3627 0.547 # the same as when x2 is last above
# x 1 618.94 622.94 20.5883 5.694e-06 *** # the same as when x is last above