Conducts an influence analysis of a meta-analysis generated by meta
functions,
and allows to produce influence diagnostic plots.
Arguments
- x
An object of class
meta
, generated by themetabin
,metagen
,metacont
,metacor
,metainc
,metarate
ormetaprop
function.- random
Logical. Should the random-effects model be used to generate the influence diagnostics? Uses the
method.tau
specified in themeta
object if one of "DL
", "HE
", "SJ
", "ML
", "REML
", "EB
", "PM
", "HS
" or "GENQ
" (to ensure compatibility with themetafor
package). Otherwise, the DerSimonian-Laird ("DL"
; DerSimonian & Laird, 1986) estimator is used.FALSE
by default.- subplot.heights
Concatenated array of two numerics. Specifies the heights of the first (first number) and second (second number) row of the overall plot generated when plotting the results. Default is
c(30,18)
.- subplot.widths
Concatenated array of two numerics. Specifies the widths of the first (first number) and second (second number) column of the overall results plot generated when plotting the results. Default is
c(30,30)
.- forest.lims
Concatenated array of two numerics. Specifies the x-axis limits of the forest plots generated when plotting the results. Use
"default"
if standard settings should be used (this is the default).- return.separate.plots
Logical. When plotted, should the influence plots be shown as separate plots in lieu of returning them in one overall plot?
- text.scale
Positive numeric. Scaling factor for the text geoms used when plotting the results. Values <1 shrink the text, while values >1 increase the text size. Default is
1
.
Value
A list
object of class influence.analysis
containing the
following objects is returned (if results are saved to a variable):
BaujatPlot
: The Baujat plotInfluenceCharacteristics
: The Viechtbauer-Cheung influence characteristics plotForestEffectSize
: The forest plot sorted by effect sizeForestI2
: The forest plot sorted by between-study heterogeneityData
: Adata.frame
containing the data used for plotting.
Otherwise, the function prints out (1) the results of the Leave-One-Out Analysis (sorted by \(I^2\)),
(2) the Viechtbauer-Cheung Influence Diagnostics and (3) Baujat Plot data (sorted by heterogeneity contribution),
in this order. Plots can be produced manually by plugging a saved object of class InfluenceAnalysis
generated by
the function into the plot
function. It is also possible to only produce one specific plot by
specifying the name of the plot as a character
in the second argument of the plot
call (see Examples).
Details
The function conducts an influence analysis using the "Leave-One-Out" paradigm internally
and produces data for four influence diagnostics. Diagnostic plots can be produced by saving the output of the
function to an object and plugging it into the plot
function.
These diagnostics may be used to determine which study or effect size
may have an excessive influence on the overall results of a meta-analysis and/or contribute substantially to
the between-study heterogeneity in an analysis. This may be used for outlier detection and to test
the robustness of the overall results found in an analysis. Results for four diagnostics are calculated:
Baujat Plot: Baujat et al. (2002) proposed a plot to evaluate heterogeneity patterns in a meta-analysis. The x-axis of the Baujat plot shows the overall heterogeneity contribution of each effect size while the y-axis shows the influence of each effect size on the pooled result. The
baujat
function is called internally to produce the results. Effect sizes or studies with high values on both the x and y-axis may be considered to be influential cases; effect sizes or studies with high heterogeneity contribution (x-axis) and low influence on the overall results can be outliers which might be deleted to reduce the amount of between-study heterogeneity.Influence Characteristics: Several influence analysis diagnostics proposed by Viechtbauer & Cheung (2010). Results are calculated by an internal call to
influence.rma.uni
. In the console output, potentially influential studies are marked with an asterisk (*
). When plotted, effect sizes/studies determined to be influential cases using the "rules of thumb" described in Viechtbauer & Cheung (2010) are shown in red. For further details, see the documentation of theinfluence.rma.uni
function.Forest Plot for the Leave-One-Out Analysis, sorted by Effect Size: This displays the effect size and \(I^2\)-heterogeneity when omitting one of the \(k\) studies each time. The plot is sorted by effect size to determine which studies or effect sizes particularly affect the overall effect size. Results are generated by an internal call to
metainf
.Forest Plot for the Leave-One-Out Analysis, sorted by \(I^2\): see above; results are sorted by \(I^2\) to determine the study for which exclusion results in the greatest reduction of heterogeneity.
References
Harrer, M., Cuijpers, P., Furukawa, T.A, & Ebert, D. D. (2019). Doing Meta-Analysis in R: A Hands-on Guide. DOI: 10.5281/zenodo.2551803. Chapter 6.3
DerSimonian R. & Laird N. (1986), Meta-analysis in clinical trials. Controlled Clinical Trials, 7, 177–188.
Viechtbauer, W., & Cheung, M. W.-L. (2010). Outlier and influence diagnostics for meta-analysis. Research Synthesis Methods, 1, 112–125.
Examples
if (FALSE) {
# Load 'ThirdWave' data
data(ThirdWave)
# Create 'meta' meta-analysis object
suppressPackageStartupMessages(library(meta))
meta = metagen(TE, seTE, studlab = paste(ThirdWave$Author), data=ThirdWave)
# Run influence analysis; specify to return separate plots when plotted
inf.an = InfluenceAnalysis(meta, return.separate.plots = TRUE)
# Show results in console
inf.an
# Generate all plots
plot(inf.an)
# For baujat plot
plot(inf.an, "baujat")
# For influence diagnostics plot
plot(inf.an, "influence")
# For forest plot sorted by effect size
plot(inf.an, "ES")
# For forest plot sorted by I-squared
plot(inf.an, "I2")}