2017-12-22 34 views
0

다른 5 개의 DV가 중첩 된 3 개의 독립 변수 (IV), 1 개의 종속 변수 (DV) 및 IV group이 있습니다. 나는 R. 현재의 모델에 5 개의 IV의 모든 조합을 시도하여 (계층 선형 모델에서) 모델 구조를 탐구하고, 내 방법은 다음과 같이 수동 모델 구조를 작성한다 :루프에서 가능한 모든 모델 실행

glmer(DV ~ IV1 + (1|group), data = df) 
glmer(DV ~ IV2 + (1|group), data = df) 
glmer(DV ~ IV3 + (1|group), data = df) 
glmer(DV ~ IV1 + IV2 + (1|group), data = df) 
glmer(DV ~ IV1 + IV3 + (1|group), data = df) 
# etc... 

어떻게 할 수 루프에서 가능한 모든 모델을 우아하게 실행합니까?

도움 주셔서 감사합니다.

+2

MuMIn의'dredge'도'glmer'를위한 모든 모델 조합을 할 수 있다고 생각합니다. – patL

+2

아니면 전체 모델을 만들고'drop1'을 사용할 수 있습니다. –

+0

'drop1'은 드롭 한 후에도 어떤 점에서 다시 추가해야하기 때문에 문제가 해결되지 않습니다. 예를 들어 1,2,3을 놓고 3을 떨어 뜨리면 1,2가되므로 1,3 또는 2,3이되도록 다시 추가해야합니다. – Onyambu

답변

0

또한 사용할 수있는 조합은 : 당신은 또한

Map(combn,list(s),1:3,c(function(x)glmer(reformulate(c(x,"(1|group)"),"D"),data=df)),simplify=F) 

: 당신이 긴 줄의 코드로 상관하지 않는 경우

s=paste0("IV",1:3) 
A=Map(combn,list(s),1:3,c(function(x)reformulate(c(x,"(1|group)"),"D")),simplify=F) 
rapply(A,glmer,data=df) 

, 당신은뿐만 아니라 첫 번째 줄에 glmer 기능을 포함 할 수 있습니다 위의 코드를 여러 줄로 나눌 수 있습니다.

s=paste0("IV",1:3) 
A=Map(combn,list(s),1:3,c(function(x)paste0(c(x,"(1|group)"),collapse="+")),simplify=F) 
B=rapply(A,reformulate,response="D") 
lapply(B,glmer,data=df) 

나는 그것을 부숴 야한다. rther, 가능하다하더라도