Learn R Programming

bayesmeta (version 3.4)

funnel.bayesmeta: Generate a funnel plot for a bayesmeta object.

Description

Generates a funnel plot, showing effect estimates (\(y_i\)) vs. their standard errors (\(\sigma_i\)).

Usage

# S3 method for bayesmeta
funnel(x, main=deparse(substitute(x)), xlab=expression("effect "*y[i]),
       ylab=expression("standard error "*sigma[i]),
       zero=0.0, FE=FALSE, legend=FE, ...)

Arguments

x

a bayesmeta object.

main

main title for the plot.

xlab

x-axis title.

ylab

y-axis title.

zero

value at which a vertical ‘reference’ line should be drawn (default is 0). The line can be suppressed by setting this argument to ‘NA’.

FE

a (logical) flag indicating whether the “fixed effect” (FE) funnel (for \(\tau=0\)) is supposed to be shown along with the “random effects” (RE) funnel.

legend

a (logical) flag indicating whether a legend identifying ‘RE’ and ‘FE’ funnels is supposed to be shown.

...

other arguments passed to the plot() function.

Details

Generates a funnel plot of effect estimates (\(y_i\)) on the x-axis vs. their associated standard errors (\(\sigma_i\)) on the y-axis (Note that the y-axis is pointing downwards). For many studies (large \(k\)) and in the absence of publication (selection) bias, the plot should resemble a (more or less) symmetric “funnel” shape (Sterne et al, 2005). Presence of publication bias, i.e., selection bias due to the fact that more dramatic effects may have higher chances of publication than less pronounced (or less controversial) findings, may cause asymmetry in the plot; especially towards the bottom of the plot, studies may then populate a preferred corner.

Besides the \(k\) individual studies that are shown as circles, a vertical reference line is shown; its position is determined by the ‘zero’ argument. The “funnel” indicated in grey shows the estimated central 95% prediction interval for “new” effect estimates \(y_i\) conditional on a particular standard error \(\sigma_i\), which results from convolving the prediction interval for the true value \(\theta_i\) with a normal distribution with variance \(\sigma_i^2\). At \(\sigma_i=0\) (top of the funnel), this simply corresponds to the “plain” prediction interval for \(\theta_i\). Convolutions are computed via the convolve() function, using the algorithm described in Roever and Friede (2017).

By setting the “FE=TRUE” argument, one may request a “fixed effect” (FE) funnel along with the “random effects” (RE) funnel that is shown by default. The FE funnel is analogous to the RE funnel, except that it is based on homogeneity (\(\tau=0\)).

References

J.A.C. Sterne, B.J. Becker and M. Egger. The funnel plot. In: H.R. Rothstein, A.J. Sutton and M. Borenstein, eds. Publication bias in meta-analysis - prevention, assessment and adjustments. Wiley and Sons, 2005 (Chapter 5). tools:::Rd_expr_doi("10.1002/0470870168.ch5").

J.A.C. Sterne et al. Recommendations for examining and interpreting funnel plot asymmetry in meta-analyses of randomised controlled trials. BMJ, 343:d4002, 2011. tools:::Rd_expr_doi("10.1136/bmj.d4002").

N. Terrin, C.H. Schmid and J. Lau. In an empirical evaluation of the funnel plot, researchers could not visually identify publication bias. Journal of Clinical Epidemiology, 58(9):894-901, 2005. tools:::Rd_expr_doi("10.1016/j.jclinepi.2005.01.006").

C. Roever, T. Friede. Discrete approximation of a mixture distribution via restricted divergence. Journal of Computational and Graphical Statistics, 26(1):217-222, 2017. tools:::Rd_expr_doi("10.1080/10618600.2016.1276840").

See Also

bayesmeta, funnel

Examples

Run this code
data("dat.egger2001", package="metafor")
es <- escalc(measure="OR", ai=ai, n1i=n1i, ci=ci, n2i=n2i,
             slab=study, data=dat.egger2001)
if (FALSE) {
bm <- bayesmeta(es)
print(bm)
forestplot(bm)
funnel(bm, xlab="logarithmic odds ratio", ylab="standard error",
       main="Egger (2001) example data")
}

Run the code above in your browser using DataLab