help for metafunnel                     dialog:  metafunnel                    

Funnel plots for meta-analysis

metafunnel { theta { se | var } | exp(theta) ll ul [cl] } [if exp] [in range] [, eform noline reverse forcenull graph_options ]


metafunnel plots funnel plots. These graphical displays are used to examine whether the results of a meta-analysis may have been affected by publication or other types of bias.


by(byvarname) displays subgroups according to the value of byvarname. The legend displays the value labels for the levels of byvarname if these are present; otherwise it displays the value of each level of byvarname.

eform exponentiates the treatment effect theta and displays the horizontal axis (treatment effect) on a log scale. This is useful for displaying ratio measures such as odds ratios and risk ratios.

reverse inverts the funnel plot so that larger studies are displayed at the bottom of the plot with smaller studies at the top. This may also be achieved by specifying noreverse as part of the yscale(axis_description) graphics option.

noline specifies that pseudo 95% confidence interval lines should not be included in the plot. The default is to include them.

forcenull forces the vertical line at the centre of the funnel to be plotted at the null treatment effect of zero (1 when the treatment effect is exponentiated). The default is for the line to be plotted at the value of the fixed effect summary estimate.


Funnel plots are simple graphical displays of a measure of study size on the vertical axis against intervention or treatment effect on the horizontal axis. The name "funnel plot" is based on the fact that the precision in the estimation of the underlying intervention or treatment effect will increase as the size of component studies increases. Results from small studies will therefore scatter more widely, with the spread narrowing among larger studies. In the absence of bias the plot will resemble a symmetrical inverted funnel.

If there is bias, for example because smaller studies showing no statistically significant effects remain unpublished, then such publication bias will lead to an asymmetrical appearance of the funnel plot. It should be noted that although funnel plots have traditionally been used to examine evidence for publication bias, funnel plot asymmetry may reflect other types of bias, or even result from the true intervention or treatment effect differing between small and large studies. They should thus be seen as displaying the evidence for "small study effects" in general rather than publication bias in particular. These issues are discussed by Egger et al. (1997) and Sterne et al. (2001a).

metafunnel uses the same syntax as other meta-analysis commands such as meta, metabias, metainf and metatrim. The user provides an estimate of the treatment or intervention effect, theta, together with its associated standard error se_theta (the default) or variance var_theta, (in which case the var option should be specified). Alternatively, the user provides exp(theta) (i.e., a risk ratio or odds ratio) and its confidence interval, (ll, ul)).

The funnel plots are displayed in line with meta-analytic convention and the recommendations of Sterne et al. (2001b). The effect of the treatment or intervention in each study (horizontal axis) is plotted against the study size, as measured by the standard error of the treatment or intervention effect. (vertical axis). The vertical axis is reversed so that larger studies are displayed towards the top of the graph (this behaviour may be changed using the reverse option). Users who wish to plot the treatment effect on the vertical axis should use the graph(begg) option of the metabias command. The funnel command, which is part of the metan package, also provides an alternative way to draw funnel plots.

The plots include pseudo-95% confidence interval lines, which are drawn around the summary fixed-effect estimate of the intervention or treatment effect. The lines may be omitted using the nolines option. The user may also specify that the pseudo confidence limits are centred around a zero intervention effect using the forcenull option.

When the eform option is used, the label of the horizontal axis (treatment effect, theta) is changed accordingly, unless there is a variable label for theta or the xtitle(axis_title) graphics option is used.

By default, the subtitle "Funnel plot with pseudo 95% confidence limits" is displayed. This may be changed using the graphics option subtitle(tinfo).


. metafunnel meandiff semeandiff

. metafunnel logor selogor, eform xtitle("Odds ratio (log scale)")

. metafunnel sttd stderr, by(dose) subtitle(Funnel plot with subgroups) forcenull

. metafunnel logor varlogor, var reverse nolines xtitle(log odds ratio)


metafunnel was written by Jonathan Sterne, University of Bristol. Portions of the code were originally written by Tom Steichen, who also gave helpful comments on an early version of the command and provided the dialog.


Egger, M., Davey Smith, G., Schneider, M., & Minder, C. (1997). Bias in meta-analysis detected by a simple, graphical test. British Medical Journal 315: 629-634

Sterne, J.A.C., Egger, M. and Davey Smith, G. (2001a). Investigating and dealing with publication and other biases in meta-analysis. British Medical Journal 323: 101-105

Sterne, J.A.C. & Egger, M. (2001b). Funnel plots for detecting bias in meta-analysis: guidelines on choice of axis. Journal of Clinical Epidemiology 54: 1046-1055

Also see

Online: help for meta, metabias, metainf, metatrim, metan, funnel (if installed)