2017-11-15 15 views
0

제목에서 lme4 (또는 다른 패키지?) 객체에서 행렬을 추출하려고합니다. 이 행렬은 G라고하고 있습니다 SAS 표기법에서 임의 효과(i) 임의 효과의 분산 공분산 행렬 및/또는 (ii) lme4의 혼합 모델 방정식 해를 행렬로 추출 하시겠습니까?

https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mixed_sect022.htm

분산 - 공분산 행렬 : 나는 그것이 SAS 설명서를 참조하는 것이 가장 쉬운 방법이라고 생각 정확하게 원하는 명확 무엇을 만들려면 랜덤 효과 파라미터의 분산 - 공분산 행렬 감마. PROC MIXED 및 Output Delivery System에서 "G"옵션을 사용하면 G을 매트릭스로 사용합니다.

일단 분산 구성 요소와 감마 치수가 있으면이 행렬을 수동으로 구성하는 것이 상대적으로 간단하다는 것을 알고 있습니다. 그럼에도 불구하고 나는 더 간단한 방법이있을 것으로 예상했다.

혼합 모델 방정식 C라고 표기 SAS 이러한 용액

. PROC MIXED 및 출력 전달 시스템에서 "MMEQSOL"옵션을 사용하면 혼합 모형 방정식에 대한 해는 물론 역 계수 행렬을 요청할 수 있습니다. 관심있는 후자입니다.

미리 감사드립니다! 그림

답변

1

없음 매우 합리적인 모델 (?lme4::cake 참조) 합리적인 :

library(lme4) 
fm1 <- lmer(angle ~ temperature + 
      (1|recipe)+(1|replicate), cake) 

VarCorr() 방법 (이 경우, 각 용어에 대한 분산 공분산 행렬의 목록 제공 각 1 × 1이고) 자체 인쇄 방법 :

v <- VarCorr(fm1) 

넌,132에서 bdiag() (블록 대각) 함수를 사용하여 단일 매트릭스에 이들을 결합 할 10 (as.matrix()은 스파 스 매트릭스에서 표준 (조밀 한) R 매트릭스 객체로 변환).

as.matrix(Matrix::bdiag(v)) 
##   [,1]  [,2] 
## [1,] 39.21541 0.0000000 
## [2,] 0.00000 0.4949681 

C 행렬은 불행히도 쉽게 얻을 수 없습니다. vignette("lmer",package="lme4")에서 설명한 것처럼 lme4은 Henderson 방정식을 사용하지 않습니다. C (고정 효과의 분산 공분산 행렬)의 위쪽 블록은 vcov()을 통해 액세스 할 수 있지만 분산의 분산 공분산 행렬은 쉽지 않습니다. here.