首页 > 解决方案 > 多元线性回归的循环

问题描述

嗨,我开始使用 r 并且一直在分析我的数据。我有一个包含 80 列的数据框。第 1 列是因变量,第 2 列到第 80 列是自变量。我想执行 78 个多元线性回归,将模型的第一个自变量固定(第 2 列)并创建一个列表,我可以在其中保存所有回归,以便以后能够使用 AIC 分数比较模型。我该怎么做?

这是我的循环

data.frame

for(i in 2:80)

{
Regressions <- lm(data.frame$column1 ~ data.frame$column2 + data.frame [,i])  
}

标签: rloopslinear-regression

解决方案


iris数据集为例,您可以执行以下操作:

lapply(seq_along(iris)[-c(1:2)], function(x) lm(data = iris[,c(1:2, x)]))

[[1]]

Call:
lm(data = iris[, c(1:2, x)])

Coefficients:
 (Intercept)   Sepal.Width  Petal.Length  
      2.2491        0.5955        0.4719  


[[2]]

Call:
lm(data = iris[, c(1:2, x)])

Coefficients:
(Intercept)  Sepal.Width  Petal.Width  
     3.4573       0.3991       0.9721  


[[3]]

Call:
lm(data = iris[, c(1:2, x)])

Coefficients:
      (Intercept)        Sepal.Width  Speciesversicolor   Speciesvirginica  
           2.2514             0.8036             1.4587             1.9468  

这是有效的,因为当您将数据框传递给lm()没有公式时,它会DF2formula()在引擎盖下应用该函数,该函数将第一列视为响应,将所有其他列视为预测变量。


推荐阅读