Trim-and-fill method to adjust for bias in meta-analysis
Trim-and-fill method for estimating and adjusting for the number and outcomes of missing studies in a meta-analysis.
## S3 method for class 'meta' trimfill( x, left = NULL, ma.fixed = TRUE, type = "L", n.iter.max = 50, level = x$level, level.comb = x$level.comb, comb.fixed = FALSE, comb.random = TRUE, hakn = x$hakn, method.tau = x$method.tau, method.tau.ci = x$method.tau.ci, prediction = x$prediction, level.predict = x$level.predict, backtransf = x$backtransf, pscale = x$pscale, irscale = x$irscale, irunit = x$irunit, silent = TRUE, ... ) ## Default S3 method: trimfill( x, seTE, left = NULL, ma.fixed = TRUE, type = "L", n.iter.max = 50, sm = "", studlab = NULL, level = 0.95, level.comb = level, comb.fixed = FALSE, comb.random = TRUE, hakn = FALSE, method.tau = "DL", method.tau.ci = if (method.tau == "DL") "J" else "QP", prediction = FALSE, level.predict = level, backtransf = TRUE, pscale = 1, irscale = 1, irunit = "person-years", silent = TRUE, ... )
x |
An object of class |
left |
A logical indicating whether studies are supposed to be
missing on the left or right side of the funnel plot. If NULL,
the linear regression test for funnel plot symmetry (i.e.,
function |
ma.fixed |
A logical indicating whether a fixed effect or random effects model is used to estimate the number of missing studies. |
type |
A character indicating which method is used to estimate
the number of missing studies. Either |
n.iter.max |
Maximum number of iterations to estimate number of missing studies. |
level |
The level used to calculate confidence intervals for
individual studies. If existing, |
level.comb |
The level used to calculate confidence interval
for the pooled estimate. If existing, |
comb.fixed |
A logical indicating whether a fixed effect meta-analysis should be conducted. |
comb.random |
A logical indicating whether a random effects meta-analysis should be conducted. |
hakn |
A logical indicating whether the method by Hartung and Knapp should be used to adjust test statistics and confidence intervals. |
method.tau |
A character string indicating which method is
used to estimate the between-study variance τ^2 and its
square root τ. Either |
method.tau.ci |
A character string indicating which method is
used to estimate the confidence interval of τ^2 and
τ. Either |
prediction |
A logical indicating whether a prediction interval should be printed. |
level.predict |
The level used to calculate prediction interval for a new study. |
backtransf |
A logical indicating whether results should be
back transformed in printouts and plots. If
|
pscale |
A numeric giving scaling factor for printing of
single event probabilities or risk differences, i.e. if argument
|
irscale |
A numeric defining a scaling factor for printing of
single incidence rates or incidence rate differences, i.e. if
argument |
irunit |
A character specifying the time unit used to calculate rates, e.g. person-years. |
silent |
A logical indicating whether basic information on iterations shown. |
... |
other arguments |
seTE |
Standard error of estimated treatment effect. |
sm |
An optional character string indicating underlying
summary measure, e.g., |
studlab |
An optional vector with study labels; ignored if
|
The trim-and-fill method (Duval, Tweedie 2000a, 2000b) can be used for estimating and adjusting for the number and outcomes of missing studies in a meta-analysis. The method relies on scrutiny of one side of a funnel plot for asymmetry assumed due to publication bias.
Three different methods have been proposed originally to estimate
the number of missing studies. Two of these methods (L- and
R-estimator) have been shown to perform better in simulations, and
are available in this R function (argument type
).
A fixed effect or random effects model can be used to estimate the
number of missing studies (argument ma.fixed
). Furthermore,
a fixed effect and/or random effects model can be used to summaries
study results (arguments comb.fixed
and
comb.random
). Simulation results (Peters et al. 2007)
indicate that the fixed-random model, i.e. using a fixed effect
model to estimate the number of missing studies and a random
effects model to summaries results, (i) performs better than the
fixed-fixed model, and (ii) performs no worse than and marginally
better in certain situations than the random-random
model. Accordingly, the fixed-random model is the default.
An empirical comparison of the trim-and-fill method and the Copas selection model (Schwarzer et al. 2010) indicates that the trim-and-fill method leads to excessively conservative inference in practice. The Copas selection model is available in R package metasens.
The function metagen
is called internally.
An object of class c("metagen", "meta", "trimfill")
. The
object is a list containing the following components:
studlab, sm, left, ma.fixed, type, n.iter.max |
As defined above. |
level, level.comb, level.predict |
As defined above. |
comb.fixed, comb.random, prediction |
As defined above. |
hakn, method.tau, method.tau.ci, |
As defined above. |
TE, seTE |
Estimated treatment effect and standard error of individual studies. |
lower, upper |
Lower and upper confidence interval limits for individual studies. |
statistic, pval |
Statistic and p-value for test of treatment effect for individual studies. |
w.fixed, w.random |
Weight of individual studies (in fixed and random effects model). |
TE.fixed, seTE.fixed |
Estimated overall treatment effect and standard error (fixed effect model). |
TE.random, seTE.random |
Estimated overall treatment effect and standard error (random effects model). |
seTE.predict |
Standard error utilised for prediction interval. |
lower.predict, upper.predict |
Lower and upper limits of prediction interval. |
k |
Number of studies combined in meta-analysis. |
Q |
Heterogeneity statistic Q. |
tau |
Square-root of between-study variance. |
method |
Pooling method: |
call |
Function call. |
n.iter |
Actual number of iterations to estimate number of missing studies. |
trimfill |
A logical vector indicating studies that have been added by trim-and-fill method. |
df.hakn |
Degrees of freedom for test of treatment effect for
Hartung-Knapp method (only if |
title |
Title of meta-analysis / systematic review. |
complab |
Comparison label. |
outclab |
Outcome label. |
label.e |
Label for experimental group. |
label.c |
Label for control group. |
label.left |
Graph label on left side of forest plot. |
label.right |
Graph label on right side of forest plot. |
k0 |
Number of studies added by trim-and-fill. |
n.e |
Number of observations in experimental group (only for
object |
n.c |
Number of observations in control group (only for object
|
event.e |
Number of events in experimental group (only for
object |
event.c |
Number of events in control group (only for object
|
mean.e |
Estimated mean in experimental group (only for object
|
sd.e |
Standard deviation in experimental group (only for
object |
mean.c |
Estimated mean in control group (only for object
|
sd.c |
Standard deviation in control group (only for object
|
n |
Number of observations (only for object |
event |
Number of events (only for object |
cor |
Corelation (only for object |
class.x |
Main class of object |
version |
Version of R package meta used to create object. |
Guido Schwarzer sc@imbi.uni-freiburg.de
Duval S & Tweedie R (2000a): A nonparametric "Trim and Fill" method of accounting for publication bias in meta-analysis. Journal of the American Statistical Association, 95, 89–98
Duval S & Tweedie R (2000b): Trim and Fill: A simple funnel-plot-based method of testing and adjusting for publication bias in meta-analysis. Biometrics, 56, 455–63
Peters JL, Sutton AJ, Jones DR, Abrams KR, Rushton L (2007): Performance of the trim and fill method in the presence of publication bias and between-study heterogeneity. Statisics in Medicine, 10, 4544–62
Schwarzer G, Carpenter J, Rücker G (2010): Empirical evaluation suggests Copas selection model preferable to trim-and-fill method for selection bias in meta-analysis Journal of Clinical Epidemiology, 63, 282–8
data(Fleiss1993bin) m1 <- metabin(d.asp, n.asp, d.plac, n.plac, data = Fleiss1993bin, sm = "OR") tf1 <- trimfill(m1) summary(tf1) funnel(tf1) funnel(tf1, pch = ifelse(tf1$trimfill, 1, 16), level = 0.9, comb.random = FALSE) # # Use log odds ratios on x-axis # funnel(tf1, backtransf = FALSE) funnel(tf1, pch = ifelse(tf1$trimfill, 1, 16), level = 0.9, comb.random = FALSE, backtransf = FALSE) trimfill(m1$TE, m1$seTE, sm = m1$sm)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.