循环线性回归不同的预测变量和结果变量

时间:2017-08-28 16:51:41

标签: r loops apply linear-regression

我是R的新手,但我正在慢慢学习分析数据集。

假设我有一个包含8个变量和20个观测值的数据框。在8个变量中,V1 - V3是预测变量,V4 - V8是结果。

B = matrix(c(1:160),
nrow = 20,
ncol = 8,)

df <- as.data.frame(B)

使用car包来执行简单的线性回归,显示摘要和置信区间为:

fit <- lm(V4 ~ V1, data = df)
summary(fit)
confint(fit)

如何编写代码(loopapply)以便R单独回归每个结果的每个预测变量并提取系数和置信区间?我意识到我可能在跑步之前试图跑步,但任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:0)

你可以将你的线包裹在一个lapply调用中,并为每个预测器训练一个线性模型(当然不包括目标)。

my.target <- 4
my.predictors <- 1:8[-my.target]

lapply(my.predictors, (function(i){
  fit <- lm(df[,my.target] ~ df[,i])
  list(summary= summary(fit), confint = confint(fit))
}))

您获得了一份清单。

答案 1 :(得分:0)

因此,我自己的数据中返回错误的代码是:

my.target <- metabdata[c(34)]
my.predictors <- metabdata[c(18 : 23)]

lapply(my.predictors, (function(i){
   fit <- lm(metabdata[, my.target] ~ metabdata[, i])
   list(summary = summary(fit), confint = confint(fit))
   }))

返回:

Error: Unsupported index type: tbl_df