Searches for statistical outliers in meta-analysis results generated by meta functions or the rma.uni in the metafor package.

find.outliers(x, ...)

Arguments

x

Either (1) an object of class meta, generated by the metabin, metagen, metacont, metacor, metainc, metarate or metaprop function; or (2) and object of class rma.uni created with the rma.uni function in metafor.

...

Additional parameters for the rma.uni or update.meta function.

Value

Returns the identified outliers and the meta-analysis results when the outliers are removed.

If the provided meta-analysis object is of class meta, the following objects are returned if the results of the function are saved to another object:

  • out.study.fixed: A numeric vector containing the names of the outlying studies when assuming a fixed-effect model.

  • out.study.random: A numeric vector containing the names of the outlying studies when assuming a random-effects model. The \(\tau^{2}\) estimator method.tau is inherited from x.

  • m.fixed: An object of class meta containing the results of the meta-analysis with outliers removed (assuming a fixed-effect model).

  • m.random: An object of class meta containing the results of the meta-analysis with outliers removed (assuming a random-effects model, and using the same method.tau as in the original analysis).

If the provided meta-analysis object is of class rma.uni, the following objects are returned if the results of the function are saved to another object:

  • out.study: A numeric vector containing the names of the outlying studies.

  • m: An object of class rma.uni containing the results of the meta-analysis with outliers removed (using the same settings as in the meta-analysis object provided).

Details

This function searches for outlying studies in a meta-analysis results object. Studies are defined as outliers when their 95% confidence interval lies ouside the 95% confidence interval of the pooled effect.

When outliers are found, the function automatically recalculates the meta-analysis results, using the same settings as in the object provided in x, but excluding the detected outliers.

A forest plot of the meta-analysis with outliers removed can be generated directly by plugging the output of the function into the forest function.

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.2

See also

Examples

suppressPackageStartupMessages(library(meta)) suppressPackageStartupMessages(library(metafor)) suppressPackageStartupMessages(library(dmetar)) # Pool with meta m1 <- metagen(TE, seTE, data = ThirdWave, studlab = ThirdWave$Author, comb.fixed = FALSE) # Pool with metafor m2 <- rma(yi = TE, sei = seTE, data = ThirdWave, slab = ThirdWave$Author, method = "PM") # Find outliers fo1 <- find.outliers(m1) fo2 <- find.outliers(m2) # Show summary summary(fo1)
#> Identified outliers (random-effects model) #> ------------------------------------------ #> "DanitzOrsillo", "Shapiro et al." #> #> Results with outliers removed #> ----------------------------- #> 95%-CI %W(random) exclude #> Call et al. 0.7091 [ 0.1979; 1.2203] 4.4 #> Cavanagh et al. 0.3549 [-0.0300; 0.7397] 6.9 #> DanitzOrsillo 1.7912 [ 1.1139; 2.4685] 0.0 * #> de Vibe et al. 0.1825 [-0.0484; 0.4133] 13.1 #> Frazier et al. 0.4219 [ 0.1380; 0.7057] 10.4 #> Frogeli et al. 0.6300 [ 0.2458; 1.0142] 6.9 #> Gallego et al. 0.7249 [ 0.2846; 1.1652] 5.6 #> Hazlett-Stevens & Oren 0.5287 [ 0.1162; 0.9412] 6.2 #> Hintz et al. 0.2840 [-0.0453; 0.6133] 8.6 #> Kang et al. 1.2751 [ 0.6142; 1.9360] 2.8 #> Kuhlmann et al. 0.1036 [-0.2781; 0.4853] 7.0 #> Lever Taylor et al. 0.3884 [-0.0639; 0.8407] 5.4 #> Phang et al. 0.5407 [ 0.0619; 1.0196] 4.9 #> Rasanen et al. 0.4262 [-0.0794; 0.9317] 4.5 #> Ratanasiripong 0.5154 [-0.1731; 1.2039] 2.6 #> Shapiro et al. 1.4797 [ 0.8618; 2.0977] 0.0 * #> Song & Lindquist 0.6126 [ 0.1683; 1.0569] 5.6 #> Warnecke et al. 0.6000 [ 0.1120; 1.0880] 4.8 #> #> Number of studies combined: k = 16 #> #> 95%-CI z p-value #> Random effects model 0.4527 [0.3347; 0.5706] 7.52 < 0.0001 #> #> Quantifying heterogeneity: #> tau^2 = 0.0138 [0.0000; 0.1036]; tau = 0.1174 [0.0000; 0.3219]; #> I^2 = 24.8% [0.0%; 58.7%]; H = 1.15 [1.00; 1.56] #> #> Test of heterogeneity: #> Q d.f. p-value #> 19.95 15 0.1739 #> #> Details on meta-analytical method: #> - Inverse variance method #> - DerSimonian-Laird estimator for tau^2 #> - Jackson method for confidence interval of tau^2 and tau
summary(fo2)
#> Identified outliers (PM) #> ------------------------- #> "DanitzOrsillo", "Shapiro et al." #> #> Results with outliers removed #> ----------------------------- #> #> Random-Effects Model (k = 16; tau^2 estimator: PM) #> #> tau^2 (estimated amount of total heterogeneity): 0.0128 (SE = 0.0207) #> tau (square root of estimated tau^2 value): 0.1130 #> I^2 (total heterogeneity / total variability): 23.42% #> H^2 (total variability / sampling variability): 1.31 #> #> Test for Heterogeneity: #> Q(df = 15) = 19.9498, p-val = 0.1739 #> #> Model Results: #> #> estimate se zval pval ci.lb ci.ub #> 0.4514 0.0596 7.5781 <.0001 0.3347 0.5682 *** #> #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #>
if (FALSE) { # Make forest plot # Pass additional arguments from meta & metafor's forest function forest(fo1, prediction = TRUE) forest(fo2, cex = .8, col = "lightblue") }