Як вибрати бібліотеку 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можна легко обробити дуже величезну кількість випадкових ефектів (отже, кількість осіб у даному дослідженні) завдяки своїй частині С та використанню розріджених матриць. nlmeПакет кілька був замінений , lme4так що я не буду чекати , що люди витрачають багато часу на розробку доповнень до верхньої частини nlme. Особисто, коли у мене є безперервна реакція у моїй моделі, я схильний використовувати обидва пакети, але зараз я розбираюся в lme4дорозі для встановлення GLMM.

Замість того , щоб купувати книгу, подивіться спочатку на проект книзі Дуги Бейтса на R-горні: lme4: змішані ефекти моделювання з R .


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

@fabians (+1) Ах, дякую! Не зрозумів, що lme4дозволяє вибирати різні структури ВК. Було б краще, щоб ви додали його у власну відповідь разом з іншими ідеями, які у вас можуть бути. Я виступлю. До речі, я також зрозумів, що lmList()це також доступно lme4. Здається, я пам’ятаю деяку дискусію з цього приводу на R-sig-ME.
chl

Будь-яка швидша альтернатива? Мені потрібно підходити до моделей з великими наборами даних і забирати пів моєї години на комп’ютері. Існує багато пакетів швидкої регресії, але жоден, схоже, не може впоратися з випадковими ефектами.
скан

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підтримує лише вказівку кореляційної структури для залишків. Ви робите це, використовуючи аргумент correlationsабо 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.