Скрещенные и вложенные случайные эффекты: чем они отличаются и как они правильно указаны в lme4?


88

Вот как я понял вложенные и скрещенные случайные эффекты:

Вложенные случайные эффекты возникают, когда фактор более низкого уровня появляется только в пределах определенного уровня фактора более высокого уровня.

  • Например, ученики в классах в определенный момент времени.
  • В lme4Я думал , что мы представляем случайные эффекты для вложенных данных в одном из двух эквивалентных способов:

    (1|class/pupil)  # or  
    (1|class) + (1|class:pupil)
    

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

  • Например, ученики в классах измеряются в течение нескольких лет.
  • В lme4, мы бы написали:

    (1|class) + (1|pupil)

Однако когда я смотрел на конкретный вложенный набор данных, я заметил, что обе формулы модели дали одинаковые результаты (код и выходные данные приведены ниже). Однако я видел другие наборы данных, в которых две формулы давали разные результаты. и так, что здесь происходит?

mydata <- read.csv("https://web.archive.org/web/20160624172041if_/http://www-personal.umich.edu/~bwest/classroom.csv")
# (the data is no longer at `http://www-personal.umich.edu/~bwest/classroom.csv`
# hence the link to web.archive.org)
# Crossed version: 
Linear mixed model fit by REML ['lmerMod']
Formula: mathgain ~ (1 | schoolid) + (1 | classid)
   Data: mydata

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups   Name        Variance Std.Dev.
 classid  (Intercept)   99.23   9.961  
 schoolid (Intercept)   77.49   8.803  
 Residual             1028.23  32.066  
Number of obs: 1190, groups:  classid, 312; schoolid, 107


# Nested version:
Formula: mathgain ~ (1 | schoolid/classid)

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups           Name        Variance Std.Dev.
 classid:schoolid (Intercept)   99.23   9.961  
 schoolid         (Intercept)   77.49   8.803  
 Residual                     1028.23  32.066  
Number of obs: 1190, groups:  classid:schoolid, 312; schoolid, 107

Ответы:


148

(Это довольно длинный ответ, в конце есть резюме)

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

Сначала обратите внимание, что:

Вложенность - это свойство данных, точнее экспериментального плана, а не модели.

Также,

Вложенные данные могут быть закодированы как минимум двумя различными способами, и в этом суть проблемы, которую вы обнаружили.

Набор данных в вашем примере довольно большой, поэтому я воспользуюсь другим примером школ из Интернета, чтобы объяснить проблемы. Но сначала рассмотрим следующий упрощенный пример:

введите описание изображения здесь

Здесь у нас есть классы, вложенные в школы, что является привычным сценарием. Важным моментом здесь является то, что между каждой школой классы имеют один и тот же идентификатор, даже если они различаются, если они вложенные . Class1появляется School1, School2и School3. Однако , если данные вложены , то Class1в School1это не та же единица измерения , как Class1в School2и School3. Если бы они были одинаковыми, то у нас была бы такая ситуация:

введите описание изображения здесь

Это означает, что каждый класс принадлежит каждой школе. Первый - это вложенный дизайн, а второй - скрещенный дизайн (некоторые могут также назвать его множественным членством), и мы сформулируем их, lme4используя:

(1|School/Class) или эквивалентно (1|School) + (1|Class:School)

а также

(1|School) + (1|Class)

соответственно. Из-за неоднозначности того, происходит ли вложение или пересечение случайных эффектов, очень важно правильно указать модель, так как эти модели будут давать разные результаты, как мы покажем ниже. Более того, невозможно, просто проверяя данные, узнать, были ли мы вложены или пересекли случайные эффекты. Это может быть определено только со знанием данных и дизайна эксперимента.

Но сначала давайте рассмотрим случай, когда переменная Class уникально закодирована в разных школах:

введите описание изображения здесь

Больше нет двусмысленности относительно гнездования или скрещивания. Вложенность явная. Давайте теперь посмотрим на это на примере в R, где у нас есть 6 школ (помечены I- VI) и 4 класса в каждой школе (помечены aкак d):

> dt <- read.table("http://bayes.acs.unt.edu:8083/BayesContent/class/Jon/R_SC/Module9/lmm.data.txt",
                   header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
> # data was previously publicly available from
> # http://researchsupport.unt.edu/class/Jon/R_SC/Module9/lmm.data.txt
> # but the link is now broken
> xtabs(~ school + class, dt)

        class
school  a  b  c  d
   I   50 50 50 50
   II  50 50 50 50
   III 50 50 50 50
   IV  50 50 50 50
   V   50 50 50 50
   VI  50 50 50 50

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

> m0 <- lmer(extro ~ open + agree + social + (1 | school/class), data = dt)
> summary(m0)

Random effects:
 Groups       Name        Variance Std.Dev.
 class:school (Intercept)  8.2043  2.8643  
 school       (Intercept) 93.8421  9.6872  
 Residual                  0.9684  0.9841  
Number of obs: 1200, groups:  class:school, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117909  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

> m1 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |class), data = dt)
summary(m1)

Random effects:
 Groups   Name        Variance Std.Dev.
 school   (Intercept) 95.887   9.792   
 class    (Intercept)  5.790   2.406   
 Residual              2.787   1.669   
Number of obs: 1200, groups:  school, 6; class, 4

Fixed effects:
             Estimate Std. Error t value
(Intercept) 60.198841   4.212974  14.289
open         0.010834   0.008349   1.298
agree       -0.005420   0.009605  -0.564
social      -0.001762   0.003107  -0.567

Как и ожидалось, результаты отличаются, потому что m0это вложенная модель, а m1скрещенная модель.

Теперь, если мы введем новую переменную для идентификатора класса:

> dt$classID <- paste(dt$school, dt$class, sep=".")
> xtabs(~ school + classID, dt)

      classID
school I.a I.b I.c I.d II.a II.b II.c II.d III.a III.b III.c III.d IV.a IV.b
   I    50  50  50  50    0    0    0    0     0     0     0     0    0    0
   II    0   0   0   0   50   50   50   50     0     0     0     0    0    0
   III   0   0   0   0    0    0    0    0    50    50    50    50    0    0
   IV    0   0   0   0    0    0    0    0     0     0     0     0   50   50
   V     0   0   0   0    0    0    0    0     0     0     0     0    0    0
   VI    0   0   0   0    0    0    0    0     0     0     0     0    0    0

      classID
school IV.c IV.d V.a V.b V.c V.d VI.a VI.b VI.c VI.d
   I      0    0   0   0   0   0    0    0    0    0
   II     0    0   0   0   0   0    0    0    0    0
   III    0    0   0   0   0   0    0    0    0    0
   IV    50   50   0   0   0   0    0    0    0    0
   V      0    0  50  50  50  50    0    0    0    0
   VI     0    0   0   0   0   0   50   50   50   50

Перекрестная таблица показывает, что каждый уровень класса происходит только в одном уровне школы, согласно вашему определению вложения. Это также относится и к вашим данным, однако трудно показать это с вашими данными, потому что они очень скудны. Обе формулировки модели теперь будут давать один и тот же результат (тот из вложенной модели m0выше):

> m2 <- lmer(extro ~ open + agree + social + (1 | school/classID), data = dt)
> summary(m2)

Random effects:
 Groups         Name        Variance Std.Dev.
 classID:school (Intercept)  8.2043  2.8643  
 school         (Intercept) 93.8419  9.6872  
 Residual                    0.9684  0.9841  
Number of obs: 1200, groups:  classID:school, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117882  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

> m3 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |classID), data = dt)
> summary(m3)

Random effects:
 Groups   Name        Variance Std.Dev.
 classID  (Intercept)  8.2043  2.8643  
 school   (Intercept) 93.8419  9.6872  
 Residual              0.9684  0.9841  
Number of obs: 1200, groups:  classID, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117882  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

Стоит отметить, что скрещенные случайные эффекты не должны возникать в пределах одного и того же фактора - в вышеприведенном случае пересечение было полностью в пределах школы. Однако это не должно иметь место, и очень часто это не так. Например, придерживаясь школьного сценария, если вместо классов внутри школ у нас есть ученики в школах, и нас также интересовали врачи, с которыми были зарегистрированы ученики, то у нас также было бы гнездование учеников внутри врачей. Не существует вложенности школ внутри врачей, или наоборот, так что это также пример перекрестных случайных эффектов, и мы говорим, что школы и врачи пересекаются. Похожий сценарий, где встречаются случайные перекрестные эффекты, - это когда отдельные наблюдения вкладываются в два фактора одновременно, что обычно происходит с так называемыми повторными измерениями.данные предмета . Обычно каждый субъект измеряется / тестируется несколько раз с / на разных предметах, и эти же предметы измеряются / тестируются разными предметами. Таким образом, наблюдения группируются внутри предметов и внутри предметов, но предметы не вложены в предметы или наоборот. Опять же, мы говорим, что предметы и предметы пересекаются .

Резюме: TL; DR

Разница между скрещенными и вложенными случайными эффектами заключается в том, что вложенные случайные эффекты возникают, когда один фактор (переменная группировки) появляется только в пределах определенного уровня другого фактора (переменная группировки). Это указано в lme4с:

(1|group1/group2)

где group2вложено внутри group1.

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

(1|group1) + (1|group2)


16
+6, это действительно хороший ответ. Напомни мне через пару дней, и я положу за это награду.
gung - Восстановить Монику

2
Отличное объяснение. Есть ли название, возможно, третьего типа экспериментального дизайна, где вы создаете уникальные уровни для двух факторов (возможно, вложенных), поэтому, если бы я следил за когортами, покупая мотоциклы у разных дилеров в разных городах, как бы я сообщил читателям, что я в основном создал фактор одного уровня interaction(city, dealer)?
AdamO

2
+6, это такой отличный ответ, что я чувствовал, что могу пополнить награду @ Гун еще одним. Кстати, я борюсь с тем, что, вероятно, является очень простой путаницей ( вот мой вопрос ) и буду очень признателен за вашу помощь.
говорит амеба, восстанови Монику

1
@RobertLong Кажется, что конструкции с разделенными участками (с повторными измерениями) часто называют «вложенными», даже если они не являются действительно вложенными в соответствии с вашим ответом. Это терминологическое несоответствие, вероятно, способствовало моей путанице в связанном вопросе. Было бы здорово, если бы вы могли уточнить это здесь или там. Я даже думаю, должен ли я опубликовать отдельный (не ориентированный на R) терминологический вопрос о том, что вложено в разделенные участки.
говорит амеба, восстанови Монику

2
Обновление до моего предыдущего комментария. Я проверил две старые и авторитетные книги по экспериментальному дизайну: Максвелл и Делани, 1990 год, «Проектирование экспериментов и анализ данных», и Монтгомери, 1976 год, «Проектирование и анализ экспериментов». Оба говорят о вложенных проектах, и оба говорят о повторных измерениях, таких как разделенные участки; оба используют слово «вложенный» только в том смысле, в котором вы его используете, и никогда не ссылаются на повторные измерения как вложенные. Поэтому я не думаю, что есть какая-то разница в терминологии.
говорит амеба, восстанови Монику
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.