我的数据框包含二进制结果列(y
)和多个独立预测列(x1
,x2
,x3
...)。
我想运行许多单变量逻辑回归模型(例如y ~ x1
,y ~ x2
,y ~ x3
),并提取指数系数(优势比),95%置信区间每个模型的p值和数据帧/ tibble的行。在我看来,使用purrr和扫帚的组合应该可以解决这个问题。
This问题类似,但我无法解决以下步骤:
使用引用问题中的示例:
library(tidyverse)
library(broom)
df <- mtcars
df %>%
names() %>%
paste('am~',.) %>%
map(~glm(as.formula(.x), data= df, family = "binomial"))
答案 0 :(得分:2)
睡觉后,解决方案发生在我身上。需要使用map_df
来运行每个模型,并tidy
从每个模型中提取值。
希望这对其他人有用:
library(tidyverse)
library(broom)
df <- mtcars
output <- df %>%
select(-am) %>%
names() %>%
paste('am~',.) %>%
map_df(~tidy(glm(as.formula(.x),
data= df,
family = "binomial"),
conf.int=TRUE,
exponentiate=TRUE)) %>%
filter(term !="(Intercept)")