Jak wybrać bibliotekę nlme lub lme4 R dla modeli efektów mieszanych?

85

Muszę zmieścić kilka modeli efektów mieszanych (zwłaszcza modele wzdłużny) używając lme4w Rale chciałby naprawdę opanować modeli i kod, który jedzie z nimi.

Zanim jednak zanurzę się obiema stopami (i kupię książki), chcę mieć pewność, że uczę się odpowiedniej biblioteki. Przyzwyczaiłem lme4się do tej pory, ponieważ po prostu uważałem, że jest to łatwiejsze nlme, ale jeśli nlmejest to lepsze dla moich celów, to czuję, że powinienem to wykorzystać.

Jestem pewien, że żadne z nich nie jest „lepsze” w uproszczony sposób, ale ceniłbym kilka opinii lub przemyśleń. Moje główne kryteria to:

  1. łatwy w użyciu (jestem psychologiem z wykształcenia i nie jestem szczególnie zaznajomiony ze statystykami lub kodowaniem, ale uczę się)
  2. dobre cechy dopasowania danych podłużnych (jeśli jest tutaj różnica, ale do tego głównie ich używam)
  3. dobre (łatwe do interpretacji) podsumowania graficzne, znowu nie jestem pewien, czy jest tu różnica, ale często tworzę wykresy dla ludzi nawet mniej technicznych niż ja, więc ładne wyraźne wykresy są zawsze dobre (bardzo lubię funkcję xyplot w sieci) () z tego powodu).

Jak zwykle mam nadzieję, że to pytanie nie jest zbyt niejasne i z góry dziękuję za wszelką mądrość!

Chris Beeley
źródło

Odpowiedzi:

68

Oba pakiety używają Latticejako backend, ale nlmemają kilka fajnych funkcji, takich jak groupedData()i lmList()których brakuje w lme4(IMO). Jednak z praktycznego punktu widzenia wydaje się, że dwa najważniejsze kryteria

  1. lme4rozszerza się nlmeo inne funkcje łącza: w nlme, nie można dopasować wyników, których rozkład nie jest gaussowski, lme4można na przykład zastosować do regresji logistycznej z mieszanymi efektami.
  2. w nlme, możliwe jest określenie macierzy wariancji-kowariancji dla efektów losowych (np. AR (1)); nie jest możliwe w lme4.

Teraz lme4może z łatwością obsługiwać bardzo dużą liczbę efektów losowych (stąd liczba osobników w danym badaniu) dzięki części C i zastosowaniu rzadkich matryc. nlmePakiet nieco zostało zastąpione lme4więc nie będę oczekiwać, że ludzie spędzają dużo czasu rozwija dodatki na górze nlme. Osobiście, kiedy mam ciągłą reakcję w moim modelu, zwykle używam obu pakietów, ale teraz jestem zaznajomiony ze lme4sposobem dopasowania GLMM.

Zamiast kupowania książki, spójrz najpierw na Douga Bates projektu książki na R-kuźni: lme4: modelowanie efektów mieszanych R .

chl
źródło
5
@ 2) dokładniej, lme4możesz albo określić ukośną strukturę kowariancji (tj. Niezależne efekty losowe) lub nieustrukturyzowane macierze kowariancji (tj. Należy oszacować wszystkie korelacje) lub częściowo ukośne, częściowo nieustrukturyzowane macierze kowariancji dla efektów losowych. Dodałbym także trzecią różnicę w możliwościach, które mogą być bardziej odpowiednie w wielu sytuacjach danych wzdłużnych: nlmepozwólmy, że określisz struktury wariancji-kowariancji dla reszt (tj. Autokorelacja przestrzenna lub czasowa lub heteroskedastyczność), lme4nie.
fabians
@fabians (+1) Ach, dzięki! Nie zdawałem sobie sprawy, że lme4pozwala wybrać różne struktury VC. Byłoby lepiej, gdybyś dodał go we własnej odpowiedzi wraz z innymi pomysłami, które możesz mieć. Będę głosować. BTW, zdałem sobie również sprawę, że lmList()jest również dostępny lme4. Wydaje mi się, że pamiętam trochę dyskusji na ten temat na R-sig-ME.
chl
Jakaś szybsza alternatywa? Muszę dopasować modele z dużymi zestawami danych i zająć pół prawie godziny na moim komputerze. Istnieje wiele pakietów szybkiej regresji, ale żaden nie wydaje się być w stanie poradzić sobie z przypadkowymi efektami.
skan
52

Jak wskazał chl, główna różnica polega na tym, jaki rodzaj struktury wariancji-kowariancji można określić dla efektów losowych. W lme4możesz określić:

  • diagonalne struktury kowariancji (tj. wymuszają wzajemnie nieskorelowane efekty losowe za pomocą składni ~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group))
  • lub nieustrukturyzowane macierze kowariancji (tzn. szacuje się wszystkie korelacje ~ (1 + x1 + x2 | group))
  • lub kowariancja częściowo ukośna, częściowo nieustrukturyzowana ( y ~ (1 + x1 | group) + (0 + x2 | group)gdzie oszacowałbyś korelację między losowym przechwytywaniem a losowym nachyleniem dla x1, ale brak korelacji między losowym nachyleniem dla x2i losowym przechodzeniem oraz między losowym nachyleniem dla x2i losowym nachyleniem dla x1).

nlmeoferuje znacznie szerszą klasę struktur kowariancji dla efektów losowych. Z mojego doświadczenia wynika jednak, że elastyczność lme4jest wystarczająca dla większości aplikacji.

Dodałbym również trzecią różnicę w możliwościach, która może być bardziej odpowiednia w wielu sytuacjach danych wzdłużnych: nlme pozwólmy określić struktury wariancji-kowariancji dla reszt (tj. Autokorelację przestrzenną lub czasową lub heteroskedastyczność lub zmienność zależna od zmiennej) w weightsargumencie (por. ?varFunc), podczas gdy lme4zezwala tylko na ustalone wcześniej wagi dla obserwacji.

Czwarta różnica polega na tym, że nlmedopasowanie (częściowo) skrzyżowanych efektów losowych może być trudne , podczas gdy nie stanowi to problemu lme4.

Prawdopodobnie wszystko będzie dobrze, jeśli będziesz się trzymać lme4.

fabianie
źródło
1
Z możliwym wyjątkiem (jak wskazałeś) możliwości włączenia czasowej autokorelacji do nlme, ale nie do lme4. Jeśli zestaw danych jest wystarczająco duży, a dane mają taką strukturę, może to być dużą zaletą nlme.
Ben Bolker,
22

Inni bardzo dobrze podsumowali różnice. Mam wrażenie, że lme4bardziej nadaje się do klastrowanych zestawów danych, szczególnie gdy trzeba użyć skrzyżowanych efektów losowych. Jednak w przypadku powtarzanych pomiarów (w tym wielu projektów wzdłużnych) nlmejest to narzędzie, ponieważ nlmeobsługuje jedynie określanie struktury korelacji dla reszt. Robisz to za pomocą argumentu correlationslub corz corStructobiektem. Pozwala także modelować heteroscedastyczność za pomocą varFuncobiektu.

AlefSin
źródło
13

W R znajduje się wiele pakietów do dopasowania modeli efektów mieszanych poza lme4i nlme. Istnieje ładna wiki prowadzona przez grupę R specjalnego zainteresowania dla modeli mieszanych, która ma bardzo ładne FAQ i stronę porównującą różne pakiety .

Co do moich opinii na temat faktycznego używania lme4i nlme: Odkryłem, że lme4jest ogólnie łatwiejszy w użyciu ze względu na raczej bezpośrednie rozszerzenie podstawowej składni formuły R. (Jeśli potrzebujesz pracować z uogólnionymi modelami addytywnymi, gamm4pakiet rozszerza tę składnię o kolejny krok, dzięki czemu masz przyjemną płynną krzywą uczenia się.) Jak już wspomniano inni, lme4może obsługiwać modele uogólnione (inne funkcje łącza i rozkłady błędów), podczas gdy nlmeskupienie się na funkcji połączenia Gaussa pozwala na wykonanie pewnych rzeczy, które są bardzo trudne w ogólnym przypadku (określenie struktury kowariancji i pewnych rzeczy zależnych od obliczeń stopni swobody, takich jak wartości p, których drugiej zachęcam do poruszania się z dala od!).

Livius
źródło