如何在数据框中的所有连续变量之间执行和存储线性回归模型?

How can I perform and store linear regression models between all continuous variables in a data frame?

假设我在 R 中使用 mtcars,我想在所有可能的数字变量组合之间执行线性回归,并将它们存储(在列表中,或者如果有更好的数据结构,则可能是不同的数据结构一)。我将如何做到这一点?我看过类似的帖子,比如 ,但这种方法只运行 col1 对 col2 的回归,col1 对 col3 的回归......等等。我想要一个也在 col2 和 col3 之间运行回归的解决方案(即所有成对比较)。任何帮助将不胜感激。

假设您需要在 mtcars 的所有列之间进行成对比较,您可以使用 combn() 函数来查找所有成对比较 (2),并执行所有线性模型:

combinations <- combn(colnames(mtcars), 2)

forward <- list()
reverse <- list()

for(i in 1:ncol(combinations)){
  forward[[i]] <- lm(formula(paste0(combinations[,i][1], "~", combinations[,i][2])), data = mtcars)

  reverse[[i]] <- lm(formula(paste0(combinations[,i][2], "~", combinations[,i][1])), data = mtcars)
}

all <- c(forward, reverse)

all 将是您的列表,其中包含所有线性模型,以及两个变量之间关联的正向和反向。

如果你想要三个变量之间的组合,你可以combn(colnames(mtcars), 3),依此类推。