如何做多元logistic回归并展示各个变量的优势比表?

问题描述 投票:0回答:1

各位,我的df是这样的:

或者你可以复制它:

reg_df <- structure(list(NEWDI = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L), age = c(79.93, 75.1, 
59.52, 45.62, 63.25, 69.41, 70.37, 70.57, 72.54, 64.63, 67.41, 
60.29, 71.52, 65.11, 73.52, 57.96, 75.88, 65.35, 73.23, 57.25
), smoke_dummy = c(1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 
1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L), drink_dummy = c(1L, 0L, 
1L, 1L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 
1L, 1L), bmi = c(27.9595, 32.7313, 28.682, 26.8898, 30.556, 25.763, 
26.9286, 45.3568, 33.1924, 29.391, 36.0282, 25.7202, 35.2501, 
27.0999, 35.5935, 30.1911, 32.557, 28.0998, 25.2214, 23.4699), 
    edu_dummy = c(0L, 1L, NA, 0L, 0L, 1L, NA, 0L, NA, NA, 0L, 
    0L, NA, NA, 1L, NA, 0L, 0L, NA, NA), class_dummy = c(3, 1, 
    0, 0, 0, 0, 3, 0, 1, 0, 3, 0, 0, 1, 3, 2, 3, 0, 1, 0), sex_dummy = c(1, 
    0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1)), row.names = c(NA, 
20L), class = "data. Frame")

我想这样做:

model <- glm(NEWDI ~ class_dummy + age + smoke_dummy + drink_dummy +
              bmi + edu_dummy  + sex_dummy,
             data = reg_df, family = "binomial")

summary(model)

我有问题:

我想设置每个X变量值为0作为参考组 回归并查看它们的 OR(除了 class_dummy 值为 0~3,其他 variable_dummy values are 0~1.), smoke_dummy, drink_dummybmi, edu_dummy 和 bmi 有 NA 值,我不确定回归是否可以设置为忽略 NA 值。

谢谢!

r glm
1个回答
0
投票

为了在回归中显示参考组,您需要将

_dummy
变量更改为因子。我使用
data.table
.

做到了这一点

接下来,拟合模型后,您可以使用

tbl_regression
gtsummary
包中创建回归表。

library(data.table)
library(gtsummary)


target <- grep(pattern = "_dummy", names(reg_df), value = T)

setDT(reg_df)[,(target) := lapply(.SD, as.factor), .SDcols=target]

model <- glm(NEWDI ~ class_dummy + age + smoke_dummy + drink_dummy +
               bmi + edu_dummy  + sex_dummy,
             data = reg_df, family = "binomial")


tbl_regression(
  model,
  exponentiate = T,
)
© www.soinside.com 2019 - 2024. All rights reserved.