2017-12-22 21 views
0

3つの独立変数(IV)、1つの従属変数(DV)、およびIV groupがあり、他の5つのDVはネストされています。私は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

:あなたは、あなたが同様に最初の行でglmer機能を含めることができ、長い行のコードを気にしない場合は

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) 

を:

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)paste0(c(x,"(1|group)"),collapse="+")),simplify=F) 
B=rapply(A,reformulate,response="D") 
lapply(B,glmer,data=df) 

私はそれを分解することをお勧めしませんrther、可能であれば

関連する問題