Co raportuje lsmeans dla uogólnionego modelu liniowego, takiego jak model mieszany Poissona (dopasowany z brokatem)?

10

Analizuję dane śledzenia wzroku z zaprojektowanego eksperymentu. Uproszczona wersja moich danych wygląda następująco (możesz pobrać dane dput () tutaj ),

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

gdzie uczestnik jest unikalnym identyfikatorem dla każdego przedmiotu, fixationImage to kategoria obrazu, na której naprawiono, a fixationCount to liczba razy, gdy naprawiono na tej kategorii obrazu.

Dopasowuję model Poissona do danych za pomocą glmer () z pakietu lme4 .

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

Użyłem lsmeans () z pakietu lsmeans do zbadania różnic między poziomami czynników,

cld(lsmeans(model,"fixationImage"))

który zapewnia następujące dane wyjściowe:

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 

Zgodnie z moim (być może ograniczonym) zrozumieniem używania winiety lsmeans kolumna lsmean powinna reprezentować średnią liczbę spojrzeń dla danej kategorii przewidywaną przez model.

Jednak wartości te wydają się niewygodnie dalekie od prostych statystyk opisowych dla tych liczb,

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

sugerując być może, że nie rozumiem poprawnie, co reprezentują tutaj lsmeans, lub może źle podałem model.

Każda pomoc byłaby bardzo mile widziana.

Marcus Morrisey
źródło

Odpowiedzi:

9

Dane wyjściowe reprezentują prognozy z modelu dla każdego obrazu. W przypadku rodziny trucizn domyślną funkcją łączenia jest dziennik naturalny - więc te wartości są na skali dziennika. Jeśli to zrobisz lsmeans(..., type = "response"), przekształci prognozy w pierwotną skalę odpowiedzi.

Russ Lenth
źródło
Dziękuję bardzo za szybką odpowiedź. Zmieniłem składnię na cld (lsmeans (model, „fixationImage”, type = „response”)), ale otrzymałem następujący błąd: Błąd w $<-.data.frame( *tmp*, „sep”, value = „,”): zamiennik ma 1 wiersz, dane mają 0. Dla przypomnienia używam wersji R 3.1.2 (31.10.2014) „Pumpkin Helmet” i wersji lsmeans 2.17. Niemniej jednak odpowiedziałeś na moje pytanie, a ja przetworzę dane wyjściowe ręcznie. Dzięki jeszcze raz!
Marcus Morrisey,
Aktualizacja: błąd nadal występował po aktualizacji do wersji R 3.2.0 (16.04.2015), „Pełna składników”
Marcus Morrisey,
2
Nie jestem pewien, dlaczego występuje błąd, ale wygląda na to, że pochodzi z cldboku. Wyjmij go i sprawdź, czy to działa. I użyj pairszamiast cld do przetestowania porównań (w osobnym wywołaniu). To i tak lepsza droga, ponieważ cld podejmuje czarno-białe decyzje.
Russ Lenth
Dzięki jeszcze raz. Miałeś rację, działa dobrze poza cld (). Zgadzam się z twoją oceną wyższości par (). Planuję użyć wyjścia cld () do kreślenia i dołączyć tabelę z bardziej szczegółowymi informacjami z pairs () w materiałach uzupełniających. Niesamowity pakiet, kontynuuj wspaniałą pracę.
Marcus Morrisey,
3
@MarcusMorrisey Naprawiłem błąd, cldktóry spowodował błąd. Dziękujemy za zgłoszenie. Wyślij mi e-mail (patrz pole Maintainer), jeśli chcesz, żebym wysłał zaktualizowany pakiet. W przeciwnym razie zostanie zaktualizowany w CRAN za kilka tygodni.
Russ Lenth