Biomarker Analysis Catalog - Dev
  • Dev
    • Stable
  1. Tables
  2. CPMT
  3. CPMT3
  • 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. CPMT3

CPMT3

Cox Proportional Hazards Model Tables with Separate Models for Each Covariate

CPM

  • Setup
  • Table
  • Session Info

We prepare the data in the same way 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",
    event = 1 - CNSR
  )

The separate Cox Proportional Hazards models for each covariate can be fitted and summarized in a table using the summarize_coxreg() function in tern. This function takes the same variables, at, and control arguments that are used to fit a model using the fit_coxreg_univar() function - specifying the time, event and covariate in a variables list, and control and at with any further customizations to the model. Note that the default confidence level is 95% but this can be customized via the conf_level element in control.

We input these three arguments into the summarize_coxreg() function to summarize the model fit in a table layout, and then build the table with our pre-processed adtte data set.

Code
lyt <- basic_table() %>%
  summarize_coxreg(
    variables = list(
      time = "AVAL",
      event = "event",
      covariates = c("COUNTRY", "AGE")
    )
  )

build_table(lyt = lyt, df = adtte)
                              Hazard Ratio      95% CI      p-value
———————————————————————————————————————————————————————————————————
Covariate:                                                         
  Country (reference = CHN)                                 0.1604 
    USA                           1.67       (0.87, 3.19)   0.1230 
    BRA                           0.43       (0.17, 1.07)   0.0698 
    PAK                           0.38       (0.12, 1.22)   0.1043 
    NGA                           1.67       (0.76, 3.66)   0.2048 
    RUS                           0.91       (0.33, 2.50)   0.8488 
    JPN                           1.40       (0.51, 3.85)   0.5206 
    GBR                           0.78       (0.24, 2.49)   0.6738 
    CAN                           1.31       (0.41, 4.21)   0.6460 
  Age                                                              
    All                           1.01       (0.98, 1.03)   0.5600 
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.
CPMT2A
DT
Source Code
---
title: CPMT3
subtitle: Cox Proportional Hazards Model Tables with Separate Models for Each Covariate
categories: [CPM]
---

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

::: panel-tabset
## Setup

We prepare the data in the same way as in [CPMT1](../tables/cpmt01.qmd).

```{r, message = FALSE}
library(tern)
library(dplyr)

adtte <- random.cdisc.data::cadtte %>%
  df_explicit_na() %>%
  filter(PARAMCD == "OS", BEP01FL == "Y") %>%
  mutate(
    AVAL = day2month(AVAL),
    AVALU = "Months",
    event = 1 - CNSR
  )
```

## Table

The separate Cox Proportional Hazards models for each covariate can be fitted and summarized in a table using the `summarize_coxreg()` function in `tern`.
This function takes the same `variables`, `at`, and `control` arguments that are used to fit a model using the `fit_coxreg_univar()` function - specifying the time, event and covariate in a `variables` list, and `control` and `at` with any further customizations to the model.
Note that the default confidence level is 95% but this can be customized via the `conf_level` element in `control`.

We input these three arguments into the `summarize_coxreg()` function to summarize the model fit in a table layout, and then build the table with our pre-processed `adtte` data set.

```{r}
lyt <- basic_table() %>%
  summarize_coxreg(
    variables = list(
      time = "AVAL",
      event = "event",
      covariates = c("COUNTRY", "AGE")
    )
  )

build_table(lyt = lyt, df = adtte)
```

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

Made with ❤️ by the Statistical Engineering Team StatisticalEngineering

  • License

  • Edit this page
  • Report an issue
Cookie Preferences