Supposons que je vais faire une régression logistique univariée sur plusieurs variables indépendantes, comme ceci:
mod.a <- glm(x ~ a, data=z, family=binominal("logistic"))
mod.b <- glm(x ~ b, data=z, family=binominal("logistic"))
J'ai fait une comparaison de modèle (test de rapport de vraisemblance) pour voir si le modèle est meilleur que le modèle nul par cette commande
1-pchisq(mod.a$null.deviance-mod.a$deviance, mod.a$df.null-mod.a$df.residual)
Ensuite, j'ai construit un autre modèle avec toutes les variables
mod.c <- glm(x ~ a+b, data=z, family=binomial("logistic"))
Afin de voir si la variable est statistiquement significative dans le modèle multivarié, j'ai utilisé la lrtest
commande 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
Je me demande si la pchisq
méthode et la lrtest
méthode sont équivalentes pour faire un test de loglikelihood? Comme je ne sais pas comment utiliser lrtest
pour le modèle logistique univate.
r
logistic
diagnostic
lokheart
la source
la source
epicalc
a été supprimé ( source ). Une alternative pourrait êtrelmtest
.Réponses:
Fondamentalement, oui, à condition d'utiliser la bonne différence de log-vraisemblance:
et non la déviance pour le modèle nul qui est le même dans les deux cas. Le nombre de df est le nombre de paramètres qui diffèrent entre les deux modèles imbriqués, ici df = 1. BTW, vous pouvez regarder le code source
lrtest()
en tapant simplementà l'invite R.
la source
anova(model1, model0)
fonctionnera également.glm(output ~ 1, data=z, family=binomial("logistic"))
serait un modèle nul plus naturel, qui dit que celaoutput
est expliqué par un terme constant (l'interception) / L'interception est implicite dans tous vos modèles, vous testez donc l'effet de la prise ena
compte de l'interception.Une alternative est le
lmtest
package, qui a unelrtest()
fonction qui accepte un seul modèle. Voici l'exemple de?lrtest
dans lelmtest
package, qui est pour un LM mais il existe des méthodes qui fonctionnent avec les GLM:la source
fm1
a une probabilité de log plus faible et donc un ajustement moins bon quefm2
. Le LRT nous dit que le degré auquel nous avons faitfm1
un modèle plus pauvrefm2
qu'inattendu est grand si les termes qui sont différents entre les modèles étaient utiles (a expliqué la réponse).lrtest(fm2)
n'est pas par rapportfm1
à l' ensemble, le modèlefm2
est comparé dans ce cas si, comme indiqué dans la sortie, ceci:con ~ 1
. Ce modèle, le modèle nul, dit que le meilleur prédicteur decon
est la moyenne de l'échantillon decon
(le terme interception / constant).