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

CPMT2A

Changing Reference Levels in the Cox Proportional Hazards Model Table

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)"
  )

For changing the reference levels, for example to use placebo as reference for a treatment arm variable, we can just reorder the levels of the corresponding factor variables, and pass the resulting dataset to the model fitting function as before. The forcats package provides convenience functions for the level reordering.

Code
adtte2 <- adtte %>%
  mutate(
    ARM = forcats::fct_relevel(
      ARM,
      "B: Placebo",
      "C: Combination",
      "A: Drug X"
    )
  )

Now we can proceed in the same way as in CPMT2.

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(adtte2)

result
Effect/Covariate Included in the Model                  Hazard Ratio      95% CI      p-value
—————————————————————————————————————————————————————————————————————————————————————————————
Treatment:                                                                                   
  Description of Planned Arm (reference = B: Placebo)                                 0.0164 
    C: Combination                                          1.70       (1.03, 2.82)   0.0394 
    A: Drug X                                               0.87       (0.50, 1.51)   0.6217 
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.2 (2024-10-31)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 24.04.1 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.26.so;  LAPACK version 3.12.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.7        rtables_0.6.11    magrittr_2.0.3   
[5] formatters_0.5.10

loaded via a namespace (and not attached):
 [1] Matrix_1.7-2             gtable_0.3.6             jsonlite_1.9.0          
 [4] compiler_4.4.2           tidyselect_1.2.1         stringr_1.5.1           
 [7] tidyr_1.3.1              splines_4.4.2            scales_1.3.0            
[10] yaml_2.3.10              fastmap_1.2.0            lattice_0.22-6          
[13] ggplot2_3.5.1            R6_2.6.1                 generics_0.1.3          
[16] Formula_1.2-5            knitr_1.49               forcats_1.0.0           
[19] rbibutils_2.3            htmlwidgets_1.6.4        backports_1.5.0         
[22] checkmate_2.3.2          tibble_3.2.1             car_3.1-3               
[25] munsell_0.5.1            pillar_1.10.1            rlang_1.1.5             
[28] broom_1.0.7              stringi_1.8.4            xfun_0.51               
[31] cli_3.6.4                Rdpack_2.6.2             digest_0.6.37           
[34] grid_4.4.2               lifecycle_1.0.4          vctrs_0.6.5             
[37] evaluate_1.0.3           glue_1.8.0               nestcolor_0.1.3         
[40] codetools_0.2-20         abind_1.4-8              survival_3.8-3          
[43] carData_3.0-5            random.cdisc.data_0.3.16 colorspace_2.1-1        
[46] rmarkdown_2.29           purrr_1.0.4              tools_4.4.2             
[49] pkgconfig_2.0.3          htmltools_0.5.8.1       

Reuse

Copyright 2023, Hoffmann-La Roche Ltd.
CPMT2
CPMT3
Source Code
---
title: CPMT2A
subtitle: Changing Reference Levels in the Cox Proportional Hazards Model Table
categories: [CPM]
---

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

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

## Table

For changing the reference levels, for example to use placebo as reference for a treatment arm variable, we can just reorder the levels of the corresponding factor variables, and pass the resulting dataset to the model fitting function as before.
The `forcats` package provides convenience functions for the level reordering.

```{r}
adtte2 <- adtte %>%
  mutate(
    ARM = forcats::fct_relevel(
      ARM,
      "B: Placebo",
      "C: Combination",
      "A: Drug X"
    )
  )
```

Now we can proceed in the same way as in [CPMT2](cpmt02.qmd).

```{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(adtte2)

result
```

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

Made with ❤️ by the Statistical Engineering Team StatisticalEngineering

  • License

  • Edit this page
  • Report an issue
Cookie Preferences