교차 및 중첩 된 랜덤 효과 : 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

(이것은 상당히 긴 답변이며 끝에 요약이 있습니다)

설명하는 시나리오에서 중첩 및 교차 임의 효과가 무엇인지 이해하는 데 잘못이 없습니다. 그러나 교차 임의 효과에 대한 정의는 약간 좁습니다. : 교차 임의 효과의 일반적인 정의는 단순히 중첩 없습니다 . 우리는이 답변의 끝에 이것을 살펴볼 것이지만, 대부분의 답변은 제시 한 시나리오, 학교 내 교실에 초점을 맞출 것입니다.

먼저

중첩은 모델이 아니라 데이터의 특성 또는 실험적인 설계입니다.

또한,

중첩 된 데이터는 적어도 2 가지 다른 방식으로 인코딩 될 수 있으며, 이것이 발견 한 문제의 핵심입니다.

귀하의 예의 데이터 세트는 다소 크기 때문에 인터넷의 다른 학교 예를 사용하여 문제를 설명합니다. 그러나 먼저 다음과 같이 단순화 된 다음 예를 고려하십시오.

여기에 이미지 설명을 입력하십시오

여기 우리는 학교에 중첩 된 수업을 가지고 있습니다. 여기서 중요한 점은 각 학교간에 클래스 가 중첩되어 있어도 구별되는 경우에도 동일한 식별자 가 있다는 것 입니다. Class1에 나타납니다 School1, School2그리고 School3. 그러나, 데이터는 중첩되어있는 경우 Class1School1있다 하지 같이 동일한 측정 단위 Class1에서 School2School3. 이들이 동일하다면 다음과 같은 상황이 발생합니다.

여기에 이미지 설명을 입력하십시오

이는 모든 수업이 모든 학교에 속해 있음을 의미합니다. 전자는 중첩 된 디자인이고 후자는 교차 된 디자인 (일부는 다중 멤버쉽이라고도 함)이며 다음을 lme4사용하여 공식화합니다 .

(1|School/Class) 또는 동등하게 (1|School) + (1|Class:School)

(1|School) + (1|Class)

각기. 임의 효과의 중첩 또는 교차가 있는지 모호하기 때문에 아래에 표시된 것처럼 이러한 모델이 다른 결과를 생성하므로 모델을 올바르게 지정하는 것이 매우 중요합니다. 또한 무작위 효과가 중첩되었거나 교차했는지 여부를 데이터를 검사하는 것만으로는 알 수 없습니다. 이것은 데이터 실험 설계에 대한 지식으로 만 결정할 수 있습니다 .

그러나 먼저 클래스 변수가 학교마다 고유하게 코딩되는 경우를 고려해 보겠습니다.

여기에 이미지 설명을 입력하십시오

더 이상 중첩 또는 교차와 관련된 모호성이 없습니다. 중첩은 명시 적입니다. (표시 우리는 지금 우리가 6 개 학교가 R,의 예와이를 보자 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

우리는 (이 경우 우리가 가진 모든 클래스 ID가 교차 임의 효과의 당신의 정의를 만족하는 모든 학교에 나타납니다이 교차 표에서 볼 수있는 완전히 반대로, 부분적으로 모든 클래스는 모든 학교에서 발생하기 때문에, 임의 효과를 넘어). 위의 첫 번째 그림에서와 같은 상황입니다. 그러나 데이터가 실제로 중첩되어 있고 교차되지 않은 경우 명시 적으로 알려야합니다 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.

교차 무작위 효과는 단순히 중첩되지 않습니다 . 이는 하나의 요인이 다른 요인에 개별적으로 중첩 된 3 개 이상의 그룹화 변수 (요인) 또는 두 개의 요인 내에 개별 관측치가 개별적으로 중첩 된 둘 이상의 요인에서 발생할 수 있습니다. 이들은 다음과 같이 지정됩니다 lme4.

(1|group1) + (1|group2)


16
+6, 이것은 정말 좋은 답변입니다. 며칠 내로 알림 및 현상금을 드리겠습니다.
gung

2
훌륭한 설명. 두 가지 요인에 대해 고유 한 수준을 만들 수있는 세 번째 유형의 실험 설계에 대한 이름이 있습니까 (아마도 내포되어있을 수 있음), 다른 도시에있는 다른 딜러로부터 오토바이를 구매하는 코호트를 따랐다면 기본적으로 내가 읽은 독자와 어떻게 통신 할 수 있을까요 단일 레벨 요소를 만들었 interaction(city, dealer)습니까?
AdamO

2
+6, 이것은 @gung의 현상금을 다른 것으로 바꿀 수 있다고 생각한 훌륭한 답변입니다. 그건 그렇고, 나는 매우 기본적인 혼란 ( 여기서는 내 Q ) 무엇인지 고민하고 있으며 귀하의 도움에 크게 감사드립니다.
amoeba

1
@RobertLong 분할 플롯 (반복 측정 값) 디자인은 이러한 응답에 따라 실제로 중첩되지 않더라도 종종 "중첩"이라고합니다. 이 용어 불일치는 아마도 관련 질문에 대한 혼란에 기여했을 것입니다. 여기 또는 거기에서 명확히 할 수 있다면 좋을 것입니다. 심지어 분할 플롯에 중첩 된 것에 대해 별도의 (R 지향이 아닌) 용어 질문을 게시해야하는지 여부도 생각하고 있습니다.
amoeba

2
이전 의견으로 업데이트하십시오. 나는 실험 설계에 관한 두 가지 오래된 권위있는 책들 : Maxwell and Delaney (1990), 실험 설계 및 분석 데이터, Montgomery (1976), 실험 설계 및 분석을 확인했습니다. 둘 다 중첩 된 디자인에 대해 이야기하고 반복 측정에 대해 이야기합니다. 둘 다 사용하는 의미 에서만 "중첩 된"단어를 사용하며 반복 된 측정 값을 중첩 된 것으로 언급하지 마십시오. 그래서 나는 어떤 용어 차이도 없다고 생각합니다.
amoeba
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.