
This function performs the second step for the estimation of the PRC-MLPMM model proposed in Signorelli et al. (2021)
summarize_mlpmms(object, n.cores = 1, verbose = TRUE)
A list containing the following objects:
call
: the function call
ranef.orig
: a matrix with the predicted random effects
computed for the original data;
n.boots
: number of bootstrap samples;
boot.ids
: a list with the ids of bootstrapped subjects
(when n.boots > 0
);
ranef.boot.train
: a list where each element is a matrix that
contains the predicted random effects for each bootstrap sample
(when n.boots > 0
);
ranef.boot.valid
: a list where each element is a matrix that
contains the predicted random effects on the original data, based on the
mlpmms fitted on the cluster bootstrap samples (when n.boots > 0
);
a list of objects as produced by fit_mlpmms
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
if TRUE
(default and recommended value), information
on the ongoing computations is printed in the console
Mirko Signorelli
Signorelli, M. (2024). pencal: an R Package for the Dynamic Prediction of Survival with Many Longitudinal Predictors. The R Journal, 16 (2), 134-153.
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.
fit_mlpmms
(step 1),
fit_prcmlpmm
(step 3),
performance_prc
# \donttest{
# generate example data
set.seed(123)
n.items = c(4,2,2,3,4,2)
simdata = simulate_prcmlpmm_data(n = 100, p = length(n.items),
p.relev = 3, n.items = n.items,
type = 'u+b', seed = 1)
# specify options for cluster bootstrap optimism correction
# procedure and for parallel computing
do.bootstrap = FALSE
# IMPORTANT: set do.bootstrap = TRUE to compute the optimism correction!
n.boots = ifelse(do.bootstrap, 100, 0)
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
}
# step 1 of PRC-MLPMM: estimate the MLPMMs
y.names = vector('list', length(n.items))
for (i in 1:length(n.items)) {
y.names[[i]] = paste('marker', i, '_', 1:n.items[i], sep = '')
}
step1 = fit_mlpmms(y.names, fixefs = ~ contrast(age),
ranef.time = age, randint.items = TRUE,
long.data = simdata$long.data,
surv.data = simdata$surv.data,
t.from.base = t.from.base,
n.boots = n.boots, n.cores = n.cores)
# step 2 of PRC-MLPMM: compute the summaries
step2 = summarize_mlpmms(object = step1, n.cores = n.cores)
summary(step2)
# }
Run the code above in your browser using DataLab