Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在r循环中运行所有可能的模型_R_Loops_Model - Fatal编程技术网

在r循环中运行所有可能的模型

在r循环中运行所有可能的模型,r,loops,model,R,Loops,Model,我有3个自变量(IV)、1个因变量(DV)和一个IV组,其他5个DV嵌套在其中。我正在探索模型结构(在分层线性模型中),尝试将5个IV的所有组合用于R中的模型。目前,我的方法是手动编写模型结构,如下所示: 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|grou

我有3个自变量(IV)、1个因变量(DV)和一个IV
组,其他5个DV嵌套在其中。我正在探索模型结构(在分层线性模型中),尝试将5个IV的所有组合用于R中的模型。目前,我的方法是手动编写模型结构,如下所示:

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...
如何在循环中优雅地运行所有可能的模型


谢谢你的帮助

您也可以使用以下组合:

 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
函数:

 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)

我不建议进一步分解它,尽管它可能

我猜MuMIn的
Droge
也可以为
glmer
做所有的模型组合。或者你可以制作一个完整的模型,使用
drop1
drop1
将无法解决问题,因为在删除后,你仍然需要在某个点将其添加回来。例如,如果你有1,2,3,那么删除3,你将有1,2,因此你必须将它添加回1,3甚至2,3这是非常好的,但是对于使用R包中可用数据的工作代码来说会更有帮助。