pooling {baggr}R Documentation

Pooling metrics for baggr


Compute statistics relating to heterogeneity (whole model) and pooling (for each group) given a baggr meta-analysis model. The statistics are the pooling metric by Gelman & Pardoe (2006) or its complement, the I-squared statistic.


pooling(bg, type = c("groups", "total"), summary = TRUE)

heterogeneity(bg, summary = TRUE)



output of a baggr() function


In pooling calculation is done for each of the "groups" (default) or for "total" hypereffect(s). See Details section for how calculation is done.


logical; if FALSE a whole vector of pooling values is returned, otherwise only the means and intervals


Pooling statistic describes the extent to which group-level estimates of treatment effect are "pooled" (or pulled!) closer to average treatment effect in the meta-analysis model. If pooling = "none" or "full" in baggr, then the values are always 0 or 1, respectively. If pooling = "partial", the value is somewhere between 0 and 1.

Formulae for the calculations below are provided in main package vignette.


Matrix with mean and intervals for chosen pooling metric, each row corresponding to one meta-analysis group.

Group pooling

This is the calculation done by pooling() if type = "groups" (default). See vignette("baggr") for more details on pooling calculations.

In a partial pooling model (see baggr), group k (e.g. study) has standard error of treatment effect estimate, se_k. The treatment effect (across k groups) is variable across groups, with hyper-SD parameter σ_(τ).

The quantity of interest is ratio of variation in treatment effects to the total variation. By convention, we subtract it from 1, to obtain a pooling metric p.

p = 1 - (σ_(τ)^2 / (σ_(τ)^2 + se_k^2))

Note that, since σ_{τ}^2 is a Bayesian parameter (rather than a single fixed value), p is also a parameter. It is typical for p to have very high dispersion, as in many cases we cannot precisely estimate σ_{τ}. To obtain the whole distribution of_p_ (rather than summarised values), set summary=FALSE.

Overall pooling in the model

Typically researchers want to report a single measure from the model, relating to heterogeneity across groups. This is calculated by either pooling(mymodel, type = "total") or simply heterogeneity(mymodel)

In many contexts, i.e. medical statistics, it is typical to report 1-P, called I^2 (see Higgins and Thompson, 2002; sometimes another statistic, H^2 = 1 / P, is used). Higher values of I-squared indicate higher heterogeneity; Von Hippel (2015) provides useful details for I-squared calculations.

To obtain such single estimate we need to substitute average variability of group-specific treatment effects and then calculate the same way we would calculate p. By default we use the mean across k se_k^2 values. Typically, implementations of I^2 in statistical packages use a different calculation for this quantity, which may make I's not comparable when different studies have different SE's.

Same as for group-specific estimates, P is a Bayesian parameter and its dispersion can be high.

Relationship to R-squared statistic

See Gelman & Pardoe (2006) Section 1.1 for a short explanation of how R^2 statistic relates to the pooling metric.


Gelman, Andrew, and Iain Pardoe. "Bayesian Measures of Explained Variance and Pooling in Multilevel (Hierarchical) Models." Technometrics 48, no. 2 (May 2006): 241-51.

Higgins, Julian P. T., and Simon G. Thompson. “Quantifying Heterogeneity in a Meta-Analysis.” Statistics in Medicine, vol. 21, no. 11, June 2002, pp. 1539–58.

Hippel, Paul T von. "The Heterogeneity Statistic I2 Can Be Biased in Small Meta-Analyses." BMC Medical Research Methodology 15 (April 14, 2015).

[Package baggr version 0.6.4 Index]