(Ini jawaban yang cukup panjang, ada ringkasan di bagian akhir)
Anda tidak salah dalam pemahaman Anda tentang apa efek acak bersarang dan bersilangan dalam skenario yang Anda gambarkan. Namun, definisi Anda tentang efek acak silang sedikit sempit. Definisi yang lebih umum dari efek acak silang adalah sederhana: tidak bersarang . Kami akan melihat ini di akhir jawaban ini, tetapi sebagian besar jawabannya akan fokus pada skenario yang Anda presentasikan, ruang kelas di sekolah.
Catatan pertama bahwa:
Nesting adalah properti data, atau lebih tepatnya desain eksperimental, bukan model.
Juga,
Data bersarang dapat dikodekan setidaknya dalam 2 cara berbeda, dan ini adalah inti dari masalah yang Anda temukan.
Dataset dalam contoh Anda agak besar, jadi saya akan menggunakan contoh sekolah lain dari internet untuk menjelaskan masalahnya. Tapi pertama-tama, perhatikan contoh terlalu sederhana berikut ini:
Di sini kita memiliki kelas yang bersarang di sekolah, yang merupakan skenario yang biasa. Poin penting di sini adalah bahwa, di antara setiap sekolah, kelas memiliki pengidentifikasi yang sama, meskipun mereka berbeda jika bersarang . Class1
muncul di School1
, School2
dan School3
. Namun jika data yang bersarang maka Class1
di School1
adalah tidak unit yang sama dari pengukuran seperti Class1
di School2
dan School3
. Jika mereka sama, maka kita akan memiliki situasi ini:
yang berarti bahwa setiap kelas milik setiap sekolah. Yang pertama adalah desain yang bersarang, dan yang terakhir adalah desain yang disilang (beberapa mungkin juga menyebutnya beberapa keanggotaan), dan kami akan merumuskan ini dalam lme4
menggunakan:
(1|School/Class)
atau setara (1|School) + (1|Class:School)
dan
(1|School) + (1|Class)
masing-masing. Karena ketidakjelasan apakah ada efek bersarang atau bersilangan, sangat penting untuk menentukan model dengan benar karena model ini akan menghasilkan hasil yang berbeda, seperti yang akan kami tunjukkan di bawah ini. Selain itu, tidak mungkin untuk mengetahui, hanya dengan memeriksa data, apakah kita memiliki efek acak bersilangan atau bersilangan. Ini hanya dapat ditentukan dengan pengetahuan tentang data dan desain eksperimental.
Tapi pertama-tama mari kita perhatikan kasus di mana variabel Kelas dikodekan secara unik di sekolah:
Tidak ada lagi ambiguitas tentang bersarang atau menyeberang. Sarangnya eksplisit. Mari kita lihat ini dengan sebuah contoh dalam R, di mana kami memiliki 6 sekolah (berlabel I
- VI
) dan 4 kelas di masing-masing sekolah (diberi label a
untuk 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
Kita dapat melihat dari tabulasi silang ini bahwa setiap ID kelas muncul di setiap sekolah, yang memenuhi definisi Anda tentang efek acak silang (dalam hal ini kami sepenuhnya , sebagai lawan sebagian , efek acak silang, karena setiap kelas terjadi di setiap sekolah). Jadi ini adalah situasi yang sama yang kita miliki pada gambar pertama di atas. Namun, jika data benar-benar bersarang dan tidak bersilangan, maka kita perlu memberi tahu secara eksplisit 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
Seperti yang diharapkan, hasilnya berbeda karena m0
model bersarang sedangkan m1
model bersilang.
Sekarang, jika kami memperkenalkan variabel baru untuk pengidentifikasi kelas:
> 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
Tabulasi silang menunjukkan bahwa setiap tingkat kelas hanya terjadi di satu tingkat sekolah, sesuai definisi Anda tentang bersarang. Ini juga halnya dengan data Anda, namun sulit untuk menunjukkannya dengan data Anda karena sangat jarang. Kedua formulasi model sekarang akan menghasilkan output yang sama (yaitu model bersarang di m0
atas):
> 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
Perlu dicatat bahwa efek acak silang tidak harus terjadi dalam faktor yang sama - di atas persimpangan sepenuhnya dalam sekolah. Namun, ini tidak harus menjadi masalah, dan sangat sering tidak. Sebagai contoh, tetap dengan skenario sekolah, jika alih-alih kelas di sekolah kita memiliki murid di sekolah, dan kita juga tertarik pada dokter yang didaftarkan muridnya, maka kita juga akan memiliki sarang murid di dalam dokter. Tidak ada sarang sekolah di dalam dokter, atau sebaliknya, jadi ini juga merupakan contoh efek acak yang dilintasi, dan kami mengatakan bahwa sekolah dan dokter dilintasi. Skenario serupa di mana efek acak silang terjadi adalah ketika pengamatan individu bersarang dalam dua faktor secara bersamaan, yang biasanya terjadi dengan apa yang disebut tindakan berulang.data subjek-item . Biasanya setiap mata pelajaran diukur / diuji beberapa kali dengan / pada item yang berbeda dan item yang sama ini diukur / diuji oleh subjek yang berbeda. Dengan demikian, observasi dikelompokkan dalam subjek dan dalam item, tetapi item tidak bersarang di dalam subjek atau sebaliknya. Sekali lagi, kami mengatakan bahwa subjek dan item saling bersilangan .
Ringkasan: TL; DR
Perbedaan antara efek acak silang dan bersarang adalah bahwa efek acak bersarang terjadi ketika satu faktor (variabel pengelompokan) hanya muncul dalam tingkat tertentu dari faktor lain (variabel pengelompokan). Ini ditentukan lme4
dengan:
(1|group1/group2)
di mana group2
bersarang di dalam group1
.
Efek acak silang sederhana: tidak bersarang . Ini dapat terjadi dengan tiga atau lebih pengelompokan variabel (faktor) di mana satu faktor secara terpisah bersarang di kedua yang lain, atau dengan dua atau lebih faktor di mana pengamatan individu bersarang secara terpisah dalam dua faktor. Ini ditentukan lme4
dengan:
(1|group1) + (1|group2)