# Testing dataset with just two treatment arms.
library(survival)
library(dplyr)
adrs_f <- tern_ex_adrs %>%
filter(
PARAMCD == "BESRSPI",
ARM %in% c("B: Placebo", "A: Drug X")
) %>%
mutate(
# Reorder levels of ARM to have Placebo as reference arm for Odds Ratio calculations.
ARM = droplevels(forcats::fct_relevel(ARM, "B: Placebo")),
RSP = case_when(AVALC %in% c("PR", "CR") ~ 1, TRUE ~ 0),
SEX = factor(SEX)
)
variables <- list(
arm = "ARM",
biomarker = "BMRKR1",
covariates = "AGE",
response = "RSP"
)
# Fit default STEP models: Here a constant treatment effect is estimated in each subgroup.
# We use a large enough bandwidth to avoid too small subgroups and linear separation in those.
step_matrix <- fit_rsp_step(
variables = variables,
data = adrs_f,
control = c(control_logistic(), control_step(bandwidth = 0.9))
)
dim(step_matrix)
head(step_matrix)
# Specify different polynomial degree for the biomarker interaction to use more flexible local
# models. Or specify different logistic regression options, including confidence level.
step_matrix2 <- fit_rsp_step(
variables = variables,
data = adrs_f,
control = c(control_logistic(conf_level = 0.9), control_step(bandwidth = NULL, degree = 1))
)
# Use a global constant model. This is helpful as a reference for the subgroup models.
step_matrix3 <- fit_rsp_step(
variables = variables,
data = adrs_f,
control = c(control_logistic(), control_step(bandwidth = NULL, num_points = 2L))
)
# It is also possible to use strata, i.e. use conditional logistic regression models.
variables2 <- list(
arm = "ARM",
biomarker = "BMRKR1",
covariates = "AGE",
response = "RSP",
strata = c("STRATA1", "STRATA2")
)
step_matrix4 <- fit_rsp_step(
variables = variables2,
data = adrs_f,
control = c(control_logistic(), control_step(bandwidth = NULL))
)
Run the code above in your browser using DataLab