O que lsmeans informa para um modelo linear generalizado, como o modelo misto de Poisson (ajuste com glmer)?

10

Estou analisando os dados de rastreamento ocular de um experimento projetado. Uma versão simplificada dos meus dados tem esta aparência (você pode obter os dados de dput () aqui ),

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

onde participante é um identificador exclusivo para cada sujeito, fixationImage é em que categoria de imagem eles se fixaram e fixationCount é o número de vezes que eles se fixaram nessa categoria de imagem.

Eu ajustei um modelo de Poisson aos dados usando glmer () do pacote lme4 .

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

Usei lsmeans () do pacote lsmeans para examinar as diferenças entre os níveis de fator,

cld(lsmeans(model,"fixationImage"))

que fornece a seguinte saída:

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 

De acordo com meu entendimento (talvez limitado) do uso da vinheta lsmeans, a coluna lsmean deve representar o número médio de aparências para uma determinada categoria prevista pelo modelo.

No entanto, esses valores parecem desconfortavelmente distantes das estatísticas descritivas simples para esses 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

sugerindo talvez que eu não entenda corretamente o que os lsmeans representam aqui, ou talvez eu tenha especificado incorretamente o modelo.

Qualquer ajuda seria muito apreciada.

Marcus Morrisey
fonte

Respostas:

9

A saída representa previsões do seu modelo para cada imagem. Com a família envenenada, a função de link padrão é o log natural - portanto, esses valores estão na escala de log. Se você o fizer lsmeans(..., type = "response"), ele transformará as previsões de volta à escala de resposta original.

Russ Lenth
fonte
Muito obrigado pela resposta rápida. Alterei minha sintaxe para cld (lsmeans (modelo, "fixationImage", tipo = "resposta")), mas obtive o seguinte erro: Erro em $<-.data.frame( *tmp*, "sep", value = ","): a substituição tem 1 linha, os dados têm 0. Para o registro, estou usando o R versão 3.1.2 (31-10-2014) 'Pumpkin Helmet' e o lsmeans versão 2.17. No entanto, você respondeu minha pergunta e eu vou transformar a saída manualmente. Obrigado novamente!
Marcus Morrisey
Atualização: erro persistiu após a atualização para a versão R 3.2.0 (16-04-2015), "Cheio de ingredientes"
Marcus Morrisey
2
Não sei por que o erro ocorre, mas parece que vem do cldlado das coisas. Retire e veja se funciona. E use em pairsvez de cld para testar as comparações (em uma chamada separada). Essa é uma rota melhor de qualquer maneira, porque o cld toma decisões em preto e branco.
26415 Russ Lenth
Obrigado novamente. Você estava correto, funciona bem fora de cld (). Concordo com a sua avaliação sobre a superioridade dos pares (). Pretendo usar a saída cld () para plotagem e incluir uma tabela com as informações mais detalhadas dos pares () nos materiais suplementares. Pacote incrível, mantenha o excelente trabalho.
Marcus Morrisey
3
@MarcusMorrisey Corrigi o bug cldque criou o erro. Obrigado por denunciá-lo. Envie-me um e-mail (consulte o campo Mantenedor) se você quiser que eu envie o pacote atualizado. Senão, ele será atualizado no CRAN em algumas semanas.
27615 Russ Lenth