Comment glmnet gère-t-il la surdispersion?

9

J'ai une question sur la façon de modéliser le texte sur les données de comptage, en particulier comment pourrais-je utiliser la lassotechnique pour réduire les fonctionnalités.

Supposons que j'ai N articles en ligne et le nombre de pages vues pour chaque article. J'ai extrait 1 gramme et 2 grammes pour chaque article et je voulais effectuer une régression sur les 1,2 grammes. Étant donné que les caractéristiques (1,2 grammes) sont bien plus que le nombre d'observations, le lasso serait une bonne méthode pour réduire le nombre de caractéristiques. De plus, j'ai trouvé que glmnetc'était vraiment pratique pour exécuter une analyse au lasso.

Cependant, le nombre de pages vues est trop dispersé (variance> moyenne), mais glmnetne propose pas quasipoisson(explicitement) ou negative binomialmais poissonpour les données de comptage. La solution à laquelle j'ai pensé est de log transformcompter les données (une méthode couramment utilisée par les spécialistes des sciences sociales) et de faire en sorte que la variable de réponse suive approximativement une distribution normale. En tant que tel, je pourrais éventuellement modéliser les données avec la famille gaussienne en utilisant glmnet.

Ma question est donc la suivante: est-il approprié de le faire? Ou, dois-je simplement utiliser poisson pour les poignées glmnetau cas où ? Ou, existe-t-il d'autres packages R pour gérer cette situation?glmnetquasipoisson

Merci beaucoup!

Sonya S.
la source

Réponses:

14

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β .

θVar(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(β)

βθμ

glmnetf(β)=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 glmnetne 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.

Momo
la source
@Mono, merci pour votre explication très détaillée! Voici ma compréhension, et veuillez me corriger si je me trompe: poissonet les quasipoissonré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 utilisons glmnetavec poisson ou quasipoisson, mais ce qui fait, c'est que l'erreur de validation croisée doit être minimisée.
Sonya S.
@Mono, une autre note, j'ai couru 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!
Sonya S.
1
@Sonya Yours est un bon résumé. La clé est que lors de l'estimation des paramètres de la moyenne conditionnelle, les fonctions d'estimation (disons la fonction de score) pour poisson et quasipoisson sont les mêmes! Peu importe donc pour ces paramètres qu'il y ait ou non pénalisation tant qu'il s'agit de la même pénalisation. Je le dis plus clairement ci-dessus. Merci également pour le pointeur concernant le résumé (modq), mais qui est déjà là, il est simplement "encadré" sur un écran normal, il faut donc faire défiler vers le bas.
Momo
Je me demande encore s'il est possible que moins de variables soient réduites en Poisson que s'il y avait une spécification quasi-Poisson, qui est plus correcte, et conduirait probablement à une meilleure précision prédictive que le modèle de Poisson parce que son modèle d'échantillonnage est plus correct.
Brash Equilibrium
Sur cette note, il se pourrait également que plus de variables soient réduites en Poisson que ne devrait l'être en cas de sous-dispersion (comme lorsque vous utilisez un modèle de Poisson robuste pour estimer les ratios de risque relatifs pour les données 0/1).
Brash Equilibrium