brm {bhm}R Documentation

Fitting Biomarker Continuous Threshold Models

Description

{brm} is an R function for Continuous Threshold Models. It uses the maximum likehood method (Liu and Chen, 2020) to identify a cut-point (thershold parameter) for the biomarker in the Cox proportional hazards model. The model is specified by giving a symbolic description of the linear predictor and a description of the distribution family.

Usage

brm(x, ...)

## S3 method for class 'formula'
brm(formula, data = list(...), interaction = TRUE, 
      method = c("gradient", "profile", "single"), q=1, epsilon = NULL, ...)
# use 
#          brm(y ~ biomarker)             
# or
#          brm(y ~ biomarker + x1 + x2, interactin = FALSE)
#
# to fit a prognostic model with biomarker term only (will be implement in the future)
#
# use 
#
#          brm(y ~ biomarker+treatment+x1+x2+...)
#
# to fit a predictive model with interaciton between biomarker 
# and treatment, adjusted for x1, x2, etc.
# 
# use 
#          brm(x, y, control, ...)
#
# to fit a model without formula
#
# Biomarker shall be in the first dependent variable

Arguments

formula

an object of class "formula"(or one that can be coerced to that class): a symbolic description of the model to be fitted. The details of model specification are given under 'Details'.

data

an optional data frame, list or environment (or object coercible by 'as.data.frame' to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which glm is called.

interaction

model with interaction term between biomarker and treatment variables. Default is TRUE.

method

method to fit a brm model, such as a gradient method or a single-index model. The default method is the "gradient" method.

q

nubmer of biomarker variables. If q > 1, a single-index model will be fitted. Default is q = 1.

x

For "brm.default", x is a design matrix of dimension n * p and y is a vector of observations of length n for a "Surv" survival object for "coxph" models.

...

additional arguments to be passed to the low level regression fitting functions (see below).

epsilon

Step width for the profile likelihood method, default is (max(w)-min(w))/20.

Details

'biomarker' is a Biomarker variable. This variable is required and shall be the first dependent variable in the formula.

"interaction" is an option of fitting model with itneractin term. When interaction = TRUE, a predictive biomarker model will be fitted. When interaction = FALSE, a prognostic biomarker model will be fitted. Both Biomarker and Treatment variables are required if 'interaction' = TRUE and 'treatment' shall be the second variable in the formula.

"brm.default" is the workhorse functions: they are not normally called directly but can be more efficient where the response vector, design matrix and family have already been calculated.

Value

brm returns an object of class inheriting from "brm" which inherits from the class glm or 'coxph'. See later in this section.

The function "summary" (i.e., "summary.brm") can be used to obtain or print a summary of the results, for example, the 95

An object of class "brm" is a list containing at least the following components:

coefficients

a named vector of coefficients from 'brm'

c.max

the maximum likelihood estimate for the threshold parameter(s).

theta

a vector contains both the coefficients and c.max.

var

the variance matrix of theta.

loglik

the log-likelihood with the final values of the coefficients.

linear.predictors

the vector of linear predictors, one per subject.

first

the first derivative vector at the solution.

Author(s)

Shuoshuo Liu (shuoshuo.liu@psu.edu) and Bingshu E. Chen (bingshu.chen@queensu.ca)

References

Liu, S. S. and Chen, B. E. (2020). Continuous threshold models with two-way interactions in survival analysis. Canadian Journal of Statistics. Vol. 48, page 751-772.

See Also

bhm, coxph, plot.brm, print.brm, residuals.brm, summary.brm,

Examples

##
## Generate a random data set
n = 100
b = c(0.5, 1, 1.5)
data = gendat.surv(n, c0 = 0.40, beta = b, type="brm")
age = runif(n, 0, 1)*100
tm = data[, 1]
status = data[, 2]
trt = data[, 3]
ki67 = data[, 4]
## fit a biomarker threshold survival model with one single cut point

   fit = brm(Surv(tm, status)~ki67+trt+age)
##
## fit a prognostic continuous threshold model with biomarker only
##
#    fit = brm(Surv(tm, status)~ki67)
##
## To print the output, use
##
#    print(fit)
##

[Package bhm version 1.18 Index]