Efek acak disilangkan vs bersarang: bagaimana perbedaannya dan bagaimana mereka ditentukan dengan benar di lme4?

88

Inilah cara saya memahami efek acak bersarang vs. bersilangan:

Efek acak bersarang terjadi ketika faktor level yang lebih rendah hanya muncul dalam level tertentu dari faktor level atas.

  • Misalnya, siswa dalam kelas pada titik waktu tertentu.
  • Dalam lme4saya pikir kami mewakili efek acak untuk data bersarang dalam salah satu dari dua cara yang setara:

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

Efek acak silang berarti bahwa faktor tertentu muncul di lebih dari satu tingkat faktor tingkat atas.

  • Misalnya, ada siswa dalam kelas yang diukur selama beberapa tahun.
  • Dalam lme4, kami akan menulis:

    (1|class) + (1|pupil)

Namun, ketika saya sedang melihat dataset bersarang tertentu, saya perhatikan bahwa kedua formula model memberikan hasil yang identik (kode dan output di bawah). Namun saya telah melihat kumpulan data lain di mana kedua formula menghasilkan hasil yang berbeda. Jadi apa yang terjadi di sini?

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
Joe King
sumber

Jawaban:

148

(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:

masukkan deskripsi gambar di sini

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 . Class1muncul di School1, School2dan School3. Namun jika data yang bersarang maka Class1di School1adalah tidak unit yang sama dari pengukuran seperti Class1di School2dan School3. Jika mereka sama, maka kita akan memiliki situasi ini:

masukkan deskripsi gambar di sini

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 lme4menggunakan:

(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:

masukkan deskripsi gambar di sini

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 auntuk 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 m0model bersarang sedangkan m1model 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 m0atas):

> 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 lme4dengan:

(1|group1/group2)

di mana group2bersarang 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 lme4dengan:

(1|group1) + (1|group2)

Robert Long
sumber
16
+6, ini jawaban yang sangat bagus. Ingatkan saya dalam beberapa hari & saya akan memberi hadiah.
gung - Reinstate Monica
2
Penjelasan yang bagus. Apakah ada nama untuk jenis desain eksperimental ketiga di mana Anda membuat level unik untuk dua faktor (mungkin bersarang), jadi jika saya mengikuti kohort yang membeli sepeda motor dari berbagai dealer di kota yang berbeda, bagaimana cara saya berkomunikasi dengan pembaca bahwa saya pada dasarnya menciptakan faktor level tunggal interaction(city, dealer)?
AdamO
2
+6, ini adalah jawaban yang hebat sehingga aku merasa bisa menambah hadiah @ gung dengan yang lain. Ngomong-ngomong, saya berjuang dengan apa yang mungkin merupakan kebingungan yang sangat mendasar (di sini adalah Q saya ) dan akan sangat menghargai bantuan Anda.
amoeba
1
@RobertLong Sepertinya desain split plot (tindakan berulang) sering disebut "bersarang" meskipun tidak benar-benar bersarang berdasarkan jawaban Anda ini. Ketidakkonsistenan terminologis ini mungkin telah berkontribusi pada kebingungan saya dalam pertanyaan terkait. Akan lebih bagus jika Anda bisa memperjelasnya, baik di sini atau di sana. Saya bahkan berpikir apakah saya harus memposting pertanyaan terminologis yang terpisah (bukan berorientasi R) tentang apa yang disarangkan dalam plot terpisah.
amoeba
2
Perbarui komentar saya sebelumnya. Saya telah memeriksa dua buku tua & otoritatif tentang desain eksperimental: Maxwell dan Delaney, 1990, Merancang Eksperimen dan Menganalisis Data, dan Montgomery, 1976, Desain dan Analisis Eksperimen. Keduanya berbicara tentang desain bersarang dan keduanya berbicara tentang tindakan berulang alias plot terpisah; keduanya menggunakan kata "bersarang" hanya dalam arti Anda menggunakannya dan tidak pernah menyebut tindakan berulang sebagai bersarang. Jadi saya tidak berpikir ada perbedaan terminologi sama sekali.
amoeba