Fit an integrative Cox model proposed by Wang et al. (2020) for right-censored survival data with uncertain event times due to imperfect data integration.
Usage
iCoxph(
formula,
data,
subset,
na.action,
contrasts = NULL,
start = iCoxph.start(),
control = iCoxph.control(),
...
)Arguments
- formula
Surviobject specifying the covariates and response variable in the model, such asSurvi(ID, time, event) ~ x1 + x2.- data
An optional data frame, list, or environment that contains the covariates and response variables included in the model. If not found in data, the variables are taken from
environment(formula), usually the environment from which this function is called.- subset
An optional logical vector specifying a subset of observations to be used in the fitting process.
- na.action
An optional function that indicates what should the procedure do if the data contains
NAs. The default is set by the na.action setting ofoptions. The "factory-fresh" default isna.omit. Other possible values includena.fail,na.exclude, andna.pass.help(na.fail)for details.- contrasts
An optional list, whose entries are values (numeric matrices or character strings naming functions) to be used as replacement values for the contrasts replacement function and whose names are the names of columns of data containing factors. See
contrasts.argofmodel.matrix.defaultfor details.- start
A list returned by function
iCoxph.startspecifying starting values of the parameters to be estimated in the model. Please refer to the arguments ofiCoxph.startfor the available parameters.- control
A list returned by function
iCoxph.controlspecifying control parameters for the model estimation procedure. Please refer to the arguments ofiCoxph.controlfor the available parameters.- ...
Other arguments for future usage. A warning will be thrown if any invalid argument is specified.
Value
An iCoxph-class object, whose slots include
call: Function call.formula: Formula used in the model fitting.data: A processed data frame used for model fitting.nObs: Number of observation.estimates:beta: Coefficient estimates.pi: Estimated parameters in prior multinomial distribution indicating the probabilities of corresponding record being true.baseline: A data frame that contains estimated baseline hazard function with columns namedtimeandh0.
start: The initial guessesbeta_matandpi_matspecified for the parameters to be estimated, and the set of initial guessbeta_startandpi_startthat resulted in the largest objective function, i.e., the observed-data likelihood function.control: The control list specified for model fitting.na.action: The procedure specified to deal with missing values in the covariate.xlevels: A list that records the levels in each factor variable.contrasts: Contrasts specified and used for each factor variable.convergeCode:codereturned by functionnlm, which is an integer indicating why the optimization process terminated.help(nlm)for details.logL: A numeric vector containing the observed-data log-likelihood over iterations.
References
Wang, W., Aseltine, R. H., Chen, K., & Yan, J. (2020). Integrative Survival Analysis with Uncertain Event Times in Application to A Suicide Risk Study. Annals of Applied Statistics, 14(1), 51–73.
See also
iCoxph.start and iCoxph.control, respectively,
for initial values and control parameters for model fitting;
summary,iCoxph-method for summary of fitted model;
coef,iCoxph-method for estimated covariate coefficients;
bootSe for SE estimates from bootstrap methods.
Examples
library(intsurv)
## generate simulated survival data with uncertain records
set.seed(123)
simuDat <- simData4iCoxph(nSubject = 200)
## fit the integertive Cox model
fit <- iCoxph(
Survi(ID, time, event) ~ x1 + x2 + x3 + x4,
data = simuDat,
start = iCoxph.start(methods = "nearest"),
control = iCoxph.control(tol_beta = 1e-5)
)
## estimated covariate coefficients
coef(fit)
#> x1 x2 x3 x4
#> 0.7359471 0.9545273 0.7262899 0.8679731
## get SE estimates by bootstrap
fit <- bootSe(fit, B = 30)
## summary of the fitted model
summary(fit)
#> Call:
#> iCoxph(formula = Survi(ID, time, event) ~ x1 + x2 + x3 + x4,
#> data = simuDat, start = iCoxph.start(methods = "nearest"),
#> control = iCoxph.control(tol_beta = 1e-05))
#>
#> Coefficients of covariates:
#> coef exp(coef) se(coef) z Pr(>|z|)
#> x1 0.73595 2.08746 0.24094 3.0545 0.002255 **
#> x2 0.95453 2.59744 0.29606 3.2241 0.001263 **
#> x3 0.72629 2.06740 0.16526 4.3949 1.108e-05 ***
#> x4 0.86797 2.38208 0.59304 1.4636 0.143304
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Log-likelihood under observed data: -1150.268