Це прийнятний спосіб аналізу моделей змішаного ефекту з lme4 в R?


14

У мене є незбалансований набір даних повторних заходів для аналізу, і я читав, що спосіб більшості статистичних пакетів обробляє це за допомогою ANOVA (тобто сума третього типу) неправильна. Тому я хотів би використовувати модель змішаних ефектів для аналізу цих даних. Я багато читав про змішані моделі R, але я все ще дуже новинки Rта моделей зі змішаним ефектом і не дуже впевнений, що все роблю правильно. Зауважте, що я ще не можу повністю розлучитися з "традиційними" методами, і мені ще потрібні та пост-тести.p

Мені хотілося б знати, чи має сенс наступний підхід, чи я роблю щось жахливо неправильне. Ось мій код:

# load packages
library(lme4)
library(languageR)
library(LMERConvenienceFunctions)
library(coda)
library(pbkrtest)

# import data
my.data <- read.csv("data.csv")

# create separate data frames for each DV & remove NAs
region.data <- na.omit(data.frame(time=my.data$time, subject=my.data$subject, dv=my.data$dv1))

# output summary of data
data.summary <- summary(region.data)

# fit model
# "time" is a factor with three levels ("t1", "t2", "t3")
region.lmer <- lmer(dv ~ time + (1|subject), data=region.data)

# check model assumptions
mcp.fnc(region.lmer)

# remove outliers (over 2.5 standard deviations)
rm.outliers <- romr.fnc(region.lmer, region.data, trim=2.5)
region.data <- rm.outliers$data
region.lmer <- update(region.lmer)

# re-check model assumptions
mcp.fnc(region.lmer)

# compare model to null model
region.lmer.null <- lmer(dv ~ 1 + (1|subject), data=region.data)
region.krtest <- KRmodcomp(region.lmer, region.lmer.null)

# output lmer summary
region.lmer.summary <- summary(region.lmer)

# run post hoc tests
t1.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)

region.lmer <- lmer(dv ~ relevel(time,ref="t2") + (1|subject), data=region.data)
t2.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)

region.lmer <- lmer(dv ~ relevel(time,ref="t3") + (1|subject), data=region.data)
t3.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)

# Get mcmc mean and 50/95% HPD confidence intervals for graphs
# repeated three times and stored in a matrix (not shown here for brevity)
as.numeric(t1.pvals$fixed$MCMCmean)
as.numeric(t1.pvals$fixed$HPD95lower)
as.numeric(t1.pvals$fixed$HPD95upper)
HPDinterval(as.mcmc(t1.pvals$mcmc),prob=0.5)
    HPDinterval(as.mcmc(t1.pvals$mcmc),prob=0.5)

У мене є деякі конкретні питання:

  1. Це вірний спосіб аналізу моделей змішаних ефектів? Якщо ні, то що мені робити замість цього.
  2. Чи достатньо хороші графіки критики, виведені mcp.fnc, для перевірки припущень щодо моделей, чи я повинен вживати додаткових кроків.
  3. Я вважаю, що для змішаних моделей, щоб бути дійсними, дані потребують дотримання припущень щодо нормальності та гомоскедастичності. Як судити про те, що "приблизно нормально", а що не, дивлячись на сюжети критики, згенеровані mcp.fnc? Чи потрібно мені просто відчути це, чи це їх встановлений спосіб робити? Наскільки надійні змішані моделі стосовно цих припущень?
  4. Мені потрібно оцінити відмінності між трьома часовими точками для ~ 20 характеристик (біомаркерів) суб'єктів у моїй вибірці. Чи підходить і тестується окрема модель для кожної прийнятної, якщо я повідомляю про всі проведені тести (значні чи ні), чи мені потрібна будь-яка форма корекції для кількох порівнянь.

Щоб бути трохи більш точним щодо експерименту, ось ще кілька деталей. Ми довго стежили за кількістю учасників, коли вони проходили лікування. Ми вимірювали кількість біомаркерів перед початком лікування та через два моменти часу після. Що я хотів би побачити, якщо є різниця в цих біомаркерів між трьома часовими точками.

Я базую більшу частину того, що я роблю тут, на цьому підручнику , але вніс деякі зміни, виходячи з моїх потреб та речей, які я читав. Зміни, які я внесла:

  1. вивести коефіцієнт "час" для отримання t1-t2, t2-t3 і t1-t3 порівняння з pvals.fnc (з пакета languageR)
  2. порівняйте мою змішану модель з нульовою моделлю, використовуючи приблизний F-тест, заснований на підході Кенварда-Роджера (використовуючи пакет pbkrtest), а не тест коефіцієнта ймовірності (тому що я читав, що Кенвард-Роджер краще розглядається зараз)
  3. Використовуйте пакет LMERConvenienceFunctions для перевірки припущень та видалення сторонніх людей (бо я читав, що змішані моделі дуже чутливі до людей, що вижили)

1
(+1) Добре сформульовані (кілька) запитання.
chl

Відповіді:


22

Ваше запитання трохи "велике", тому я розпочну з загальних коментарів та порад.

Деякі фонові читання та корисні пакунки

Вам, мабуть, варто ознайомитись із деякими введеннями підручника щодо використання змішаних моделей, я б рекомендував почати з Baayen et al. (2008) - Baayen - автор languageR. Барр та ін (2013) обговорюють деякі питання зі структурою випадкових ефектів, а Бен Болкер - один із сучасних розробників lme4. Baayen та ін особливо підходять для ваших питань, оскільки вони витрачають багато часу на обговорення використання тестів завантаження / перестановки (те, що позаду mcp.fnc).

Література

У блогу своєї лабораторії Флоріан Йегер також має багато речей з практичної сторони змішаних моделей .

Існує також ряд корисних пакетів R для візуалізації та тестування змішаних моделей, таких як lmerTestі effects. effectsПакет особливо приємно , тому що вона дозволяє побудувати лінійні регресії і довірчі інтервали відбувається за лаштунками.

Якість підгонки та порівняння моделей

plmerTest

anova()merχ2χ2p-цінює безпосередньо порівняння двох моделей. Мінус цього полягає в тому, що не відразу зрозуміло, наскільки хороша ваша відповідність.

т-значення фіксованих ефектів у моделях (які є частиною, summary()якщо я не помиляюся). Взагалі, що завгодно|т|>2вважається хорошим (детальніше у Baayen et al.). Ви також можете отримати доступ до фіксованих ефектів безпосередньо за допомогою функції помічника fixef().

Ви також повинні переконатися, що жоден з ваших фіксованих ефектів не надто сильно взаємозв'язаний - мультиколінеарність порушує припущення щодо моделей. Флоріан Єгер написав трохи про це, а також кілька можливих рішень.

Багаторазові порівняння

Я трохи більше звернусь до вашого питання №4. Відповідь в основному така ж, як і хороша практика з традиційною ANOVA, але, на жаль, це здається місцем, де для більшості дослідників існує велика невизначеність. (Це те саме, що і традиційна ANOVA, оскільки як лінійні моделі зі змішаними ефектами, так і ANOVA засновані на загальній лінійній моделі, просто для змішаних моделей є додатковий термін для випадкових ефектів.) Якщо ви припускаєте, що часові вікна роблять різниця і хочете порівняти ефекти часу, ви повинні включити час у свою модель. Це, до речі, також надасть зручний спосіб судити про те, чи змінився час: чи є головний (фіксований) ефект на час? Недоліком цього маршруту є те, що ваша модель отримає багато складнішого і єдиного "супер" Модель з часом як параметр, ймовірно, займе більше часу для обчислення, ніж три менші моделі, без часу як параметр. Дійсно, класичний приклад підручника для змішаних моделейsleepstudy який використовує час як параметр.

Я не міг точно сказати, чи мають на увазі різні характеристики передбачувачі чи залежні змінні. Якщо вони призначені для прогнозування, ви можете кинути їх в одну модель і побачити, яка з них найбільшат-цінно, але ця модель була б неймовірно складною, навіть якщо ви не дозволяєте взаємодіяти, і потрібно тривати багато часу для обчислення. Більш швидким та потенційно простішим способом було б обчислення різних моделей для кожного прогноктора. Я рекомендую використовувати foreachцикл для паралелізації його через стільки ядер, скільки у вас є - lme4ще не виконує матричні операції паралельно, тому ви можете обчислити іншу модель на кожному ядрі паралельно. (Див. Короткий вступ тут ) Потім можна порівняти AIC та BIC кожної моделі, щоб знайти, який прогноз найкращий. (У цьому випадку вони не вкладені, тож виχ2 статистика.)

Якщо ваші характеристики залежать від змінної, вам доведеться все-таки обчислювати різні моделі, і тоді ви можете використовувати AIC та BIC для порівняння результатів.


Дякуємо за детальну відповідь! Я прочитав деякі подані посилання, але обов'язково погляну на інші. Наскільки я розумію зло р-значень, рецензенти, на жаль, часто думають інакше (принаймні поки що). Як рекомендує Бейтс, я використовую вибірку mcmc, яка, з мого розуміння, ухиляється від частини проблеми (тобто, неможливо правильно оцінити ступеня свободи для lmer-моделі). Характеристики - це DV, я додам ще трохи інформації для уточнення.
ダ ン ボ ー
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.