(Это довольно длинный ответ, в конце есть резюме)
Вы не ошибаетесь в своем понимании того, какие вложенные и скрещенные случайные эффекты присутствуют в сценарии, который вы описываете. Однако, ваше определение скрещенных случайных эффектов немного узкое. Более общее определение скрещенных случайных эффектов простое: не вложенное . Мы рассмотрим это в конце этого ответа, но основная часть ответа будет сосредоточена на представленном вами сценарии с классными комнатами в школах.
Сначала обратите внимание, что:
Вложенность - это свойство данных, точнее экспериментального плана, а не модели.
Также,
Вложенные данные могут быть закодированы как минимум двумя различными способами, и в этом суть проблемы, которую вы обнаружили.
Набор данных в вашем примере довольно большой, поэтому я воспользуюсь другим примером школ из Интернета, чтобы объяснить проблемы. Но сначала рассмотрим следующий упрощенный пример:
Здесь у нас есть классы, вложенные в школы, что является привычным сценарием. Важным моментом здесь является то, что между каждой школой классы имеют один и тот же идентификатор, даже если они различаются, если они вложенные . 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)