Learn R Programming

statsExpressions (version 1.3.1)

meta_analysis: Random-effects meta-analyses

Description

The table below provides summary about:

  • statistical test carried out for inferential statistics

  • type of effect size estimate and a measure of uncertainty for this estimate

  • functions used internally to compute these details

Hypothesis testing and Effect size estimation

Type Test CI available? Function used
Parametric Pearson's correlation coefficient Yes correlation::correlation()
Non-parametric Spearman's rank correlation coefficient Yes correlation::correlation()
Robust Winsorized Pearson correlation coefficient Yes correlation::correlation()
Bayesian Bayesian Pearson's correlation coefficient Yes correlation::correlation()

Usage

meta_analysis(
  data,
  type = "parametric",
  random = "mixture",
  k = 2L,
  conf.level = 0.95,
  top.text = NULL,
  ...
)

Arguments

data

A dataframe. It must contain columns named estimate (effect sizes or outcomes) and std.error (corresponding standard errors). These two columns will be used:

  • as yi and sei arguments in metafor::rma (for parametric test) or metaplus::metaplus (for robust test)

  • as y and SE arguments in metaBMA::meta_random (for Bayesian test).

type

A character specifying the type of statistical approach:

  • "parametric"

  • "nonparametric"

  • "robust"

  • "bayes"

You can specify just the initial letter.

random

The type of random effects distribution. One of "normal", "t-dist", "mixture", for standard normal, \(t\)-distribution or mixture of normals respectively.

k

Number of digits after decimal point (should be an integer) (Default: k = 2L).

conf.level

Scalar between 0 and 1. If unspecified, the defaults return 95% confidence/credible intervals (0.95).

top.text

Text to display on top of the Bayes Factor message. This is mostly relevant in the context of ggstatsplot package functions.

...

Additional arguments passed to the respective meta-analysis function.

Value

The returned tibble dataframe can contain some or all of the following columns (the exact columns will depend on the statistical test):

  • statistic: the numeric value of a statistic

  • df: the numeric value of a parameter being modeled (often degrees of freedom for the test)

  • df.error and df: relevant only if the statistic in question has two degrees of freedom (e.g. anova)

  • p.value: the two-sided p-value associated with the observed statistic

  • method: the name of the inferential statistical test

  • estimate: estimated value of the effect size

  • conf.low: lower bound for the effect size estimate

  • conf.high: upper bound for the effect size estimate

  • conf.level: width of the confidence interval

  • conf.method: method used to compute confidence interval

  • conf.distribution: statistical distribution for the effect

  • effectsize: the name of the effect size

  • n.obs: number of observations

  • expression: pre-formatted expression containing statistical details

For examples of dataframe outputs, see examples and this vignette.

Note that all examples are preceded by set.seed() calls for reproducibility.

Examples

Run this code
# NOT RUN {
# a dataframe with estimates and standard errors (`mag` dataset from `{metaplus}`)
df <- structure(list(
  study = structure(c(
    8L, 10L, 15L, 1L, 4L, 11L, 3L, 2L, 14L, 9L, 12L, 5L, 16L, 7L, 13L, 6L
  ), .Label = c(
    "Abraham", "Bertschat", "Ceremuzynski", "Feldstedt", "Golf",
    "ISIS-4", "LIMIT-2", "Morton", "Pereira", "Rasmussen", "Schechter", "Schechter 1",
    "Schechter 2", "Singh", "Smith", "Thogersen"
  ), class = "factor"),
  estimate = c(
    -0.8303483, -1.056053, -1.27834, -0.0434851, 0.2231435,
    -2.40752, -1.280934, -1.191703, -0.695748, -2.208274, -2.03816,
    -0.8501509, -0.7932307, -0.2993399, -1.570789, 0.0575873
  ),
  std.error = c(
    1.24701799987009, 0.41407060026039, 0.808139200261935,
    1.42950999996502, 0.489168400451215, 1.07220799987689, 1.1937340001022,
    1.66129199992054, 0.536177600240816, 1.10964800004326, 0.780726300312728,
    0.618448600127771, 0.625866199758383, 0.146572899950844,
    0.574039500383031, 0.0316420922190679
  )
), row.names = c(NA, -16L), class = "data.frame")

# setup
set.seed(123)
library(statsExpressions)
options(tibble.width = Inf, pillar.bold = TRUE, pillar.neg = TRUE)

meta_analysis(df) # parametric
# meta_analysis(df, type = "random", random = "normal") # robust
# meta_analysis(df, type = "bayes") # Bayesian
# }

Run the code above in your browser using DataLab