Как выбрать библиотеку nlme или lme4 R для моделей со смешанными эффектами?


85

У меня подходят несколько смешанных моделей эффектов ( в частности , продольные модели) с использованием lme4в Rно хотел бы, чтобы действительно мастер модели и код , который идет с ними.

Однако, прежде чем погрузиться обеими ногами (и купить несколько книг), я хочу убедиться, что я изучаю правильную библиотеку. Я привык lme4до сих пор, потому что мне было проще nlme, но если nlmeэто лучше для моих целей, то я чувствую, что должен это использовать.

Я уверен, что ни один не «лучше» в упрощенном виде, но я бы оценил некоторые мнения или мысли. Мои основные критерии:

  1. прост в использовании (я по образованию психолог, не особо разбираюсь в статистике или кодировании, но учусь)
  2. хорошие возможности для подгонки продольных данных (если здесь есть разница, но для этого я в основном и использую их)
  3. хорошие (легко интерпретируемые) графические сводки, опять же, не уверен, что здесь есть разница, но я часто создаю графики для людей, даже менее техничных, чем я, поэтому хорошие четкие графики всегда хороши (мне очень нравится функция xyplot в решетке () Именно по этой причине).

Как обычно, надеюсь, что этот вопрос не слишком расплывчатый, и заранее спасибо за любую мудрость!

Ответы:


68

Оба пакета используют Latticeв качестве бэкэнда, но nlmeимеют некоторые приятные функции, такие как groupedData()и lmList()которых не хватает lme4(IMO). Однако с практической точки зрения два наиболее важных критерия

  1. lme4расширяется nlmeдругими функциями связывания: например nlme, вы не можете подобрать результаты, чье распределение не является гауссовским, lme4может использоваться, например, для соответствия логистической регрессии смешанных эффектов.
  2. в nlme, можно указать матрицу дисперсии-ковариации для случайных эффектов (например, AR (1)); это невозможно в lme4.

Теперь lme4можно легко обрабатывать очень большое количество случайных эффектов (отсюда и количество людей в данном исследовании) благодаря его части C и использованию разреженных матриц. nlmeПакет несколько был заменен , lme4так что я не буду ожидать , что люди тратят много времени на разработку дополнений в верхней части nlme. Лично, когда у меня есть непрерывный ответ в моей модели, я склонен использовать оба пакета, но теперь я разбираюсь в lme4способе подбора GLMM.

Вместо того , чтобы покупать книгу, посмотрите сначала на проект книге Дуги Бейтса на R-горне: lme4: смешанные эффекты моделирование с R .


5
@ 2) точнее, lme4вы можете указать диагональную ковариационную структуру (т.е. независимые случайные эффекты) или неструктурированные ковариационные матрицы (т.е. все корреляции должны быть оценены) или частично диагональные, частично неструктурированные ковариационные матрицы для случайных эффектов. Я бы также добавил третье отличие в возможностях, которое может быть более актуальным для многих ситуаций с продольными данными: nlmeдавайте не будем указывать дисперсионно-ковариационные структуры для остатков (то есть пространственную или временную автокорреляцию или гетероскедастичность) lme4.
Фабианс

@fabians (+1) Ах, спасибо! Не понял, lme4позволяет выбирать разные структуры ВК. Было бы лучше, если бы вы добавили его в свой ответ вместе с другими вашими идеями. Я буду голосовать. Кстати, я также понял, что lmList()доступно в lme4тоже время. Кажется, я помню некоторые дискуссии об этом на R-sig-ME.
ЧЛ

Есть ли более быстрая альтернатива? Мне нужно установить модели с большими наборами данных и использовать компьютер почти полчаса. Существует множество пакетов быстрой регрессии, но ни один из них не может справиться со случайными эффектами.
Скан

52

Как указал chl, основное отличие заключается в том, какую дисперсионно-ковариационную структуру вы можете указать для случайных эффектов. В lme4вы можете указать либо:

  • диагональные ковариационные структуры (т. е. обеспечить взаимно некоррелированные случайные эффекты с помощью синтаксиса ~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group))
  • или неструктурированные ковариационные матрицы (т.е. все корреляции оценены, ~ (1 + x1 + x2 | group))
  • или частично диагональная, частично неструктурированная ковариация ( y ~ (1 + x1 | group) + (0 + x2 | group)где вы бы оценили корреляцию между случайным перехватом и случайным наклоном для x1, но без корреляции между случайным наклоном для x2и случайным перехватом и между случайным наклоном для x2и случайным наклоном для x1).

nlmeпредлагает гораздо более широкий класс ковариационных структур для случайных эффектов. Однако мой опыт показывает, что lme4для большинства приложений достаточно гибкости .

Я бы также добавил третье различие в возможностях, которое может быть более уместным для многих ситуаций с продольными данными: nlme давайте укажем в weightsаргументе структуры дисперсии-ковариации для остатков (то есть пространственную или временную автокорреляцию или гетероскедастичность или ковариатозависимую изменчивость) (см. ?varFunc), в то время как lme4допускаются только фиксированные предварительные веса для наблюдений.

Четвертое отличие состоит в том, что может быть трудно подобрать nlme(частично) скрещенные случайные эффекты, хотя это не проблема lme4.

С тобой, наверное, все будет в порядке lme4.


1
С возможным исключением (как вы указали) возможности включения временной автокорреляции в nlme, но не в lme4. Если набор данных достаточно большой, и если данные имеют такую ​​структуру, это может быть большим преимуществом nlme.
Бен Болкер

22

Другие очень хорошо суммировали различия. У меня сложилось впечатление, что lme4это больше подходит для кластерных наборов данных, особенно когда вам нужно использовать скрещенные случайные эффекты. Для проектов с повторными измерениями (включая много продольных конструкций), однако, nlmeэто инструмент, так как nlmeподдерживает только определение структуры корреляции для остатков. Вы делаете это, используя аргумент correlationsor corс corStructобъектом. Это также позволяет моделировать гетероскедастичность с использованием varFuncобъекта.


13

На самом деле в R имеется ряд пакетов для подгонки моделей со смешанными эффектами за пределы lme4и nlme. Есть замечательная вики , созданная специальной группой R по интересам для смешанных моделей, в которой есть очень хороший FAQ и страница, сравнивающая различные пакеты .

Что касается моего мнения по поводу фактического использования lme4и nlme: я обнаружил, что lme4в целом проще в использовании из-за его довольно прямого расширения основного синтаксиса формулы R. (Если вам нужно работать с обобщенными аддитивными моделями, то gamm4пакет расширяет этот синтаксис еще на один шаг, и у вас есть хорошая плавная кривая обучения.) Как уже упоминалось, lme4можно обрабатывать обобщенные модели (другие функции связи и распределения ошибок), в то время как nlmeСосредоточение на функции связи Гаусса позволяет ей делать некоторые вещи, которые очень сложны в общем случае (указание ковариационной структуры и некоторые вещи, зависящие от вычисления степеней свободы, такие как p-значения, последнее из которых я призываю вас переместить подальше от!).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.