Learn R Programming

pencal (version 1.3.2)

performance_prc: Predictive performance of the PRC-LMM and PRC-MLPMM models

Description

This function computes the naive and optimism-corrected measures of performance (C index and time-dependent AUC) for the PRC models proposed in Signorelli et al. (2021). The optimism correction is computed based on a cluster bootstrap optimism correction procedure (CBOCP)

Usage

performance_prc(step2, step3, times = 1, n.cores = 1, verbose = TRUE)

Value

A list containing the following objects:

  • call: the function call;

  • concordance: a data frame with the naive and optimism-corrected estimates of the concordance (C) index;

  • tdAUC: a data frame with the naive and optimism-corrected estimates of the time-dependent AUC at the desired time points.

Arguments

step2

the output of either summarize_lmms or summarize_mlpmms (step 2 of the estimation of PRC)

step3

the output of fit_prclmm or fit_prcmlpmm (step 3 of PRC)

times

numeric vector with the time points at which to estimate the time-dependent AUC

n.cores

number of cores to use to parallelize part of the computations. If ncores = 1 (default), no parallelization is done. Pro tip: you can use parallel::detectCores() to check how many cores are available on your computer

verbose

if TRUE (default and recommended value), information on the ongoing computations is printed in the console

Author

Mirko Signorelli

References

Signorelli, M., Spitali, P., Al-Khalili Szigyarto, C, The MARK-MD Consortium, Tsonaka, R. (2021). Penalized regression calibration: a method for the prediction of survival outcomes using complex longitudinal and high-dimensional data. Statistics in Medicine, 40 (27), 6178-6196. DOI: 10.1002/sim.9178

See Also

for the PRC-LMM model: fit_lmms (step 1), summarize_lmms (step 2) and fit_prclmm (step 3); for the PRC-MLPMM model: fit_mlpmms (step 1), summarize_mlpmms (step 2) and fit_prcmlpmm (step 3).

Examples

Run this code
# \donttest{
data(fitted_prclmm)

more.cores = FALSE
# IMPORTANT: set more.cores = TRUE to speed computations up!
if (!more.cores) n.cores = 2
if (more.cores) {
   # identify number of available cores on your machine
   n.cores = parallel::detectCores()
   if (is.na(n.cores)) n.cores = 2
}
                   
# compute the performance measures
perf = performance_prc(fitted_prclmm$step2, fitted_prclmm$step3, 
          times = c(0.5, 1, 1.5, 2), n.cores = n.cores)

# concordance index:
perf$concordance
# time-dependent AUC:
perf$tdAUC
# }

Run the code above in your browser using DataLab