Learn R Programming

JM (version 0.5-0)

survfitJM: Prediction in Joint Models

Description

This function computes the conditional probability of surviving later times than the last observed time for which a longitudinal measurement was available.

Usage

survfitJM(object, newdata, idVar = "id", simulate = TRUE, survTimes = NULL, 
	last.time = NULL, M = 200, CI.levels = c(0.025, 0.975), scale = 1.6)

Arguments

object
an object inheriting from class jointModel.
newdata
a data frame that contains the longitudinal and covariate information for the subjects for which prediction of survival probabilities is required. The names of the variables in this data frame must be the same as in the data frames that were us
idVar
the name of the variable in newdata that identifies the different subjects.
simulate
logical; if TRUE, a Monte Carlo approach is used to estimate survival probabilities. If FALSE, a first order estimator is used instead. (see Details)
survTimes
a numeric vector of times for which prediction survival probabilities are to be computed.
last.time
a numeric vector or character string. This specifies the known time at which each of the subjects in newdat was known to be alive. If NULL, then this is automatically taken as the last time each subject provided a longitudin
M
integer denoting how many Monte Carlo samples to use -- see Details.
CI.levels
a numeric vector of length two that specifies which quantiles to use for the calculation of confidence interval for the predicted probabilities -- see Details.
scale
a numeric value that controls the acceptance rate of the Metropolis-Hastings algorithm -- see Details.

Value

  • A list of class survfitJM with components:
  • summariesa list with elements numeric matrices with numeric summaries of the predicted probabilities for each subject.
  • survTimesa copy of the survTimes argument.
  • last.timea numeric vector with the time of the last available longitudinal measurement of each subject.
  • obs.timesa list with elements numeric vectors denoting the timings of the longitudinal measurements for each subject.
  • ya list with elements numeric vectors denoting the longitudinal responses for each subject.
  • full.resultsa list with elements numeric matrices with predicted probabilities for each subject in each replication of the Monte Carlo scheme described above.
  • success.ratea numeric vector with the success rates of the Metropolis-Hastings algorithm described above for each subject.
  • scalea copy of the scale argument.

Details

Based on a fitted joint model (represented by object), and a history of longitudinal responses $\tilde{y}_i(t) = {y_i(s), 0 \leq s \leq t}$ and a covariates vector $x_i$ (stored in newdata), this function provides estimates of $Pr(T_i > u | T_i > t, \tilde{y}_i(t), x_i)$, i.e., the conditional probability of surviving time $u$ given that subject $i$, with covariate information $x_i$, has survived up to time $t$ and has provided longitudinal the measurements $\tilde{y}_i(t)$. To estimate $Pr(T_i > u | T_i > t, \tilde{y}_i(t), x_i)$ and if simulate = TRUE, a Monte Carlo procedure is followed with the following steps: [object Object],[object Object],[object Object],[object Object] Based on the M estimates of the conditional probabilities, we compute useful summary statistics, such as their mean, median, and quantiles (to produce a confidence interval). If simulate = FALSE, then survival probabilities are estimated using the formula $$Pr(T_i > u | T_i > t, \hat{b}_i, x_i; \hat{\theta})$$, where $\hat{\theta}$ denotes the MLEs as above, and $\hat{b}_i$ denotes the empirical Bayes estimates.

See Also

jointModel, plot.survfitJM

Examples

Run this code
# linear mixed model fit
fitLME <- lme(sqrt(CD4) ~ obstime + obstime:drug, 
    random = ~ 1 | patient, data = aids)
# cox model fit
fitCOX <- coxph(Surv(Time, death) ~ drug, data = aids.id, x = TRUE)

# joint model fit
fitJOINT <- jointModel(fitLME, fitCOX, 
    timeVar = "obstime", method = "weibull-PH-GH")

# sample of the patients who are still alive
ND <- aids[aids$patient == "141", ]
ss <- survfitJM(fitJOINT, newdata = ND, idVar = "patient", M = 50)
ss

Run the code above in your browser using DataLab