In this vignette we showcase the various plots can be made with the package.
We first start producing the treatment effect estimates for all subgroups, using the unadj
, modav
and bagged
functions.
library(ggplot2)
library(subtee)
################################################################################
# We use the dataset from Rosenkranz (2016) https://onlinelibrary.wiley.com/doi/abs/10.1002/bimj.201500147
# to illustrate the methods proposed in this work.
# The data comes from a clinical trial of an prostate cancer
# treatment
# Data is loaded from Royston, Patrick, and Willi Sauerbrei.
# Multivariable model-building: a pragmatic approach to
# regression anaylsis based on fractional polynomials for
# modelling continuous variables. Vol. 777. John Wiley & Sons, 2008.
# https://www.imbi.uni-freiburg.de/Royston-Sauerbrei-book
= get_prca_data()
prca #> Downloading remote dataset.
## first create candidate subgroups
<- subtee::subbuild(prca, dupl.rm = TRUE,
cand.groups == 1, PF == 1, HX == 1,
BM == 4, AGE > 65, WT > 100)
STAGE <- cbind(prca, cand.groups)
fitdat = names(cand.groups)
subgr.names = as.formula(paste(" ~ ", paste0("`", names(cand.groups),"`", collapse = " + ")))
prog
### Unadjusted estimates
= unadj(resp = "SURVTIME", trt = "RX", subgr = subgr.names,
res_unadj data = fitdat, covars = prog,
event = "CENS", fitfunc = "coxph")
### ModelAveraging estimates
= modav(resp = "SURVTIME", trt = "RX", subgr = subgr.names,
res_modav data = fitdat, covars = prog,
event = "CENS", fitfunc = "coxph")
### Bagged estimates
set.seed(321231) # set seed for reproducible results in the bootstrap samples
= bagged(resp = "SURVTIME", trt = "RX", subgr = subgr.names,
res_bagged data = fitdat, covars = prog,
event = "CENS", fitfunc = "coxph",
select.by = "BIC", B = 200) #B = 2000)
The objects resulting from calling unadj
, modav
and bagged
are subtee
objects that contain the results in a format that can be used to produce plots. For example, the following produces a forest plot showing treatment effect estimates for the subgroups and their complements:
ggplot(aes(y = Subset, x = trtEff, xmin = LB, xmax = UB, colour = Subset),
data = res_unadj$trtEff) +
geom_point(size = 2) +
geom_errorbarh(size = 1, show.legend = FALSE, height = 0) +
facet_grid(Group ~ .)
plot
function provided in the packageThe default option for the generic plot function in the package for subtee
objects shows the treatment effect in subgroups along with their confidence intervals.
plot(res_unadj)
#> Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
#> "none")` instead.
Note that only the treatment effect estimates in subgroups are displayed. Setting the option show.compl = TRUE
displays the treatment effect estimates in both subgroups and complements.
plot(res_unadj, show.compl = TRUE)
When using the plot
function to subtee
objects with unadjusted or model averaging estimates, the same layout is used. However, when the a subtee
object generated with the bagged
funciton is provided. it will only show the selected subgroup.
plot(res_bagged, show.compl = TRUE)
When more than one object is provided, the plot shows the comparison between different estimation techniques.
plot(res_unadj, res_modav, palette = "Dark2")
In this case it is again possible to set show.compl = TRUE
.
plot(res_unadj, res_modav, show.compl = TRUE)
And if bagged estimates are provided, it will only show the selected subgroup.
plot(res_unadj, res_modav, res_bagged, show.compl = TRUE)
The plot
function has also the option to show the treatment effect difference between subgroup and complement setting type = "trtEffDiff"
.
plot(res_unadj, type = "trtEffDiff")
#> Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
#> "none")` instead.
And it is also possible to compare
plot(res_unadj, res_modav, type = "trtEffDiff")
plot(res_unadj, res_modav, res_bagged, type = "trtEffDiff")