residuals {JM} | R Documentation |
Residuals for Joint Models
Description
Calculates residuals for joint models.
Usage
## S3 method for class 'jointModel'
residuals(object, process = c("Longitudinal", "Event"),
type = c("Marginal", "Subject", "stand-Marginal",
"stand-Subject", "Martingale", "nullMartingale", "CoxSnell", "AFT"),
MI = FALSE, M = 50, time.points = NULL, return.data = FALSE,
...)
Arguments
object |
an object inheriting from class |
process |
for which model (i.e., linear mixed model or survival model) to calculate residuals. |
type |
what type of residuals to calculate. See Details. |
MI |
logical; if |
M |
integer denoting how many imputations to use for the MI residuals. |
time.points |
for fixed visit times, this should be a numeric vector with the unique times points at which
longitudinal measurements are supposed to be taken; if |
return.data |
logical; if |
... |
additional arguments; currently none is used. |
Details
When process = "Longitudinal"
, residuals are calculated for the longitudinal outcomes. In particular, if
type = "Marginal"
these are e_{ij} = y_{ij} - x_{ij}^T \hat{\beta}
, whereas for type = "Subject"
,
e_{ij} = y_{ij} - x_{ij}^T \hat{\beta} - z_{ij}^T b_i
, where i
denotes the subject and j
the
measurement, y_{ij}
the longitudinal responses, x_{ij}^T
and z_{ij}^T
the corresponding rows of the
fixed and random effects design matrices, respectively, and \beta
and b_i
denote the fixed effects
and random effects components. If type = "stand-Marginal"
or type = "stand-Subject"
, the above defined
residuals are divided by the estimated standard deviation of the corresponding error term. If MI = TRUE
, multiple-imputation-based
residuals are calculated for the longitudinal process; for more information regarding these residuals, check Rizopoulos et al. (2009).
When process = "Event"
, residuals are calculated for the survival outcome. Martingale residuals are available
for all options for the survival submodel (for the different options of survival submodel, check the method
argument of jointModel
). when option type = "nullMartingale"
is invoked, the martingale residuals
are calculated with the coefficient(s) that correspond to the marker set to zero. Cox-Snell residuals (Cox and Snell,
1968) are available for the Weibull model and the additive log cumulative hazard model. AFT residuals are only
available for the Weibull model.
Value
If MI = FALSE
, a numeric vector of residual values. Otherwise a list with components:
fitted.values |
the fitted values for the observed data. |
residuals |
the residuals for the observed data. |
fitted.valsM |
the fitted values for the missing data. |
resid.valsM |
the multiply imputed residuals for the missing longitudinal responses. |
mean.resid.valsM |
the average of the multiply imputed residuals for the missing longitudinal responses; returned only if fixed visit times are considered. |
dataM |
if |
Note
The multiple-imputation-based residuals are not available for joint models with method = "Cox-PH-GH"
.
Author(s)
Dimitris Rizopoulos d.rizopoulos@erasmusmc.nl
References
Cox, D. and Snell, E. (1968) A general definition of residuals. Journal of the Royal Statistical Society, Series B 30, 248–275.
Rizopoulos, D. (2012) Joint Models for Longitudinal and Time-to-Event Data: with Applications in R. Boca Raton: Chapman and Hall/CRC.
Rizopoulos, D., Verbeke, G. and Molenberghs, G. (2010) Multiple-imputation-based residuals and diagnostic plots for joint models of longitudinal and survival outcomes. Biometrics 66, 20–29.
Rizopoulos, D. (2010) JM: An R Package for the Joint Modelling of Longitudinal and Time-to-Event Data. Journal of Statistical Software 35 (9), 1–33. doi:10.18637/jss.v035.i09
See Also
Examples
## Not run:
# linear mixed model fit
fitLME <- lme(sqrt(CD4) ~ obstime * drug - drug,
random = ~ 1 | patient, data = aids)
# cox model fit
fitCOX <- coxph(Surv(Time, death) ~ drug, data = aids.id, x = TRUE)
# joint model fit, under the additive log cumulative hazard model
fitJOINT <- jointModel(fitLME, fitCOX,
timeVar = "obstime")
# residuals for the longitudinal outcome
head(cbind(
"Marginal" = residuals(fitJOINT),
"std-Marginal" = residuals(fitJOINT, type = "stand-Marginal"),
"Subject" = residuals(fitJOINT, type = "Subject"),
"std-Subject" = residuals(fitJOINT, type = "stand-Subject")
))
# residuals for the survival outcome
head(cbind(
"Martingale" = residuals(fitJOINT, process = "Event", type = "Martingale"),
"CoxSnell" = residuals(fitJOINT, process = "Event", type = "CoxSnell")
))
## End(Not run)