如何在数据框中的所有连续变量之间执行和存储线性回归模型?
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)
,依此类推。
假设我在 R 中使用 mtcars
,我想在所有可能的数字变量组合之间执行线性回归,并将它们存储(在列表中,或者如果有更好的数据结构,则可能是不同的数据结构一)。我将如何做到这一点?我看过类似的帖子,比如
假设您需要在 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)
,依此类推。