복합 대칭 인 경우 (0 + factor) 및 (1 | group) + (1 | group : factor) 랜덤 효과 사양의 동등성


13

Douglas Bates는 다음 모델이 "벡터 값 랜덤 효과에 대한 분산 공분산 행렬에 복합 대칭이라는 특수한 형태가있는 경우"( 이 프레젠테이션의 슬라이드 91)에 해당 한다고 설명 합니다.

m1 <- lmer(y ~ factor + (0 + factor|group), data)
m2 <- lmer(y ~ factor + (1|group) + (1|group:factor), data)

특히 Bates는이 예제를 사용합니다.

library(lme4)
data("Machines", package = "MEMSS")

m1a <- lmer(score ~ Machine + (0 + Machine|Worker), Machines)
m2a <- lmer(score ~ Machine + (1|Worker) + (1|Worker:Machine), Machines)

해당 출력으로 :

print(m1a, corr = FALSE)

Linear mixed model fit by REML ['lmerMod']
Formula: score ~ Machine + (0 + Machine | Worker)
   Data: Machines
REML criterion at convergence: 208.3112
Random effects:
 Groups   Name     Std.Dev. Corr     
 Worker   MachineA 4.0793            
          MachineB 8.6253   0.80     
          MachineC 4.3895   0.62 0.77
 Residual          0.9616            
Number of obs: 54, groups:  Worker, 6
Fixed Effects:
(Intercept)     MachineB     MachineC  
     52.356        7.967       13.917  

print(m2a, corr = FALSE)

Linear mixed model fit by REML ['lmerMod']
Formula: score ~ Machine + (1 | Worker) + (1 | Worker:Machine)
   Data: Machines
REML criterion at convergence: 215.6876
Random effects:
 Groups         Name        Std.Dev.
 Worker:Machine (Intercept) 3.7295  
 Worker         (Intercept) 4.7811  
 Residual                   0.9616  
Number of obs: 54, groups:  Worker:Machine, 18; Worker, 6
Fixed Effects:
(Intercept)     MachineB     MachineC  
     52.356        7.967       13.917

누구든지 모델의 차이점과 직관적 인 방식으로 m1축소 된 m2(복합 대칭) 방법을 설명 할 수 있습니까 ?


6
+1, 그리고 imho, 이것은 절대적으로 주제입니다. 다시 열려면 투표하십시오.
amoeba는 Reinstate Monica

2
@ 피터 플로 (Peter Flom) 왜이 질문을 주제가 아닌 것으로 생각하십니까?
statmerkur

3
lme4구문 보다는 모델에 대해 묻는 것이 확실하지 않을 수 있습니다 . 익숙하지 않은 사람들을 위해 설명하면 잠재적 답변자 풀을 넓히고 유용하게 사용할 수 있습니다 lme4.
Scortchi-Monica Monica 복원

코딩에 관한 것 같습니다.
Peter Flom-Monica Monica 복원

1
유용한 경우 lme4 구문이 수행하는 작업과 혼합 모델의 상황에서 복합 대칭이 무엇인지에 대한 두 가지 유용한 게시물이 있습니다 (두 질문 모두에 대한 답변 참조). stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheetstats.stackexchange.com/questions/15102/…
Jacob Socolar

답변:


11

Inn1nnyμγγy

yN(μ+γ,σy2I54)

σy2

γ

yN(μ,σy2I54+Σ)

ΣγΣ

m1

γ=Zθ

Z=I1813θT=[θ1,A,θ1,B,θ1,Cθ6,A,θ6,B,θ6,C]

θN(0,I6Λ)

ΛΛσθτ

Λ=[σθ2+τ2τ2τ2τ2σθ2+τ2τ2τ2τ2σθ2+τ2]

Λ

Σ=Z(I6Λ)ZTσθ2+τ2+σy2i,ju,v

cov(yi,u,yj,v)={0if ijτ2if i=j,uvσθ2+τ2if i=j,u=v

의 경우 m2랜덤 효과는 다음 과 같이 분해됩니다.

γ=Zω+Xη

X=I619ωT=[ω1,A,ω1,B,ω1,C,,ω6,A,ω6,B,ω6,C]ηT=[η1,,η6]

ηN(0,ση2I6)
ωN(0,σω2I18)
ση2,σω2

m2Σ=σω2ZZT+ση2XXTσω2+ση2+σy2i,ju,v

cov(yi,u,yj,v)={0if ijση2if i=j,uvσω2+ση2if i=j,u=v

σθ2σω2τ2ση2 m1

간결함은 저의 장점이 아닙니다. 이것은 각 모델이 랜덤 효과에 대해 두 가지 분산 매개 변수를 가지고 있으며 동일한 "마진"모델을 작성하는 두 가지 다른 방법이라는 말의 길고 복잡한 방법입니다.

코드에서 ...

sigma_theta <- 1.8
tau         <- 0.5
sigma_eta   <- tau
sigma_omega <- sigma_theta
Z <- kronecker(diag(18), rep(1,3))
rownames(Z) <- paste(paste0("worker", rep(1:6, each=9)), 
                     rep(paste0("machine", rep(1:3, each=3)),6))
X <- kronecker(diag(6), rep(1,9))
rownames(X) <- rownames(Z)
Lambda <- diag(3)*sigma_theta^2 + tau^2

# marginal covariance for m1:
Z%*%kronecker(diag(6), Lambda)%*%t(Z)
# for m2:
X%*%t(X)*sigma_eta^2 + Z%*%t(Z)*sigma_omega^2

1
아주 좋은 답변입니다! 그러나 동일한 세 대의 컴퓨터가 둘 이상의 작업자 레벨에 표시되므로 "작업자 내에 중첩 된 컴퓨터"라는 문구가 잘못 될 수 있습니다.
statmerkur

@statmerkur 감사합니다, 나는이 라인을 명확히하려고 노력했습니다. 다른 제안이 있으면 알려주세요.
네이트 교황

1
XX=I619

1
@ S.Catterall Yup, 그것은 오타입니다-붙잡아 주셔서 감사합니다! 나는 대답을 고쳤다.
네이트 교황

2
@statmerkur 무슨 뜻인지 알 수 있습니까? 여기에는 연속 공변량이 없으므로 "기울기"가 무엇을 의미하는지 확실하지 않습니다. 모델을 생각하는 방식은 기계 간의 반응 평균 (고정 효과)에 체계적인 차이가 있다는 것입니다. 그런 다음 각 근로자에 ​​대한 무작위 편차 (무작위 가로 채기 / 작업자); 각 기계 작업자 조합에 대한 임의 편차; 그리고 마지막으로 관측 당 임의의 편차. 근로자 당 무작위 편차의 편차가 클수록 주어진 근로자의 상관 관계는 더욱 높아질 것입니다.
Nate Pope
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.