Як вибрати структуру випадкових та фіксованих ефектів у лінійних змішаних моделях?


19

Розглянемо наступні дані з двостороннього проектування предметів:

df <- "http://personality-project.org/r/datasets/R.appendix4.data"
df <- read.table(df,header=T)
head(df)

Observation Subject Task Valence Recall
1           1     Jim Free     Neg      8
2           2     Jim Free     Neu      9
3           3     Jim Free     Pos      5
4           4     Jim Cued     Neg      7
5           5     Jim Cued     Neu      9
6           6     Jim Cued     Pos     10

Я хотів би проаналізувати це за допомогою змішаних лінійних моделей. Враховуючи всі можливі фіксовані та випадкові ефекти, існує кілька можливих моделей:

# different fixed effects with random-intercept
a0 <- lmer(Recall~1 + (1|Subject), REML=F,df)
a1 <- lmer(Recall~Task + (1|Subject), REML=F,df)
a2 <- lmer(Recall~Valence + (1|Subject), REML=F,df)
a3 <- lmer(Recall~Task+Valence + (1|Subject), REML=F,df)
a4 <- lmer(Recall~Task*Valence + (1|Subject), REML=F,df)

# different fixed effects with random-intercept-random-slope
b0 <- lmer(Recall~1 + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b1 <- lmer(Recall~Task + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b2 <- lmer(Recall~Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b3 <- lmer(Recall~Task+Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b4 <- lmer(Recall~Task*Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)

# different fixed effects with random-intercept-random-slope including variance-covariance matrix
c0 <- lmer(Recall~1 + (1 + Valence + Task|Subject), REML=F,df)
c1 <- lmer(Recall~Task + (1 + Valence + Task|Subject), REML=F,df)
c2 <- lmer(Recall~Valence + (1 + Valence + Task|Subject), REML=F,df)
c3 <- lmer(Recall~Task+Valence + (1 + Valence + Task|Subject), REML=F,df)
c4 <- lmer(Recall~Task*Valence + (1 + Valence + Task|Subject), REML=F,df)
  1. Який рекомендований спосіб обрати найкращу модель у цьому контексті? Якщо ви використовуєте тести на коефіцієнт імовірності, що рекомендується, яка процедура? Генерація моделей вгору (від нульової моделі до найскладнішої моделі) або вниз (від найскладнішої моделі до нульової моделі)? Поетапне включення чи виключення? Або рекомендується поставити всі моделі в один тест коефіцієнта ймовірності й вибрати модель з найнижчим значенням p? Як порівняти моделі, які не вкладені?

  2. Чи рекомендується спочатку знайти відповідну структуру фіксованих ефектів, а потім відповідну структуру випадкових ефектів або навпаки (я знайшов посилання на обидва варіанти ...)?

  3. Який рекомендований спосіб звітування про результати? Повідомлення p-значення з тесту коефіцієнта ймовірності порівняння повної помірної моделі (з відповідним ефектом) зі зменшеною моделлю (без відповідного ефекту). Або краще скористатися тестом коефіцієнта ймовірності коефіцієнта ймовірності, щоб знайти найкращу модель підгонки, а потім скористатися lmerTest, щоб повідомити значення p від ефектів у найкращій моделі підгонки?

Відповіді:


18

Я не впевнений, що насправді є канонічна відповідь на це, але я спробую.

Який рекомендований спосіб обрати найкращу модель у цьому контексті? Якщо ви використовуєте тести на коефіцієнт імовірності, що рекомендується, яка процедура? Генерація моделей вгору (від нульової моделі до найскладнішої моделі) або вниз (від найскладнішої моделі до нульової моделі)? Поетапне включення чи виключення? Або рекомендується поставити всі моделі в один тест коефіцієнта ймовірності й вибрати модель з найнижчим значенням p? Як порівняти моделі, які не вкладені?

Це залежить від ваших цілей.

  • Загалом , ви повинні бути дуже , дуже обережні про вибір моделі (див , наприклад , ця відповідь , або цей пост , або просто Google «Харрелл східчасто» ...).
  • Якщо ви зацікавлені в тому , щоб ваші значення р бути значущими (тобто ви робите підтверджує перевірку гіпотези), ви повинні НЕ робити вибір моделі. Однак : мені не так зрозуміло, чи є процедури вибору моделі такими ж поганими, якщо ви робите вибір моделі на нефокальних частинах моделі , наприклад, вибираєте вибір моделі на випадкових ефектах, якщо ваш головний інтерес є висновком щодо фіксованих ефектів.
  • Не існує такого поняття, як "поставити всі моделі в один тест на коефіцієнт ймовірності" - тестування коефіцієнта ймовірності є процедурою попарно. Якби ви хотіли зробити вибір моделі (наприклад) щодо випадкових ефектів, я, мабуть, порекомендував би підхід "всі відразу", використовуючи інформаційні критерії, як у цьому прикладі, - що принаймні уникає деяких проблем поетапних підходів (але не вибір моделі в цілому).
  • Барр та ін. Журнал пам’яті та мови 2013 року «Зберігай максимально» (doi: 10.1016 / j.jml.2012.11.001) рекомендує використовувати максимальну модель (лише).
  • Шраван Васишт не погоджується , стверджуючи, що подібні моделі будуть недооціненими і, отже, проблематичними, якщо набір даних дуже великий (а коефіцієнт сигнал-шум високий)
  • Інший розумно захищаючий підхід - це підходити до великої, але розумної моделі, а потім, якщо підхід є єдиним, видаліть терміни, поки він більше не стане
  • З деякими застереженнями (переліченими у FAQ щодо GLMM ) ви можете використовувати інформаційні критерії для порівняння вкладених моделей з різними випадковими ефектами (хоча Брайан Ріплі не погоджується: див. Дно, с. 6 тут )

Чи рекомендується спочатку знайти відповідну структуру фіксованих ефектів, а потім відповідну структуру випадкових ефектів або навпаки (я знайшов посилання на обидва варіанти ...)?

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

Який рекомендований спосіб звітування про результати? Повідомлення p-значення з тесту коефіцієнта ймовірності порівняння повної помірної моделі (з відповідним ефектом) зі зменшеною моделлю (без відповідного ефекту). Або краще скористатися тестом коефіцієнта ймовірності коефіцієнта ймовірності, щоб знайти найкращу модель підгонки, а потім скористатися lmerTest, щоб повідомити значення p від ефектів у найкращій моделі підгонки?

Це (на жаль) ще одне складне питання. Якщо ви повідомляєте про граничні ефекти, про які повідомляється lmerTest, вам доведеться турбуватися про маргінальність (наприклад, чи оцінюють основні наслідки Aта чи Bмають значення, коли в моделі Aіснує Bвзаємодія -by- ); це величезна банка глистів, але дещо пом'якшується, якщо використовувати, contrasts="sum"як рекомендують afex::mixed(). Збалансований дизайн теж трохи допомагає. Якщо ви дійсно хочете розглянути всі ці тріщини, я думаю, я б рекомендував afex::mixed, що дає вихід, подібний до lmerTest, але намагається вирішити ці проблеми.


12

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


Я дуже погоджуюся з тим, що вже сказав Бен Болкер (дякую за вигук afex::mixed()), але дозвольте додати ще кілька загальних та конкретних думок з цього приводу.

Зосередьтеся на фіксованих проти випадкових ефектів та способах повідомляти про результати

Для типу експериментального дослідження, який представлений у прикладі набору даних Джонатана Барона, ви використовуєте важливе питання, як правило, чи має маніпульований фактор загальний ефект чи ні. Наприклад, чи знаходимо ми загальний головний ефект чи взаємодію Task? Важливим моментом є те, що в цих наборах даних зазвичай всі фактори знаходяться під повним експериментальним контролем і призначаються випадковим чином. Отже, у центрі уваги, як правило, приділяється фіксований вплив.
На противагу цьому, компоненти випадкових ефектів можуть розглядатися як параметри «неприємності», які фіксують систематичну дисперсію (тобто, міжособистісні відмінності в розмірі ефекту), які не обов'язково важливі для головного питання. З цієї точки зору пропонується використовувати структуру максимальних випадкових ефектів, як це пропонують Барр та ін. випливає дещо природно. Неважко уявити, що експериментальна маніпуляція не впливає на всіх людей точно так само, і ми хочемо це контролювати. З іншого боку, кількість факторів або рівнів, як правило, не надто велика, тому небезпека переобладнання здається порівняно невеликою.

Отже, я б наслідував пропозицію Barr et al. і вказати структуру максимальних випадкових ефектів і повідомити про тести фіксованих ефектів як мої основні результати. Для тестування фіксованих ефектів я б також запропонував використовувати, afex::mixed()оскільки він повідомляє про тестування ефектів чи факторів (замість тестування параметрів) та обчислює ці тести дещо розумним чином (наприклад, використовує однакову структуру випадкових ефектів для всіх моделей, у яких один ефект видаляється, використовує контрасти суми до нуля, пропонує різні методи обчислення р- значень, ...).

Як щодо даних прикладу

Проблема з наведеними прикладом даних полягає в тому, що для цього набору даних максимальна структура випадкових ефектів призводить до перенасиченої моделі, оскільки на комірку конструкції існує лише одна точка даних:

> with(df, table(Valence, Subject, Task))
, , Task = Cued

       Subject
Valence Faye Jason Jim Ron Victor
    Neg    1     1   1   1      1
    Neu    1     1   1   1      1
    Pos    1     1   1   1      1

, , Task = Free

       Subject
Valence Faye Jason Jim Ron Victor
    Neg    1     1   1   1      1
    Neu    1     1   1   1      1
    Pos    1     1   1   1      1

Отже, lmerдроселі в структурі максимальних випадкових ефектів:

> lmer(Recall~Task*Valence + (Valence*Task|Subject), df)
Error: number of observations (=30) <= number of random effects (=30) for term
(Valence * Task | Subject); the random-effects parameters and the residual variance
(or scale parameter) are probably unidentifiable

На жаль, досі не існує узгодженого способу вирішення цієї проблеми. Але дозвольте намалювати та обговорити деякі:

  1. Першим рішенням може бути усунення найвищого випадкового нахилу та перевірка ефектів для цієї моделі:

    require(afex)
    mixed(Recall~Task*Valence + (Valence+Task|Subject), df)
            Effect    F ndf  ddf F.scaling p.value
    1         Task 6.56   1 4.00      1.00     .06
    2      Valence 0.80   2 3.00      0.75     .53
    3 Task:Valence 0.42   2 8.00      1.00     .67

    Однак це рішення є трохи спеціальним та не надто мотивованим.

    Оновити травень 2017 року. Це такий підхід, який я зараз схвалюю. Дивіться цю публікацію в блозі та проект глави, яку я співавторую , розділ "Структури випадкових ефектів для традиційних дизайнів ANOVA".

  2. Альтернативним рішенням (і таким, яке можна вважати висунутим дискусією Барра та ін.), Може бути завжди усунення випадкових нахилів для найменшого ефекту. У цьому є дві проблеми: (1) Яку структуру випадкових ефектів ми використовуємо, щоб дізнатися, що таке найменший ефект, і (2) R неохоче видаляє ефект нижчого порядку, такий як основний ефект, якщо ефекти вищого порядку, такі як взаємодія цього ефекту присутня (див. тут ). Як наслідок, потрібно буде вручну встановити цю структуру випадкових ефектів і передати так побудовану матрицю моделі на виклик lmer.

  3. Третім рішенням може бути використання альтернативної параметризації частини випадкових ефектів, а саме тієї, що відповідає моделі RM-ANOVA для цих даних. На жаль (?) lmerНе дозволяє "негативні відхилення", тому ця параметризація не відповідає точно RM-ANOVA для всіх наборів даних , дивіться обговорення тут і в інших місцях (наприклад, тут і тут ). "Lmer-ANOVA" для цих даних буде:

    > mixed(Recall~Task*Valence + (1|Subject) + (1|Task:Subject) + (1|Valence:Subject), df)
            Effect    F ndf  ddf F.scaling p.value
    1         Task 7.35   1 4.00      1.00     .05
    2      Valence 1.46   2 8.00      1.00     .29
    3 Task:Valence 0.29   2 8.00      1.00     .76

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

  1. Натомість я б також міг ще використовувати класичну ANOVA. Використання однієї з обгортки для car::Anova()в afexрезультатах буде:

    > aov4(Recall~Task*Valence + (Valence*Task|Subject), df)
            Effect         df  MSE      F  ges   p
    1      Valence 1.44, 5.75 4.67   1.46  .02 .29
    2         Task       1, 4 4.08 7.35 +  .07 .05
    3 Valence:Task 1.63, 6.52 2.96   0.29 .003 .71

    Зауважимо, що afexтепер також можна повернути модель, з aovякою можна передаватись lsmeansдля спеціальних тестів (але для тестування ефектів ті, про які повідомляється, car::Anovaвсе-таки більш розумні):

    > require(lsmeans)
    > m <- aov4(Recall~Task*Valence + (Valence*Task|Subject), df, return = "aov")
    > lsmeans(m, ~Task+Valence)
     Task Valence lsmean       SE   df lower.CL upper.CL
     Cued Neg       11.8 1.852026 5.52  7.17157 16.42843
     Free Neg       10.2 1.852026 5.52  5.57157 14.82843
     Cued Neu       13.0 1.852026 5.52  8.37157 17.62843
     Free Neu       11.2 1.852026 5.52  6.57157 15.82843
     Cued Pos       13.6 1.852026 5.52  8.97157 18.22843
     Free Pos       11.0 1.852026 5.52  6.37157 15.62843
    
    Confidence level used: 0.95 

(+1) "На жаль, lmer не дозволяє негативні кореляції" - чи не повинно це бути "не допускає негативних відхилень"? Крім того, повторіть оновлення: чи не могли б ви бути більш чіткими щодо того, що саме є "неправильним результатом" у цій відповіді?
амеба каже, що поверніть Моніку

(Я читав пов'язаний пост і, здається, головне повідомлення там полягає в тому, що підхід, перелічений тут як №1, кошерніший, ніж ви раніше думали. Правильно? Досі не зрозуміло, чи вважаєте ви, що це краще для №3 або №4 ).
Амеба каже, що поверніть Моніку

@amoeba Так, ти прав. Мені просто було лінь, щоб відповідно оновити свою відповідь.
Генрік

@amoeba І ви також маєте право на кореляцію. lmerне допускає негативних дисперсій, але очевидно негативних кореляцій між компонентами дисперсії.
Генрік

1
Я зробив декілька змін, можливо, ви хочете переконатися, що я вас не представляв неправильно.
амеба каже, що поверніть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.