Que rapporte lsmeans pour un modèle linéaire généralisé, tel que le modèle mixte de Poisson (ajustement avec glmer)?

10

J'analyse les données oculométriques d'une expérience conçue. Une version simplifiée de mes données ressemble à ceci (vous pouvez obtenir les données dput () ici ),

head(lookDATA)

  participant fixationImage fixationCount
1           9    Automobile            81
2           9          Bird            63
3           9         Chair            82
4           9           Dog            64
5           9          Face            90
6           9         Plant            75

où participant est un identifiant unique pour chaque sujet, fixationImage est la catégorie d'image sur laquelle ils ont fixé et fixationCount est le nombre de fois qu'ils ont fixé sur cette catégorie d'image.

J'adapte un modèle de poisson aux données en utilisant glmer () du package lme4 .

model<-glmer(fixationCount ~ fixationImage + (1|participant), family = poisson, data = lookDATA)

J'ai utilisé lsmeans () du package lsmeans pour examiner les différences entre les niveaux de facteur,

cld(lsmeans(model,"fixationImage"))

qui fournit la sortie suivante:

fixationImage   lsmean         SE df asymp.LCL asymp.UCL .group
Chair         3.786022 0.05764923 NA  3.673018  3.899026  1    
Bird          3.866201 0.05750641 NA  3.753476  3.978925   2   
Dog           3.868768 0.05751010 NA  3.756037  3.981500   2   
Body          3.883644 0.06040952 NA  3.765230  4.002059   23  
Plant         3.893327 0.05746744 NA  3.780679  4.005975   23  
Automobile    3.901939 0.05745528 NA  3.789315  4.014563   23  
Face          3.946848 0.05832549 NA  3.832519  4.061178    3 

Selon ma compréhension (peut-être limitée) de l' utilisation de la vignette lsmeans, la colonne lsmean devrait représenter le nombre moyen de regards vers une catégorie donnée prédite par le modèle.

Cependant, ces valeurs semblent inconfortablement loin de simples statistiques descriptives pour ces chiffres,

summaryBy(fixationCount ~ fixationImage, data = lookDATA)

  fixationImage fixationCount.mean
1    Automobile           55.18750
2          Bird           53.25000
3          Body           57.12821
4         Chair           50.39450
5           Dog           53.82883
6          Face           56.76389
7         Plant           54.71429

suggérant peut-être que je ne comprends pas correctement ce que les lsmeans représentent ici, ou peut-être que j'ai mal spécifié le modèle.

Toute assistance sera grandement appréciée.

Marcus Morrisey
la source

Réponses:

9

La sortie représente les prévisions de votre modèle pour chaque image. Avec la famille des poisons, la fonction de liaison par défaut est le logarithme naturel - ces valeurs sont donc sur l'échelle logarithmique. Si vous le faites lsmeans(..., type = "response"), cela transformera les prédictions à l'échelle de réponse d'origine.

Russ Lenth
la source
Merci beaucoup pour la réponse rapide. J'ai changé ma syntaxe en cld (lsmeans (model, "fixationImage", type = "response")) mais j'ai obtenu l'erreur suivante: Erreur dans $<-.data.frame( *tmp*, "sep", value = ","): le remplacement a 1 ligne, les données ont 0. Pour mémoire, j'utilise R version 3.1.2 (2014-10-31) 'Pumpkin Helmet' et lsmeans version 2.17. Néanmoins, vous avez répondu à ma question et je vais transformer la sortie manuellement. Merci encore!
Marcus Morrisey
Mise à jour: L'erreur a persisté lors de la mise à jour vers la version 3.2.0 de R (2015-04-16), "Plein d'ingrédients"
Marcus Morrisey
2
Je ne sais pas pourquoi l'erreur se produit, mais il semble qu'elle vienne du cldcôté des choses. Sortez-le et voyez si cela fonctionne. Et utilisez pairsau lieu de cld pour tester les comparaisons (dans un appel distinct). C'est de toute façon un meilleur itinéraire car cld prend des décisions en noir et blanc.
Russ Lenth
Merci encore. Vous aviez raison, fonctionne bien en dehors de cld (). Je suis d'accord avec votre appréciation sur la supériorité des paires (). J'ai l'intention d'utiliser la sortie cld () pour le traçage et d'inclure un tableau avec les informations plus détaillées des paires () dans les documents supplémentaires. Super paquet, continuez votre excellent travail.
Marcus Morrisey
3
@MarcusMorrisey J'ai corrigé le bogue cldqui créait l'erreur. Merci de l'avoir signalé. Envoyez-moi un e-mail (voir champ Mainteneur) si vous souhaitez que j'envoie le package mis à jour. Sinon, il sera mis à jour sur CRAN dans quelques semaines.
Russ Lenth