【问题标题】:Univariate logistic regression analysis with glm on multiple predictors使用 glm 对多个预测变量进行单变量逻辑回归分析
【发布时间】:2019-03-20 14:23:19
【问题描述】:

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

基本上我有一个包含 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')

我在这里做错了什么?

【问题讨论】:

  • 请参阅hereherehere,了解解决此问题的各种不同方法。

标签: r glm


【解决方案1】:

尝试使用 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))
})

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2022-08-24
    • 2021-01-21
    • 2020-07-30
    • 2018-08-11
    • 2020-08-19
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多