如何为回归模型循环创建一系列交互?

问题描述 投票:0回答:1

我的目标是通过交互列表向量的第一个元素来运行预测列表向量中的每个变量,然后对交互列表向量的第二个元素重复该过程,依此类推...

当前代码(见下文)仅按每个变量顺序运行每个模型(即,第一个列表的第一个元素通过第二个列表的第一个元素,依此类推。

如何为此目的修复下面的代码?!谢谢!

predictorlist <- c(colnames(data_mvpa2)[3:9], "`Social norm`",colnames(data_mvpa2)[11])
interactionlist <- colnames(data_mvpa2)[c(12, 14:17,19:21)]

for (i in interactionlist){
  for (j in predictorlist) {
  factor=c(paste(i,j,sep=':'))
  model <- lmer(paste("MVPA_min_week ~
                      week + GENDER + AGEBAND + ETHNIC + SES + BMIBAND + OPSYS +
                      (1|ID) +", factor), data=data_mvpa2)
  print(summary(model))
    } 
  }
r loops for-loop regression
1个回答
0
投票

大致如下:

v <- c("x1", "x2", "x3")

for (i in 1:2) {
  for (j in (i + 1):3) {
    trm <- paste(v[i], v[j], sep = ":")
    print(update.formula(y ~ x1 + x2 + x3, reformulate(c(".", trm), ".")))
  }
}

# y ~ x1 + x2 + x3 + x1:x2
# y ~ x1 + x2 + x3 + x1:x3
# y ~ x1 + x2 + x3 + x2:x3
© www.soinside.com 2019 - 2024. All rights reserved.