18  Univariate regressions, reported as a table

Author

Chrissy h Roberts

18.1 Univariate Regressions - reported as a table

The tbl_uvregression() function produces a table of univariate regression models. The function is a wrapper for tbl_regression(), and as a result, accepts nearly identical function arguments. The function’s results can be modified in similar ways to tbl_regression().

This example uses the built-in trial data set

library (gtsummary)
library(tidyverse)
library(knitr)

Show the data set

kable(head(trial,50))
trt age marker stage grade response death ttdeath
Drug A 23 0.160 T1 II 0 0 24.00
Drug B 9 1.107 T2 I 1 0 24.00
Drug A 31 0.277 T1 II 0 0 24.00
Drug A NA 2.067 T3 III 1 1 17.64
Drug A 51 2.767 T4 III 1 1 16.43
Drug B 39 0.613 T4 I 0 1 15.64
Drug A 37 0.354 T1 II 0 0 24.00
Drug A 32 1.739 T1 I 0 1 18.43
Drug A 31 0.144 T1 II 0 0 24.00
Drug B 34 0.205 T3 I 0 1 10.53
Drug B 42 0.513 T1 III 0 0 24.00
Drug B 63 0.060 T3 I 1 0 24.00
Drug B 54 0.831 T4 III 0 1 14.34
Drug B 21 0.258 T4 I 0 1 12.89
Drug B 48 0.128 T1 I 0 1 22.68
Drug B 71 0.445 T4 III 0 1 8.71
Drug A 38 2.083 T4 III 1 0 24.00
Drug B 49 0.157 T2 II 0 1 15.21
Drug A 57 0.066 T1 III 0 0 24.00
Drug A 46 0.325 T1 II 0 0 24.00
Drug A 47 0.266 T2 I 0 0 24.00
Drug A 52 0.719 T2 II 0 0 24.00
Drug A 61 1.713 T4 I 0 1 16.92
Drug A 38 0.096 T4 I 0 1 23.89
Drug B 34 0.105 T4 II 0 1 6.32
Drug B 49 0.043 T2 III 0 1 15.77
Drug A 63 0.981 T4 II 1 0 24.00
Drug B 67 1.156 T1 II 0 0 24.00
Drug B 68 0.105 T4 II 0 1 15.45
Drug A 78 0.175 T3 I 1 1 17.43
Drug B 36 0.309 T1 III 1 0 24.00
Drug A 37 1.869 T2 II 0 1 20.90
Drug B 53 2.008 T3 I 0 0 24.00
Drug A 36 1.894 T3 I 1 0 24.00
Drug A 51 0.160 T3 I 0 0 24.00
Drug A 48 1.209 T3 III NA 1 21.19
Drug B 57 0.108 T1 II 0 1 12.52
Drug A 31 0.611 T1 II 1 0 24.00
Drug B 37 0.222 T4 III 0 1 15.59
Drug B 28 0.803 T4 II 0 1 18.00
Drug B 40 0.370 T3 II 0 1 18.02
Drug B 49 NA T1 III 1 1 12.43
Drug A 61 0.177 T4 III 0 1 12.10
Drug B 56 1.479 T3 I 1 0 24.00
Drug A 54 0.161 T4 III 1 1 17.42
Drug B 71 0.737 T1 I 1 0 24.00
Drug A 38 0.124 T1 III 1 0 24.00
Drug B 31 0.092 T2 II 0 0 24.00
Drug B 48 0.385 T1 II 0 1 12.19
Drug B NA 0.210 T4 II 0 1 10.02

Perform univariate analyses

trial %>%

  select(response, age, grade) %>%

  tbl_uvregression(
    method = glm,
    y = response,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    pvalue_fun = ~style_pvalue(.x, digits = 2)
  ) %>%
  add_global_p() %>%  # add global p-value 
  add_nevent() %>%    # add number of events of the outcome
  add_q() %>%         # adjusts global p-values for multiple testing
  bold_p() %>%        # bold p-values under a given threshold (default 0.05)
  bold_p(t = 0.10, q = TRUE) %>% # now bold q-values under the threshold of 0.10
  bold_labels()
Characteristic N Event N OR1 95% CI1 p-value q-value2
Age 183 58 1.02 1.00, 1.04 0.091 0.18
Grade 193 61

0.93 0.93
    I



    II

0.95 0.45, 2.00

    III

1.10 0.52, 2.29

1 OR = Odds Ratio, CI = Confidence Interval
2 False discovery rate correction for multiple testing