# Influence Diagnostics

`InfluenceAnalysis.Rd`

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 the`metabin`

,`metagen`

,`metacont`

,`metacor`

,`metainc`

,`metarate`

or`metaprop`

function.- random
Logical. Should the random-effects model be used to generate the influence diagnostics? Uses the

`method.tau`

specified in the`meta`

object if one of "`DL`

", "`HE`

", "`SJ`

", "`ML`

", "`REML`

", "`EB`

", "`PM`

", "`HS`

" or "`GENQ`

" (to ensure compatibility with the`metafor`

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 plot`InfluenceCharacteristics`

: The Viechtbauer-Cheung influence characteristics plot`ForestEffectSize`

: The forest plot sorted by effect size`ForestI2`

: The forest plot sorted by between-study heterogeneity`Data`

: A`data.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 the`influence.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")}
```