使用 glm 对多个预测变量进行单变量逻辑回归分析

Univariate logistic regression analysis with glm on multiple predictors

所以我正在尝试对我拥有的一些数据进行单变量逻辑回归分析。

基本上我有一个包含 1 个响应变量和 50 个预测变量的数据框。

为了分析它,我只是使用 glm 函数作为:

glm(response_var~predictor_var1, data = mydata, family = binomial(link=logit))

但是,我不想为所有 50 个预测变量手动执行此操作,而且循环似乎在这里不起作用。我试过这样说:

predictors <- colnames(mydata)[-c(1)]

glm_list <- list()
i <- 1
for (predictor in predictors) {
    model <- glm(response_var~predictor, data = mydata, family = binomial(link=logit))
    glm_list[[i]] <- model
    i <- i + 1
}

所以在这里我只是通过 colnames.

创建一个列表,其中包含数据框中的预测变量名称

但是在这样做时我得到了错误:

variable lengths differ (found for 'predictors')

我做错了什么?

尝试 lapply 和 as.formula():

"%+%" <- function(x,y) paste(x, y, sep = "")

lapply(predictors, function(x){
  glm(as.formula("response_var ~ " %+% x), data = mydata, family = binomial(link = logit))
})

您正在传递一个字符向量,首先您必须将其强制转换为公式。

希望对您有所帮助。