Supongamos que voy a hacer una regresión logística univariada en varias variables independientes, como esta:
mod.a <- glm(x ~ a, data=z, family=binominal("logistic"))
mod.b <- glm(x ~ b, data=z, family=binominal("logistic"))
Hice una comparación de modelo (prueba de razón de probabilidad) para ver si este modelo es mejor que el modelo nulo con este comando
1-pchisq(mod.a$null.deviance-mod.a$deviance, mod.a$df.null-mod.a$df.residual)
Luego construí otro modelo con todas las variables.
mod.c <- glm(x ~ a+b, data=z, family=binomial("logistic"))
Para ver si la variable es estadísticamente significativa en el modelo multivariante, utilicé el lrtest
comando deepicalc
lrtest(mod.c,mod.a) ### see if variable b is statistically significant after adjustment of a
lrtest(mod.c,mod.b) ### see if variable a is statistically significant after adjustment of b
Me pregunto si el pchisq
método y el lrtest
método son equivalentes para hacer la prueba de loglikelihood. Como no sé cómo usar lrtest
para el modelo logístico univado.
r
logistic
diagnostic
lokheart
fuente
fuente
epicalc
fue eliminado ( fuente ). Una alternativa podría serlmtest
.Respuestas:
Básicamente, sí, siempre que use la diferencia correcta en la probabilidad de registro:
y no la desviación para el modelo nulo que es igual en ambos casos. El número de df es el número de parámetros que difieren entre los dos modelos anidados, aquí df = 1. Por cierto, puede mirar el código fuente
lrtest()
simplemente escribiendoen el indicador R.
fuente
anova(model1, model0)
también funcionará.glm(output ~ 1, data=z, family=binomial("logistic"))
sería un modelo nulo más natural, que dice queoutput
se explica por un término constante (la intercepción) / La intercepción está implícita en todos sus modelos, por lo que está probando el efectoa
después de contabilizar la intercepción.Una alternativa es el
lmtest
paquete, que tiene unalrtest()
función que acepta un solo modelo. Aquí está el ejemplo de?lrtest
en ellmtest
paquete, que es para un LM pero hay métodos que el trabajo con GLMs:fuente
fm1
tiene una probabilidad de registro más baja y, por lo tanto, un peor ajuste quefm2
. El LRT nos dice que el grado en que hicimosfm1
un modelo más pobre de lo quefm2
es inesperadamente grande si los términos que son diferentes entre los modelos fueron útiles (explicó la respuesta).lrtest(fm2)
no se compara confm1
nada, el modelofm2
se compara con que en ese caso si, como se indica en la salida, lo siguiente:con ~ 1
. Ese modelo, el modelo nulo, dice que el mejor predictor decon
es la media muestral decon
(el término de intercepción / constante).