Considérez la régression binomiale suivante:
# Create some data
set.seed(10)
n <- 500
x <- runif(n,0,100)
y <- x + rnorm(n,sd=100) < 0
# Fit a binomial regression model
model <- glm(y ~ x, family="binomial")
summary(model)
La summary
fonction renvoie une valeur de p de 1.03e-05
. Lors de l'utilisation anova.glm
, on obtient des valeurs de p légèrement plus extrêmes, quelle que soit la méthode utilisée pour calculer la valeur de p.
anova(model, test="Rao") # p.value = 7.5e-6
anova(model, test="LRT") # p.value = 6.3e-6
anova(model, test="Chisq") # p.value = 6.3e-6
La valeur de p de la summary
fonction s'applique-t-elle à la même hypothèse que celles renvoyées par la anova
fonction? Si oui, comment a summary
calculé cette valeur de p et est-il possible d'effectuer le même calcul directement avec anova
?
Réponses:
Cela peut vous aider à lire ma réponse ici: pourquoi mes valeurs de p diffèrent-elles entre la sortie de régression logistique, le test du chi carré et l'intervalle de confiance pour l'OR? Votre question ici est presque un double de cela, mais il y a quelques éléments supplémentaires dans votre question qui peuvent être traités.
Comme le note @CliffAB, les valeurs de p dans lat 0 t
summary.glm()
sortie proviennent de tests Wald. Celles-ci sont analogues aux tests de coefficients pour un modèle linéaire en ce qu'elles sont la différence entre la valeur ajustée du coefficient et la valeur de référence (prise pour être ), divisée par l'erreur standard. La différence est que ceux-ci sont considérés comme étant distribués comme une norme normale au lieu de . D'un autre côté, ceux-ci sont valables pour de grands échantillons et nous ne savons pas nécessairement ce qui constitue un «grand échantillon» dans un cas donné.L'utilisation
anova.glm()
vous donne accès à différents tests. Lorsque vous définisseztest="Rao"
, il vous donne la valeur p d'un test de score. Et lorsque vous définissez soittest="Chisq"
outest="LRT"
(ce sont les mêmes), cela vous donne la valeur p d'un test de rapport de vraisemblance.La
anova.glm()
fonction teste la même hypothèse nulle que le test de Wald dans lasummary()
sortie dans ce cas . C'est uniquement parce que votre modèle n'a qu'une seule variable. Laanova.glm()
fonction effectuera des tests séquentiels, qui sont analogues à `` SS de type I '' dans un cadre linéaire, tandis que les tests de Waldsummary()
sont analogues à `` SS de type III '' dans un cadre linéaire (voir ma réponse ici: Comment interpréter le type I, type II, et type III ANOVA et MANOVA? ). Considérer:Vous pouvez chausse-pied la
anova.glm()
fonction pour vous donner des tests de score et de rapport de vraisemblance de variables individuelles dans un modèle de régression logistique multiple qui sont analogues au `` SS de type III '', mais c'est fastidieux. Vous devrez continuer à réaménager votre modèle afin que chaque variable à son tour soit répertoriée en dernier dans la formule fournie pour l'glm()
appel. La dernière valeur de p répertoriée dans laanova.glm()
sortie est celle qui sera analogue à «type III SS».Pour obtenir plus facilement les tests de score ou de rapport de vraisemblance de variables individuelles, utilisez
drop1()
plutôt. Considérer:la source
Dans
R
, lasummary
fonction pourglm
calcule la valeur de p à l'aide d'une simple statistique de Wald, c'est-à-direoùβ^ est le paramètre de régression qui nous intéresse, SE(β^) est l'erreur-type de ce paramètre de régression estimé et Φ est le CDF d'une distribution normale standard.
Pour recréer cela à partir de votre sortie, essayez
la source