Quelqu'un peut-il me dire comment interpréter les graphiques «résidus vs ajustés», «q-q normal», «emplacement-échelle» et «résidus vs effet de levier»? Je pose un GLM binomial, l'enregistre puis le trace.
Quelqu'un peut-il me dire comment interpréter les graphiques «résidus vs ajustés», «q-q normal», «emplacement-échelle» et «résidus vs effet de levier»? Je pose un GLM binomial, l'enregistre puis le trace.
Réponses:
R
n'a pas de plot.glm()
méthode distincte . Lorsque vous ajustezglm()
et exécutez un modèle plot()
, il appelle ? Plot.lm , qui convient aux modèles linéaires (c'est-à-dire avec un terme d'erreur normalement distribué).
En général, la signification de ces tracés (au moins pour les modèles linéaires) peut être apprise dans divers threads existants sur CV (par exemple: Résidus vs ajustés ; qq-tracés à plusieurs endroits: 1 , 2 , 3 ; Scale-Location ; Residuals vs effet de levier ). Cependant, ces interprétations ne sont généralement pas valables lorsque le modèle en question est une régression logistique.
Plus précisément, les parcelles auront souvent un aspect drôle et amèneront les gens à croire qu'il y a quelque chose qui ne va pas avec le modèle quand il est parfaitement bien. Nous pouvons le voir en regardant ces graphiques avec quelques simulations simples où nous savons que le modèle est correct:
# we'll need this function to generate the Y data:
lo2p = function(lo){ exp(lo)/(1+exp(lo)) }
set.seed(10) # this makes the simulation exactly reproducible
x = runif(20, min=0, max=10) # the X data are uniformly distributed from 0 to 10
lo = -3 + .7*x # this is the true data generating process
p = lo2p(lo) # here I convert the log odds to probabilities
y = rbinom(20, size=1, prob=p) # this generates the Y data
mod = glm(y~x, family=binomial) # here I fit the model
summary(mod) # the model captures the DGP very well & has no
# ... # obvious problems:
# Deviance Residuals:
# Min 1Q Median 3Q Max
# -1.76225 -0.85236 -0.05011 0.83786 1.59393
#
# Coefficients:
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -2.7370 1.4062 -1.946 0.0516 .
# x 0.6799 0.3261 2.085 0.0371 *
# ...
#
# Null deviance: 27.726 on 19 degrees of freedom
# Residual deviance: 21.236 on 18 degrees of freedom
# AIC: 25.236
#
# Number of Fisher Scoring iterations: 4
Voyons maintenant les tracés que nous obtenons plot.lm()
:
Le graphique Residuals vs Fitted
et les Scale-Location
graphiques semblent avoir des problèmes avec le modèle, mais nous savons qu'il n'y en a pas. Ces graphiques, destinés aux modèles linéaires, sont tout simplement souvent trompeurs lorsqu'ils sont utilisés avec un modèle de régression logistique.
Regardons un autre exemple:
set.seed(10)
x2 = rep(c(1:4), each=40) # X is a factor with 4 levels
lo = -3 + .7*x2
p = lo2p(lo)
y = rbinom(160, size=1, prob=p)
mod = glm(y~as.factor(x2), family=binomial)
summary(mod) # again, everything looks good:
# ...
# Deviance Residuals:
# Min 1Q Median 3Q Max
# -1.0108 -0.8446 -0.3949 -0.2250 2.7162
#
# Coefficients:
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -3.664 1.013 -3.618 0.000297 ***
# as.factor(x2)2 1.151 1.177 0.978 0.328125
# as.factor(x2)3 2.816 1.070 2.632 0.008481 **
# as.factor(x2)4 3.258 1.063 3.065 0.002175 **
# ...
#
# Null deviance: 160.13 on 159 degrees of freedom
# Residual deviance: 133.37 on 156 degrees of freedom
# AIC: 141.37
#
# Number of Fisher Scoring iterations: 6
Maintenant, tous les complots semblent étranges.
Alors, que vous montrent ces intrigues?
Residuals vs Fitted
intrigue peut vous aider à voir, par exemple, s'il y a des tendances curvilignes que vous avez manquées. Mais l'ajustement d'une régression logistique est curviligne par nature, vous pouvez donc avoir des tendances étranges dans les résidus sans rien de mal. Normal Q-Q
tracé vous aide à détecter si vos résidus sont normalement distribués. Mais les résidus de déviance ne doivent pas être normalement distribués pour que le modèle soit valide, donc la normalité / non-normalité des résidus ne vous dit pas nécessairement quoi que ce soit. Scale-Location
intrigue peut vous aider à identifier l'hétéroscédasticité. Mais les modèles de régression logistique sont à peu près hétéroscédastiques par nature. Residuals vs Leverage
peut vous aider à identifier d'éventuelles valeurs aberrantes. Mais les valeurs aberrantes dans la régression logistique ne se manifestent pas nécessairement de la même manière que dans la régression linéaire, donc ce graphique peut ou non être utile pour les identifier. La leçon simple à retenir ici est que ces graphiques peuvent être très difficiles à utiliser pour vous aider à comprendre ce qui se passe avec votre modèle de régression logistique. Il est probablement préférable que les gens ne regardent pas du tout ces parcelles lors de la régression logistique, sauf s'ils ont une expertise considérable.
En savoir plus sur les hypothèses de régression, car à bien des égards, il existe des similitudes (par exemple ici , ou tutoriel sur la régression dans R ici ).