О чем сообщает lsmeans для обобщенной линейной модели, такой как смешанная модель Пуассона (в соответствии с блеском)?

10

Я анализирую данные отслеживания глаз из разработанного эксперимента. Упрощенная версия моих данных выглядит следующим образом (Вы можете получить данные dput () здесь ),

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

где участник является уникальным идентификатором для каждого субъекта, fixationImage - это категория изображения, на которой они зафиксированы, а fixationCount - количество раз, которое они зафиксировали в этой категории изображений.

Я подгоняю модель Пуассона к данным, используя glmer () из пакета lme4 .

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

Я использовал lsmeans () из пакета lsmeans, чтобы изучить различия между уровнями факторов,

cld(lsmeans(model,"fixationImage"))

который обеспечивает следующий вывод:

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 

Согласно моему (возможно, ограниченному) пониманию использования виньетки lsmeans, столбец lsmean должен представлять среднее число просмотров данной категории, предсказанное моделью.

Тем не менее, эти значения кажутся неудобно далекими от простой описательной статистики для этих чисел,

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

возможно, это говорит о том, что я не правильно понимаю, что представляют собой lsmeans, или, возможно, я неправильно определил модель.

Будем очень благодарны любой помощи.

Маркус Морриси
источник

Ответы:

9

Выходные данные представляют прогнозы из вашей модели для каждого изображения. Для семейства ядов функция связи по умолчанию - это натуральный логарифм, поэтому эти значения находятся в масштабе лога. Если вы это сделаете lsmeans(..., type = "response"), он вернет прогнозы в исходную шкалу ответов.

Русь Лент
источник
Большое спасибо за быстрый ответ. Я изменил свой синтаксис на cld (lsmeans (model, "fixationImage", type = "response")), но получил следующую ошибку: Ошибка в $<-.data.frame( *tmp*, "sep", value = ","): замена имеет 1 строку, данные имеют 0. Для записи я использую версию 3.1.2 R (2014-10-31) 'Pumpkin Helmet' и версию 2.17 lsmeans. Тем не менее, вы ответили на мой вопрос, и я преобразую вывод вручную. Еще раз спасибо!
Маркус Морриси
Обновление: ошибка сохранилась при обновлении до версии R 3.2.0 (2015-04-16), «Полный ингредиентов»
Маркус Морриси
2
Я не уверен, почему ошибка возникает, но похоже, что это происходит со cldстороны вещей. Выньте это и посмотрите, работает ли это. И использовать pairsвместо cld для проверки сравнений (в отдельном вызове). В любом случае, это лучший маршрут, потому что cld принимает черно-белые решения.
Расс Лент
Еще раз спасибо. Вы были правы, отлично работает вне cld (). Я согласен с вашей оценкой превосходства пар (). Я планирую использовать вывод cld () для построения графиков и включить в дополнительные материалы таблицу с более подробной информацией из пар (). Потрясающий пакет, продолжайте в том же духе.
Маркус Морриси
3
@MarcusMorrisey Я исправил ошибку, из-за cldкоторой возникла ошибка. Спасибо, что сообщили об этом. Если вы хотите, чтобы я отправил обновленный пакет, отправьте мне электронное письмо (см. Поле «Поддержка»). Иначе это будет обновлено на CRAN через несколько недель.
Расс Лент