在单个数据框中获取多个回归的结果

lM_*_*__3 1 r tidy logistic-regression

我有一个像这样的数据框,有 10 列酒精(从酒精1到酒精10)

\n
ID  Status  matching  Alcohol1  Alcohol2\n 1     1       1           1      0\n 2     0       1           0      1\n 3     0       2           0      1\n 4     1       2           0      0\n
Run Code Online (Sandbox Code Playgroud)\n

我有许多逻辑回归模型可以使用酒精列作为解释变量来运行。我创建了一个执行此操作的函数。

\n

现在我想在一个数据框中汇总所有模型的结果。\n我需要估计系数、95% 置信区间的下限、上限和 p 值。我设法获得了估计系数和 p 值,但无法获得置信区间(或也适合的方差)(通常通过摘要获得)

\n

以下是我使用的功能:

\n
library(broom)\nlibrary(purrr)\n\nf1 <- function(column) {\n  tidy(clogit(\n    as.formula(\n     paste("status ~", column, "+ strata(matching)")),\n    data = table\n  ))\n }\n\nmodel_results <- map_dfr(\n  set_names(names(table)[4:14]), \n  f1\n)\n
Run Code Online (Sandbox Code Playgroud)\n

预期的结果会是这样的

\n
term      estimate   lower.95   upper.95    pvalue\nAlcohol1                \nAlcohol2                \n\xe2\x80\xa6               \n
Run Code Online (Sandbox Code Playgroud)\n

预先感谢您的帮助

\n

Ben*_*ker 5

您还没有真正给我们一个可重现的示例,但我猜测添加conf.int = TRUE到您的tidy()调用将执行您想要的操作(默认名称是conf.low和,如果您愿意conf.high,您可以添加调用)。rename

我为了好玩而将工作流程设置为“pipier”(但你的方式非常好)。可能需要一些select东西,或者可能添加一个.id = 参数map_dfr(没有 MCVE 就无法判断)。

model_results <- (
 names(table)[4:14]
   %>% set_names()
   %>% map(~ reformulate(c(., "strata(matching)"), response = "status"))
   %>% map(clogit, data = table)
   %>% map_dfr(tidy, conf.int = TRUE, .id = "column")
)
Run Code Online (Sandbox Code Playgroud)