Además de la respuesta de @gung, intentaré dar un ejemplo de lo que es el anova
que la función de prueba en realidad. Espero que esto le permita decidir qué pruebas son apropiadas para las hipótesis que le interesa probar.
Supongamos que tiene un resultado $y$ y 3 variables predictoras: $x_{1}$ , $x_{2}$ y $x_{3}$ . Ahora bien, si su modelo de regresión logística fuera my.mod <- glm(y~x1+x2+x3, family="binomial")
. Cuando se ejecuta anova(my.mod, test="Chisq")
la función compara los siguientes modelos en orden secuencial. Este tipo también se denomina ANOVA de tipo I o suma de cuadrados de tipo I (véase este puesto para comparar los distintos tipos):
glm(y~1, family="binomial")
contra. glm(y~x1, family="binomial")
glm(y~x1, family="binomial")
contra. glm(y~x1+x2, family="binomial")
glm(y~x1+x2, family="binomial")
contra. glm(y~x1+x2+x3, family="binomial")
Así que secuencialmente compara el modelo más pequeño con el siguiente más complejo añadiendo una variable en cada paso. Cada una de esas comparaciones se realiza mediante un prueba de razón de verosimilitud (Prueba LR; véase el ejemplo más abajo). Por lo que sé, estas hipótesis rara vez son de interés, pero esto debe decidirlo usted.
Este es un ejemplo en R
:
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(my.mod)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# The sequential analysis
anova(my.mod, test="Chisq")
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 399 499.98
gre 1 13.9204 398 486.06 0.0001907 ***
gpa 1 5.7122 397 480.34 0.0168478 *
rank 3 21.8265 394 458.52 7.088e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# We can make the comparisons by hand (adding a variable in each step)
# model only the intercept
mod1 <- glm(admit ~ 1, data = mydata, family = "binomial")
# model with intercept + gre
mod2 <- glm(admit ~ gre, data = mydata, family = "binomial")
# model with intercept + gre + gpa
mod3 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial")
# model containing all variables (full model)
mod4 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
anova(mod1, mod2, test="LRT")
Model 1: admit ~ 1
Model 2: admit ~ gre
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 399 499.98
2 398 486.06 1 13.92 0.0001907 ***
anova(mod2, mod3, test="LRT")
Model 1: admit ~ gre
Model 2: admit ~ gre + gpa
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 398 486.06
2 397 480.34 1 5.7122 0.01685 *
anova(mod3, mod4, test="LRT")
Model 1: admit ~ gre + gpa
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 397 480.34
2 394 458.52 3 21.826 7.088e-05 ***
El $p$ -valores en la salida de summary(my.mod)
son Pruebas de Wald que ponen a prueba las siguientes hipótesis (nótese que son intercambiables y el el orden de las pruebas no importa ):
- Para el coeficiente de
x1
: glm(y~x2+x3, family="binomial")
contra. glm(y~x1+x2+x3, family="binomial")
- Para el coeficiente de
x2
: glm(y~x1+x3, family="binomial")
contra. glm(y~x1+x2+x3, family="binomial")
- Para el coeficiente de
x3
: glm(y~x1+x2, family="binomial")
contra. glm(y~x1+x2+x3, family="binomial")
Así que cada coeficiente contra el modelo completo que contiene todos los coeficientes. Las pruebas de Wald son una aproximación a la prueba de razón de verosimilitud. También podríamos hacer las pruebas de razón de verosimilitud (prueba LR). He aquí cómo:
mod1.2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial")
mod2.2 <- glm(admit ~ gre + rank, data = mydata, family = "binomial")
mod3.2 <- glm(admit ~ gpa + rank, data = mydata, family = "binomial")
anova(mod1.2, my.mod, test="LRT") # joint LR test for rank
Model 1: admit ~ gre + gpa
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 397 480.34
2 394 458.52 3 21.826 7.088e-05 ***
anova(mod2.2, my.mod, test="LRT") # LR test for gpa
Model 1: admit ~ gre + rank
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 395 464.53
2 394 458.52 1 6.0143 0.01419 *
anova(mod3.2, my.mod, test="LRT") # LR test for gre
Model 1: admit ~ gpa + rank
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 395 462.88
2 394 458.52 1 4.3578 0.03684 *
El $p$ -los valores de las pruebas de razón de verosimilitud son muy similares a los obtenidos por las pruebas de Wald por summary(my.mod)
arriba.
Nota: La tercera comparación de modelos para rank
de anova(my.mod, test="Chisq")
es la misma que la comparación para rank
en el siguiente ejemplo ( anova(mod1.2, my.mod, test="Chisq")
). Cada vez, el $p$ -valor es el mismo, $7.088\cdot 10^{-5}$ . Es cada vez la comparación entre el modelo sin rank
frente al modelo que lo contiene.
4 votos
Esto es análogo a la distinción entre sumas de cuadrados de tipo I y de tipo III para probar coeficientes en modelos lineales. Puede que te ayude leer mi respuesta aquí: cómo interpretar ANOVA y MANOVA secuenciales de tipo I .