fit_coxreg_univar(variables, data, at = list(), control = control_coxreg())
fit_coxreg_multivar(variables, data, control = control_coxreg())
(named list
)
the names of the variables found in data
, passed as a named list and
corresponding to the time
, event
, arm
, strata
, and covariates
terms. If arm
is missing from
variables
, then only Cox model(s) including the covariates
will be fitted and the corresponding effect
estimates will be tabulated later.
(data.frame
)
the dataset containing the variables to fit the models.
(list
of numeric
)
when the candidate covariate is a numeric
, use at
to specify
the value of the covariate at which the effect should be estimated.
(list
)
a list of parameters as returned by the helper function control_coxreg()
.
fit_coxreg_univar()
returns a coxreg.univar
class object which is a named list
with 5 elements:
mod
: Cox regression models fitted by survival::coxph()
.
data
: The original data frame input.
control
: The original control input.
vars
: The variables used in the model.
at
: Value of the covariate at which the effect should be estimated.
fit_coxreg_multivar()
returns a coxreg.multivar
class object which is a named list
with 4 elements:
mod
: Cox regression model fitted by survival::coxph()
.
data
: The original data frame input.
control
: The original control input.
vars
: The variables used in the model.
fit_coxreg_univar()
: Fit a series of univariate Cox regression models given the inputs.
fit_coxreg_multivar()
: Fit a multivariate Cox regression model.
When using fit_coxreg_univar
there should be two study arms.
h_cox_regression for relevant helper functions, cox_regression.
library(survival)
set.seed(1, kind = "Mersenne-Twister")
# Testing dataset [survival::bladder].
dta_bladder <- with(
data = bladder[bladder$enum < 5, ],
data.frame(
time = stop,
status = event,
armcd = as.factor(rx),
covar1 = as.factor(enum),
covar2 = factor(
sample(as.factor(enum)),
levels = 1:4, labels = c("F", "F", "M", "M")
)
)
)
labels <- c("armcd" = "ARM", "covar1" = "A Covariate Label", "covar2" = "Sex (F/M)")
formatters::var_labels(dta_bladder)[names(labels)] <- labels
dta_bladder$age <- sample(20:60, size = nrow(dta_bladder), replace = TRUE)
plot(
survfit(Surv(time, status) ~ armcd + covar1, data = dta_bladder),
lty = 2:4,
xlab = "Months",
col = c("blue1", "blue2", "blue3", "blue4", "red1", "red2", "red3", "red4")
)
# fit_coxreg_univar
## Cox regression: arm + 1 covariate.
mod1 <- fit_coxreg_univar(
variables = list(
time = "time", event = "status", arm = "armcd",
covariates = "covar1"
),
data = dta_bladder,
control = control_coxreg(conf_level = 0.91)
)
## Cox regression: arm + 1 covariate + interaction, 2 candidate covariates.
mod2 <- fit_coxreg_univar(
variables = list(
time = "time", event = "status", arm = "armcd",
covariates = c("covar1", "covar2")
),
data = dta_bladder,
control = control_coxreg(conf_level = 0.91, interaction = TRUE)
)
## Cox regression: arm + 1 covariate, stratified analysis.
mod3 <- fit_coxreg_univar(
variables = list(
time = "time", event = "status", arm = "armcd", strata = "covar2",
covariates = c("covar1")
),
data = dta_bladder,
control = control_coxreg(conf_level = 0.91)
)
## Cox regression: no arm, only covariates.
mod4 <- fit_coxreg_univar(
variables = list(
time = "time", event = "status",
covariates = c("covar1", "covar2")
),
data = dta_bladder
)
# fit_coxreg_multivar
## Cox regression: multivariate Cox regression.
multivar_model <- fit_coxreg_multivar(
variables = list(
time = "time", event = "status", arm = "armcd",
covariates = c("covar1", "covar2")
),
data = dta_bladder
)
# Example without treatment arm.
multivar_covs_model <- fit_coxreg_multivar(
variables = list(
time = "time", event = "status",
covariates = c("covar1", "covar2")
),
data = dta_bladder
)