Biomarker Analysis Catalog - Dev
  • Dev
    • Stable
  1. Tables
  2. CPMT
  3. CPMT2
  • Index

  • Tables
    • CPMT
      • CPMT1
      • CPMT2
        • CPMT2A
      • CPMT3
    • DT
      • DT1
        • DT1A
        • DT1B
        • DT1C
      • DT2
        • DT2A
    • TET
      • TET1
        • TET1A

  • Graphs
    • AG
      • AG1
    • DG
      • DG1
        • DG1A
        • DG1B
      • DG2
      • DG3
        • DG3A
      • DG4
    • KG
      • KG1
        • KG1A
        • KG1B
      • KG2
        • KG2A
      • KG3
      • KG4
        • KG4A
        • KG4B
      • KG5
        • KG5A
        • KG5B
    • RFG
      • RFG1
        • RFG1A
      • RFG2
        • RFG2A
        • RFG2B
        • RFG2C
      • RFG3
    • RG
      • RG1
        • RG1A
        • RG1B
        • RG1C
      • RG2
        • RG2A
      • RG3
        • RG3A
        • RG3B
    • SPG
      • SPG1
      • SPG2
    • RNAG
      • RNAG1
      • RNAG2
      • RNAG3
      • RNAG4
      • RNAG5
      • RNAG6
      • RNAG7
      • RNAG8
      • RNAG9
      • RNAG10
    • SFG
      • SFG1
        • SFG1A
        • SFG1B
      • SFG2
        • SFG2A
        • SFG2B
        • SFG2C
        • SFG2D
      • SFG3
        • SFG3A
      • SFG4
      • SFG5
        • SFG5A
        • SFG5B
        • SFG5C
      • SFG6
        • SFG6A
        • SFG6B
        • SFG6C
  1. Tables
  2. CPMT
  3. CPMT2

CPMT2

Cox Proportional Hazards Model Tables with Multiple Covariates

CPM

  • Setup
  • Table
  • Session Info

We prepare the data similarly as in CPMT1.

Code
library(tern)
library(dplyr)

adtte <- random.cdisc.data::cadtte %>%
  df_explicit_na() %>%
  filter(PARAMCD == "OS", BEP01FL == "Y") %>%
  mutate(
    AVAL = day2month(AVAL),
    AVALU = "Months",
    is_event = CNSR == 0
  ) %>%
  var_relabel(
    BMRKR1 = "Biomarker (Continuous)",
    BMRKR2 = "Biomarker (Categorical)"
  )

The multivariate Cox Proportional Hazards model can be displayed in a summary table using the summarize_coxreg function from tern with the multivar argument set to TRUE. Like the corresponding model fitting function fit_coxreg_multivar(), we specify the time, event, arm and covariates in a variables list, and any further customizations via the control argument. Note that the default confidence level is 95% but this can be customized via the conf_level element in control.

Rather than fitting the model and then tidying the output via the broom::tidy() function, we can directly input these three arguments into the summarize_coxreg() function to summarize the model fit in a table layout, building the table with our pre-processed adtte data set.

Code
result <- basic_table() %>%
  summarize_coxreg(
    variables = list(
      time = "AVAL",
      event = "is_event",
      arm = "ARM",
      covariates = c("AGE", "BMRKR1", "BMRKR2")
    ),
    multivar = TRUE
  ) %>%
  append_topleft("Effect/Covariate Included in the Model") %>%
  build_table(adtte)

result
Effect/Covariate Included in the Model                 Hazard Ratio      95% CI      p-value
————————————————————————————————————————————————————————————————————————————————————————————
Treatment:                                                                                  
  Description of Planned Arm (reference = A: Drug X)                                 0.0164 
    B: Placebo                                             1.15       (0.66, 1.99)   0.6217 
    C: Combination                                         1.95       (1.19, 3.21)   0.0080 
Covariate:                                                                                  
  Age                                                                                       
    All                                                    1.01       (0.98, 1.04)   0.4993 
  Biomarker (Continuous)                                                                    
    All                                                    1.01       (0.96, 1.07)   0.6755 
  Biomarker (Categorical) (reference = LOW)                                          0.7350 
    MEDIUM                                                 1.01       (0.62, 1.67)   0.9558 
    HIGH                                                   0.84       (0.50, 1.40)   0.5054 
Code
sessionInfo()
R version 4.4.1 (2024-06-14)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 22.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: Etc/UTC
tzcode source: system (glibc)

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] dplyr_1.1.4           tern_0.9.5.9022       rtables_0.6.9.9014   
[4] magrittr_2.0.3        formatters_0.5.9.9001

loaded via a namespace (and not attached):
 [1] Matrix_1.7-0                  gtable_0.3.5                 
 [3] jsonlite_1.8.8                compiler_4.4.1               
 [5] tidyselect_1.2.1              stringr_1.5.1                
 [7] tidyr_1.3.1                   splines_4.4.1                
 [9] scales_1.3.0                  yaml_2.3.10                  
[11] fastmap_1.2.0                 lattice_0.22-6               
[13] ggplot2_3.5.1                 R6_2.5.1                     
[15] generics_0.1.3                knitr_1.48                   
[17] forcats_1.0.0                 rbibutils_2.2.16             
[19] htmlwidgets_1.6.4             backports_1.5.0              
[21] checkmate_2.3.2               tibble_3.2.1                 
[23] car_3.1-2                     munsell_0.5.1                
[25] pillar_1.9.0                  rlang_1.1.4                  
[27] utf8_1.2.4                    broom_1.0.6                  
[29] stringi_1.8.4                 xfun_0.47                    
[31] cli_3.6.3                     Rdpack_2.6.1                 
[33] digest_0.6.37                 grid_4.4.1                   
[35] lifecycle_1.0.4               vctrs_0.6.5                  
[37] evaluate_0.24.0               glue_1.7.0                   
[39] codetools_0.2-20              abind_1.4-8                  
[41] survival_3.7-0                carData_3.0-5                
[43] random.cdisc.data_0.3.15.9009 fansi_1.0.6                  
[45] colorspace_2.1-1              purrr_1.0.2                  
[47] rmarkdown_2.28                tools_4.4.1                  
[49] pkgconfig_2.0.3               htmltools_0.5.8.1            

Reuse

Copyright 2023, Hoffmann-La Roche Ltd.
CPMT
CPMT2A
Source Code
---
title: CPMT2
subtitle: Cox Proportional Hazards Model Tables with Multiple Covariates
categories: [CPM]
---

------------------------------------------------------------------------

::: panel-tabset
{{< include setup.qmd >}}

## Table

The multivariate Cox Proportional Hazards model can be displayed in a summary table using the `summarize_coxreg` function from `tern` with the `multivar` argument set to `TRUE`.
Like the corresponding model fitting function `fit_coxreg_multivar()`, we specify the time, event, arm and covariates in a `variables` list, and any further customizations via the `control` argument.
Note that the default confidence level is 95% but this can be customized via the `conf_level` element in `control`.

Rather than fitting the model and then tidying the output via the `broom::tidy()` function, we can directly input these three arguments into the `summarize_coxreg()` function to summarize the model fit in a table layout, building the table with our pre-processed `adtte` data set.

```{r}
result <- basic_table() %>%
  summarize_coxreg(
    variables = list(
      time = "AVAL",
      event = "is_event",
      arm = "ARM",
      covariates = c("AGE", "BMRKR1", "BMRKR2")
    ),
    multivar = TRUE
  ) %>%
  append_topleft("Effect/Covariate Included in the Model") %>%
  build_table(adtte)

result
```

{{< include ../../misc/session_info.qmd >}}
:::

Made with ❤️ by the Statistical Engineering Team StatisticalEngineering

  • License

  • Edit this page
  • Report an issue
Cookie Preferences