(Це досить довга відповідь. У кінці є підсумок)
Ви не помиляєтесь у розумінні того, що є вкладені та перехрещені випадкові ефекти у сценарії, який ви описуєте. Однак ваше визначення схрещених випадкових ефектів трохи вузьке. Більш загальне визначення схрещених випадкових ефектів просто: не вкладене . Ми розглянемо це в кінці цієї відповіді, але основна частина відповіді буде зосереджена на сценарії, який ви представили, для класів у школах.
Спочатку зауважте, що:
Вкладення - це властивість даних, а точніше експериментальної конструкції, а не моделі.
Також,
Вкладені дані можна кодувати як мінімум двома різними способами, і це лежить в основі проблеми, яку ви знайшли.
Набір даних у вашому прикладі досить великий, тому я буду використовувати інший приклад шкіл з Інтернету, щоб пояснити проблеми. Але спочатку розглянемо наступний спрощений приклад:
Тут у нас є вкладені в школах класи, що є звичним сценарієм. Важливим моментом є те, що між кожною школою класи мають однаковий ідентифікатор, хоча вони є різними, якщо вони вкладені . Class1
з'являється в School1
, School2
і School3
. Однак якщо дані вкладені, то Class1
в School1
- це не та сама одиниця вимірювання, як Class1
в School2
і School3
. Якби вони були однаковими, то у нас була б така ситуація:
що означає, що до кожної школи належить кожен клас. Перший - це вкладений дизайн, а другий - схрещений дизайн (деякі можуть також назвати його багаторазовим членством), і ми сформулювали б їх, lme4
використовуючи:
(1|School/Class)
або рівнозначно (1|School) + (1|Class:School)
і
(1|School) + (1|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)