Réponse courte
La surdispersion n'a pas d'importance lors de l'estimation d'un vecteur de coefficients de régression pour la moyenne conditionnelle dans un modèle quasi / poisson! Tout ira bien si vous oubliez la surdispersion ici, utilisez glmnet avec la famille poisson et concentrez-vous simplement sur le fait de savoir si votre erreur de prédiction validée de manière croisée est faible.
La qualification suit ci-dessous.
Fonctions de Poisson, Quasi-Poisson et d'estimation:
Je dis ce qui précède parce que la surdispersion (OD) dans un modèle de poisson ou quasi-poisson influence tout ce qui a à voir avec la dispersion (ou la variance ou l'échelle ou l'hétérogénéité ou la propagation ou ce que vous voulez appeler) et en tant que telle a un effet sur la norme les erreurs et les intervalles de confiance, mais laisse inchangées les estimations de la moyenne conditionnelle de (appelée μ ). Cela s'applique particulièrement aux décompositions linéaires de la moyenne, comme x ⊤ βyμX⊤β .
θVa r ( y) = θ μθθθββ^ sont identiques pour les modèles quasi et poisson!
Permettez-moi d'illustrer avec un exemple (notez qu'il faut faire défiler pour voir tout le code et la sortie):
> library(MASS)
> data(quine)
> modp <- glm(Days~Age+Sex+Eth+Lrn, data=quine, family="poisson")
> modqp <- glm(Days~Age+Sex+Eth+Lrn, data=quine, family="quasipoisson")
> summary(modp)
Call:
glm(formula = Days ~ Age + Sex + Eth + Lrn, family = "poisson",
data = quine)
Deviance Residuals:
Min 1Q Median 3Q Max
-6.808 -3.065 -1.119 1.819 9.909
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.71538 0.06468 41.980 < 2e-16 ***
AgeF1 -0.33390 0.07009 -4.764 1.90e-06 ***
AgeF2 0.25783 0.06242 4.131 3.62e-05 ***
AgeF3 0.42769 0.06769 6.319 2.64e-10 ***
SexM 0.16160 0.04253 3.799 0.000145 ***
EthN -0.53360 0.04188 -12.740 < 2e-16 ***
LrnSL 0.34894 0.05204 6.705 2.02e-11 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 2073.5 on 145 degrees of freedom
Residual deviance: 1696.7 on 139 degrees of freedom
AIC: 2299.2
Number of Fisher Scoring iterations: 5
> summary(modqp)
Call:
glm(formula = Days ~ Age + Sex + Eth + Lrn, family = "quasipoisson",
data = quine)
Deviance Residuals:
Min 1Q Median 3Q Max
-6.808 -3.065 -1.119 1.819 9.909
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.7154 0.2347 11.569 < 2e-16 ***
AgeF1 -0.3339 0.2543 -1.313 0.191413
AgeF2 0.2578 0.2265 1.138 0.256938
AgeF3 0.4277 0.2456 1.741 0.083831 .
SexM 0.1616 0.1543 1.047 0.296914
EthN -0.5336 0.1520 -3.511 0.000602 ***
LrnSL 0.3489 0.1888 1.848 0.066760 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for quasipoisson family taken to be 13.16691)
Null deviance: 2073.5 on 145 degrees of freedom
Residual deviance: 1696.7 on 139 degrees of freedom
AIC: NA
Number of Fisher Scoring iterations: 5
Comme vous pouvez le voir, même si nous avons une forte surdispersion de 12,21 dans cet ensemble de données (par deviance(modp)/modp$df.residual
) les coefficients de régression (estimations ponctuelles) ne changent pas du tout. Mais remarquez comment les erreurs standard changent.
La question de l'effet de la surdispersion dans les modèles de poissons pénalisés
θβ
g( μ ) = x⊤β+ f( β)
βθ μ
glmnet
F( β) = 0
> library(glmnet)
> y <- quine[,5]
> x <- model.matrix(~Age+Sex+Eth+Lrn,quine)
> modl <- glmnet(y=y,x=x, lambda=c(0.05,0.02,0.01,0.005), family="poisson")
> coefficients(modl)
8 x 4 sparse Matrix of class "dgCMatrix"
s0 s1 s2 s3
(Intercept) 2.7320435 2.7221245 2.7188884 2.7172098
(Intercept) . . . .
AgeF1 -0.3325689 -0.3335226 -0.3339580 -0.3340520
AgeF2 0.2496120 0.2544253 0.2559408 0.2567880
AgeF3 0.4079635 0.4197509 0.4236024 0.4255759
SexM 0.1530040 0.1581563 0.1598595 0.1607162
EthN -0.5275619 -0.5311830 -0.5323936 -0.5329969
LrnSL 0.3336885 0.3428815 0.3459650 0.3474745
Alors, que fait OD aux modèles de régression pénalisés? Comme vous le savez peut-être, il y a encore un débat sur la bonne façon de calculer les erreurs standard pour les modèles pénalisés (voir par exemple ici ) et glmnet
ne sort pas de toute façon, probablement pour cette raison. Il se peut très bien que la DO influe sur la partie inférence du modèle, tout comme elle le fait dans le cas non pénalisé, mais à moins qu'un consensus concernant l'inférence dans ce cas ne soit atteint, nous ne le saurons pas.
Soit dit en passant, on peut laisser tout ce désordre derrière si l'on veut adopter une vision bayésienne où les modèles pénalisés ne sont que des modèles standard avec un prior spécifique.
poisson
et lesquasipoisson
régressions estiment les coefficients de la même manière et ce qu'ils diffèrent, c'est la façon dont ils estiment les erreurs standard et donc la signification. Cependant, pour la méthode du lasso, la façon de calculer les erreurs standard n'a pas encore atteint un consensus, et donc son utilisation actuelle réside principalement dans la sélection des variables plutôt que dans l'inférence. En tant que tel, peu importe si nous utilisonsglmnet
avec poisson ou quasipoisson, mais ce qui fait, c'est que l'erreur de validation croisée doit être minimisée.summary(modqp)
me et vu avoir exactement les mêmes estimations de coefficient. Je crois que votre réponse bénéficiera à plus de gens sur cette question car je n'en avais pas trouvé, donc je vous suggère d'ajouter la sortie de résumé (modqp) pour un exemple encore mieux illustré. Encore merci!