BayesSurv_AFT {SemiCompRisks} | R Documentation |
The function to implement Bayesian parametric and semi-parametric analyses for univariate survival data in the context of accelerated failure time (AFT) models.
Description
Independent univariate survival data can be analyzed using AFT models that have a hierarchical structure. The proposed models can accomodate left-truncated and/or interval-censored data. An efficient computational algorithm that gives users the flexibility to adopt either a fully parametric (log-Normal) or a semi-parametric (Dirichlet process mixture) model specification is developed.
Usage
BayesSurv_AFT(Formula, data, model = "LN", hyperParams, startValues,
mcmcParams, na.action = "na.fail", subset=NULL, path=NULL)
Arguments
Formula |
a |
data |
a data.frame in which to interpret the variables named in |
model |
The specification of baseline survival distribution: "LN" or "DPM". |
hyperParams |
a list containing lists or vectors for hyperparameter values in hierarchical models. Components include,
|
startValues |
a list containing vectors of starting values for model parameters. It can be specified as the object returned by the function |
mcmcParams |
a list containing variables required for MCMC sampling. Components include,
|
na.action |
how NAs are treated. See |
subset |
a specification of the rows to be used: defaults to all rows. See |
path |
the name of directory where the results are saved. |
Details
The function BayesSurv_AFT
implements Bayesian semi-parametric (DPM) and parametric (log-Normal) models to univariate time-to-event data in the presence of left-truncation and/or interval-censoring. Consider a univariate AFT model that relates the covariate x_i
to survival time T_i
for the i^{\textrm{th}}
subject:
\log(T_i) = x_i^{\top}\beta + \epsilon_i,
where \epsilon_i
is a random variable whose distribution determines that of T_i
and \beta
is a vector of regression parameters. Considering the interval censoring, the time to the event for the i^{\textrm{th}}
subject satisfies c_{ij}\leq T_i <c_{ij+1}
. Let L_i
denote the left-truncation time.
For the Bayesian parametric analysis, we take \epsilon_i
to follow the Normal(\mu
, \sigma^2
) distribution for \epsilon_i
. The following prior distributions are adopted for the model parameters:
\pi(\beta, \mu) \propto 1,
\sigma^2 \sim \textrm{Inverse-Gamma}(a_{\sigma}, b_{\sigma}).
For the Bayesian semi-parametric analysis, we assume that \epsilon_i
is taken as draws from the DPM of normal distributions:
\epsilon\sim DPM(G_0, \tau).
We refer readers to print.Bayes_AFT
for a detailed illustration of DPM specification. We adopt a non-informative flat prior on the real line for the regression parameters \beta
and a Gamma(a_{\tau}
, b_{\tau}
) hyperprior for the precision parameter \tau
.
Value
BayesSurv_AFT
returns an object of class Bayes_AFT
.
Author(s)
Kyu Ha Lee and Sebastien Haneuse
Maintainer: Kyu Ha Lee <klee15239@gmail.com>
References
Lee, K. H., Rondeau, V., and Haneuse, S. (2017),
Accelerated failure time models for semicompeting risks data in the presence of complex censoring, Biometrics, 73, 4, 1401-1412.
Alvares, D., Haneuse, S., Lee, C., Lee, K. H. (2019),
SemiCompRisks: An R package for the analysis of independent and cluster-correlated semi-competing risks data, The R Journal, 11, 1, 376-400.
See Also
initiate.startValues_AFT
, print.Bayes_AFT
, summary.Bayes_AFT
, predict.Bayes_AFT
Examples
## Not run:
# loading a data set
data(survData)
survData$yL <- survData$yU <- survData[,1]
survData$yU[which(survData[,2] == 0)] <- Inf
survData$LT <- rep(0, dim(survData)[1])
form <- Formula(LT | yL + yU ~ cov1 + cov2)
#####################
## Hyperparameters ##
#####################
## log-Normal model
##
LN.ab <- c(0.3, 0.3)
## DPM model
##
DPM.mu <- log(12)
DPM.sigSq <- 100
DPM.ab <- c(2, 1)
Tau.ab <- c(1.5, 0.0125)
##
hyperParams <- list(LN=list(LN.ab=LN.ab),
DPM=list(DPM.mu=DPM.mu, DPM.sigSq=DPM.sigSq, DPM.ab=DPM.ab, Tau.ab=Tau.ab))
###################
## MCMC SETTINGS ##
###################
## Setting for the overall run
##
numReps <- 100
thin <- 1
burninPerc <- 0.5
## Tuning parameters for specific updates
##
## - those common to all models
beta.prop.var <- 0.01
mu.prop.var <- 0.1
zeta.prop.var <- 0.1
##
mcmcParams <- list(run=list(numReps=numReps, thin=thin, burninPerc=burninPerc),
tuning=list(beta.prop.var=beta.prop.var, mu.prop.var=mu.prop.var,
zeta.prop.var=zeta.prop.var))
################################################################
## Analysis of Independent univariate survival data ############
################################################################
###############
## logNormal ##
###############
##
myModel <- "LN"
myPath <- "Output/01-Results-LN/"
startValues <- initiate.startValues_AFT(form, survData, model=myModel, nChain=2)
##
fit_LN <- BayesSurv_AFT(form, survData, model=myModel, hyperParams,
startValues, mcmcParams, path=myPath)
fit_LN
summ.fit_LN <- summary(fit_LN); names(summ.fit_LN)
summ.fit_LN
pred_LN <- predict(fit_LN, time = seq(0, 35, 1), tseq=seq(from=0, to=30, by=5))
plot(pred_LN, plot.est="Haz")
plot(pred_LN, plot.est="Surv")
#########
## DPM ##
#########
##
myModel <- "DPM"
myPath <- "Output/02-Results-DPM/"
startValues <- initiate.startValues_AFT(form, survData, model=myModel, nChain=2)
##
fit_DPM <- BayesSurv_AFT(form, survData, model=myModel, hyperParams,
startValues, mcmcParams, path=myPath)
fit_DPM
summ.fit_DPM <- summary(fit_DPM); names(summ.fit_DPM)
summ.fit_DPM
pred_DPM <- predict(fit_DPM, time = seq(0, 35, 1), tseq=seq(from=0, to=30, by=5))
plot(pred_DPM, plot.est="Haz")
plot(pred_DPM, plot.est="Surv")
## End(Not run)