¿Qué informa lsmeans para un modelo lineal generalizado, como el modelo mixto de Poisson (ajuste con glmer)?

10

Estoy analizando los datos de seguimiento ocular de un experimento diseñado. Una versión simplificada de mis datos se ve así (puede obtener los datos dput () aquí ),

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

donde el participante es un identificador único para cada sujeto, fixationImage es en qué categoría de imagen se fijó, y fixationCount es la cantidad de veces que se fijó en esa categoría de imagen.

Ajusté un modelo de Poisson a los datos usando glmer () del paquete lme4 .

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

Usé lsmeans () del paquete lsmeans para examinar las diferencias entre los niveles de factores,

cld(lsmeans(model,"fixationImage"))

que proporciona el siguiente resultado:

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 

Según mi comprensión (quizás limitada) del uso de la viñeta lsmeans, la columna lsmean debería representar el número promedio de miradas a una categoría dada predicha por el modelo.

Sin embargo, estos valores parecen incómodamente lejos de simples estadísticas descriptivas para estos números,

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

sugiriendo quizás que no entiendo correctamente lo que representan los lsmeans aquí, o quizás que he especificado mal el modelo.

Cualquier ayuda sería muy apreciada.

Marcus Morrisey
fuente

Respuestas:

9

La salida representa predicciones de su modelo para cada imagen. Con la familia del veneno, la función de enlace predeterminada es el registro natural, por lo que esos valores están en la escala de registro. Si lo hace lsmeans(..., type = "response"), transformará las predicciones a la escala de respuesta original.

Russ Lenth
fuente
Muchas gracias por la rápida respuesta. Cambié mi sintaxis a cld (lsmeans (model, "fixationImage", type = "response")) pero obtuve el siguiente error: Error en $<-.data.frame( *tmp*, "sep", value = ","): el reemplazo tiene 1 fila, los datos tienen 0. Para el registro estoy usando R versión 3.1.2 (2014-10-31) 'Pumpkin Helmet' y lsmeans versión 2.17. No obstante, ha respondido mi pregunta y transformaré la salida manualmente. ¡Gracias de nuevo!
Marcus Morrisey
Actualización: el error persistió tras la actualización a la versión R 3.2.0 (2015-04-16), "lleno de ingredientes"
Marcus Morrisey
2
No estoy seguro de por qué ocurre el error, pero parece que proviene del cldlado de las cosas. Sácalo y mira si funciona. Y use en pairslugar de cld para probar las comparaciones (en una llamada separada). De todos modos, esa es una mejor ruta porque cld toma decisiones en blanco y negro.
Russ Lenth
Gracias de nuevo. Estabas en lo correcto, funciona bien fuera de cld (). Estoy de acuerdo con su evaluación sobre la superioridad de los pares (). Planeo usar la salida cld () para trazar e incluir una tabla con la información más detallada de pares () en los materiales suplementarios. Paquete impresionante, sigan con el gran trabajo.
Marcus Morrisey
3
@MarcusMorrisey He corregido el error cldque creó el error. Gracias por informarlo. Envíeme un correo electrónico (consulte el campo Mantenedor) si desea que envíe el paquete actualizado. De lo contrario, se actualizará en CRAN en unas pocas semanas.
Russ Lenth