Description Usage Arguments Details Value Note References See Also Examples
This function provides summary estimates for the concordance statistic, the total observed-expected ratio or the calibration slope. Where appropriate, data transformations are applied and missing information is derived from available quantities. Unless specified otherwise, all meta-analysis models assume random effects and are fitted using restricted maximum likelihood estimation with the metafor package (Viechtbauer 2010). Further, confidence intervals for the average performance are based on the Hartung-Knapp-Sidik-Jonkman method. When conducting a Bayesian meta-analysis, the R packages runjags and rjags must be installed.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
measure |
A character string indicating which summary performance measure should be calculated. Options are
|
cstat |
Optional vector with the estimated c-statistic for each valiation |
cstat.se |
Optional vector with the standard error of the estimated c-statistics |
cstat.cilb |
Optional vector to specify the lower limits of the confidence interval. |
cstat.ciub |
Optional vector to specify the upper limits of the confidence interval. |
cstat.cilv |
Optional vector to specify the levels of aformentioned confidence interval limits. (default: 0.95, which corresponds to the 95% confidence interval). |
sd.LP |
Optional vector with the standard deviation of the linear predictor (prognostic index) |
OE |
Optional vector with the estimated ratio of total observed versus total expected events |
OE.se |
Optional vector with the standard errors of the estimated O:E ratios |
OE.cilb |
Optional vector to specify the lower limits of the confidence interval for |
OE.ciub |
Optional vector to specify the upper limits of the confidence interval for |
OE.cilv |
Optional vector to specify the levels of aformentioned confidence interval limits. (default: 0.95, which corresponds to the 95% confidence interval). |
citl |
Optional vector with the estimated calibration-in-the-large for each valiation |
citl.se |
Optional vector with the standard error of the estimated calibration-in-the-large statistics |
N |
Optional vector with the total number of participants for each valiation |
O |
Optional vector with the total number of observed events for each valiation
(if specified, during time |
E |
Optional vector with the total number of expected events for each valiation
(if specified, during time |
Po |
Optional vector with the (cumulative) observed event probability for each valiation
(if specified, during time |
Po.se |
Optional vector with the standard errors of |
Pe |
Optional vector with the (cumulative) expected event probability for each validation
(if specified, during time |
data |
optional data frame containing the variables given to the arguments above. |
method |
Character string specifying whether a fixed- or a random-effects model should be fitted.
A fixed-effects model is fitted when using |
test |
Optional character string specifying how test statistics and confidence intervals for the fixed effects
should be computed. By default ( |
verbose |
If TRUE then messages generated during the fitting process will be displayed. |
slab |
Optional vector specifying the label for each study |
n.chains |
Optional numeric specifying the number of chains to use in the Gibbs sampler
(if |
pars |
A list with additional arguments. See 'Details' for more information. The following parameters configure the MCMC sampling procedure:
|
... |
Additional arguments that are passed to rma or runjags (if |
A summary estimate for the concorcance (c-) statistic can be obtained by specifying measure="cstat"
.
The c-statistic is a measure of discrimination, and indicates the ability of a prediction model to
distinguish between patients developing and not developing the outcome. The c-statistic typically ranges
from 0.5 (no discriminative ability) to 1 (perfect discriminative ability). When missing, the c-statistic
and/or its standard error are derived from other reported information.
See ccalc
for more information.
By default, it is assumed that the logit of the c-statistic is Normally distributed within and across studies
(pars$model.cstat = "normal/logit"
). Alternatively, it is possible to assume that the raw c-statistic
is Normally distributed across studies pars$model.cstat = "normal/identity"
.
A summary estimate for the total observed versus expected (O:E) ratio can be obtained by specifying
measure="OE"
. The total O:E ratio provides a rough indication of the overall model calibration (across the
entire range of predicted risks). When missing, the total O:E ratio and/or its standard error are derived from other
reported information. See oecalc
for more information.
For frequentist meta-analysis, within-study variation can either be modeled using a Normal (model.oe = "normal/log"
or model.oe = "normal/identity"
) or a Poisson distribution (model.oe = "poisson/log"
).
When performing a Bayesian meta-analysis, all data are modeled using a one-stage random effects (hierarchical related regression) model.
In particular, a binomial distribution (if O
, E
and N
is known), a Poisson distribution
(if only O
and E
are known) or a Normal distribution (if OE
and OE.se
or OE.95CI
are known) is selected separately for each study.
All Bayesian meta-analysis models assume the presence of random effects. Summary estimates are based on the posterior mean. Credibility and prediction intervals are directly obtained from the corresponding posterior quantiles.
The prior distribution for the (transformed) performance estimate is modeled using a Normal distribution,
with mean hp.mu.mean
(defaults to 0) and variance hp.mu.var
(defaults to 1000).
For meta-analysis of the total O:E ratio, the maximum value for hp.mu.var
is 100.
By default, the prior distribution for the between-study standard deviation is modeled using a uniform distribution
(hp.tau.dist="dunif"
), with boundaries hp.tau.min
and hp.tau.max
. Alternative choices are a
truncated Student-t distribution (hp.tau.dist="dhalft"
) with a mean of hp.tau.mean
,
a standard deviation of hp.tau.sigma
and hp.tau.df
degrees of freedom. This distribution is again
restricted to the range hp.tau.min
to hp.tau.max
.
An object of class valmeta
with the following elements:
array with (transformed) data used for meta-analysis, and method(s) used for restoring missing information.
character string specifying the performance measure that has been meta-analysed.
character string specifying the meta-analysis method.
character string specifying the meta-analysis model (link function).
summary estimate for the performance statistic. For Bayesian meta-analysis, the posterior median is returned.
lower bound of the confidence (or credibility) interval of the summary performance estimate.
upper bound of the confidence (or credibility) interval of the summary performance estimate.
lower bound of the (approximate) prediction interval of the summary performance estimate.
upper bound of the (approximate) prediction interval of the summary performance estimate.
the full results from the fitted model.
vector specifying the label of each study.
The width of calculated confidence, credibility and prediction intervals can be specified
using level
in the pars
argument (defaults to 0.95).
Debray TPA, Damen JAAG, Snell KIE, Ensor J, Hooft L, Reitsma JB, et al. A guide to systematic review and meta-analysis of prediction model performance. BMJ. 2017;356:i6460. doi: 10.1136/bmj.i6460
Debray TPA, Damen JAAG, Riley R, Snell KIE, Reitsma JB, Hooft L, et al. A framework for meta-analysis of prediction model studies with binary and time-to-event outcomes. Stat Methods Med Res. 2019;28:2768–86. doi: 10.1177/0962280218785504
Riley RD, Tierney JF, Stewart LA. Individual participant data meta-analysis: a handbook for healthcare research. Hoboken, NJ: Wiley; 2021. ISBN: 978-1-119-33372-2.
Steyerberg EW, Nieboer D, Debray TPA, van Houwelingen HC. Assessment of heterogeneity in an individual participant data meta-analysis of prediction models: An overview and illustration. Stat Med. 2019;38:4290–309. doi: 10.1002/sim.8296
Viechtbauer W. Conducting Meta-Analyses in R with the metafor Package. Journal of Statistical Software. 2010; 36. doi: 10.18637/jss.v036.i03
ccalc
to calculate concordance statistics and corresponding standard errors, oecalc
to
calculate the total O:E ratio and corresponding standard errors,
plot.valmeta
to generate forest plots
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | ######### Validation of prediction models with a binary outcome #########
data(EuroSCORE)
# Meta-analysis of the c-statistic (random effects)
fit <- valmeta(cstat=c.index, cstat.se=se.c.index, cstat.cilb=c.index.95CIl,
cstat.ciub=c.index.95CIu, cstat.cilv=0.95, N=n, O=n.events,
slab=Study, data=EuroSCORE)
plot(fit)
# Nearly identical results when we need to estimate the SE
valmeta(cstat=c.index, N=n, O=n.events, slab=Study, data=EuroSCORE)
# Two-stage meta-analysis of the total O:E ratio (random effects)
valmeta(measure="OE", O=n.events, E=e.events, N=n, slab=Study, data=EuroSCORE)
valmeta(measure="OE", O=n.events, E=e.events, data=EuroSCORE)
valmeta(measure="OE", Po=Po, Pe=Pe, N=n, data=EuroSCORE)
## Not run:
# One-stage meta-analysis of the total O:E ratio (random effects)
valmeta(measure="OE", O=n.events, E=e.events, data=EuroSCORE, method="ML",
pars=list(model.oe="poisson/log"))
# Bayesian random effects meta-analysis of the c-statistic
fit2 <- valmeta(cstat=c.index, cstat.se=se.c.index, cstat.cilb=c.index.95CIl,
cstat.ciub=c.index.95CIu, cstat.cilv=0.95, N=n, O=n.events,
data=EuroSCORE, method="BAYES", slab=Study)
# Bayesian one-stage random effects meta-analysis of the total O:E ratio
# Consider that some (but not all) studies do not provide information on N
# A Poisson distribution will be used for studies 1, 2, 5, 10 and 20
# A Binomial distribution will be used for the remaining studies
EuroSCORE.new <- EuroSCORE
EuroSCORE.new$n[c(1, 2, 5, 10, 20)] <- NA
pars <- list(hp.tau.dist="dhalft", # Prior for the between-study standard deviation
hp.tau.sigma=1.5, # Standard deviation for 'hp.tau.dist'
hp.tau.df=3, # Degrees of freedom for 'hp.tau.dist'
hp.tau.max=10, # Maximum value for the between-study standard deviation
seed=5) # Set random seed for the simulations
fit3 <- valmeta(measure="OE", O=n.events, E=e.events, N=n, data=EuroSCORE.new,
method="BAYES", slab=Study, pars=pars)
plot(fit3)
print(fit3$fit$model) # Inspect the JAGS model
print(fit3$fit$data) # Inspect the JAGS data
## End(Not run)
######### Validation of prediction models with a time-to-event outcome #########
data(Framingham)
# Meta-analysis of total O:E ratio after 10 years of follow-up
valmeta(measure="OE", Po=Po, Pe=Pe, N=n, data=Framingham)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.