Best Other Meta regression
Best Other Meta regression
com
estat bubbleplot — Bubble plots after meta regress
Description
estat bubbleplot produces bubble plots after simple meta-regression with one continuous
moderator performed by using meta regress. The bubble plot is a scatterplot of effect sizes against
a moderator of interest overlaid with the predicted regression line and confidence-interval bands. In
a bubble plot, the marker sizes, “bubbles”, are proportional to study weights.
Quick start
Fit a random-effects meta-regression with a continuous moderator, x
meta regress x, random
Construct a bubble plot for x
estat bubbleplot
Same as above, but specify that the size of the marker representing studies be proportional to the
random-effects weights instead of the default fixed-effects weights
estat bubbleplot, reweighted
Construct a bubble plot with a 90% confidence interval
estat bubbleplot, level(90)
Menu
Statistics > Meta-analysis
1
2 estat bubbleplot — Bubble plots after meta regress
Syntax
estat bubbleplot if in , options
options Description
Main
reweighted make bubble size depend on random-effects weights
no regline display or suppress the regression line
no ci display or suppress the confidence intervals
level(#) set confidence level; default is as declared for meta-analysis
n(#) evaluate CI lines at # points; default is n(100)
Fitted line
lineopts(line options) affect rendition of the plotted regression line
CI plot
ciopts(ciopts) affect rendition of the plotted CI band
Add plots
addplot(plot) add other plots to the bubble plot
Y axis, X axis, Titles, Legend, Overall
twoway options any options other than by() documented in [G-3] twoway options
Options
Main
reweighted is used with random-effects meta-regression. It specifies that the sizes of the bubbles
be proportional to the weights from the random-effects meta-regression, wj∗ = 1/(b σj2 + τb2 ). By
2
default, the sizes are proportional to the precision of each study, wj = 1/b
σj .
regline and noregline display or suppress the rendition of the regression line. The default,
regline, is to display the regression line. Option noregline implies option noci.
ci and noci display or suppress confidence intervals. The default, ci, is to display them.
level(#) specifies the confidence level, as a percentage, for confidence intervals. The default is
as declared for the meta-analysis session; see Declaring a confidence level for meta-analysis in
[META] meta data. Also see option level() in [META] meta set.
n(#) specifies the number of points at which to evaluate the CIs. The default is n(100).
Fitted line
lineopts(line options) affects the rendition of the plotted regression line; see [G-3] line options.
CI plot
ciopts(ciopts) affects the rendition of the CI band in the bubble plot. ciopts are any options as defined
in [G-2] graph twoway rline and option recast(rarea) as described in [G-3] advanced options.
estat bubbleplot — Bubble plots after meta regress 3
Add plots
addplot(plot) allows adding more graph twoway plots to the graph; see [G-3] addplot option.
Y axis, X axis, Titles, Legend, Overall
twoway options are any of the options documented in [G-3] twoway options, excluding by(). These
include options for titling the graph (see [G-3] title options) and for saving the graph to disk (see
[G-3] saving option).
Introduction
A bubble plot (Berkey et al. 1995; Thompson and Sharp 1999; Thompson and Higgins 2002) is
used after simple meta-regression with a continuous moderator to describe the relation between the
effect size and the corresponding moderator. It is used as a tool to assess how well the regression
model fits the data and to potentially identify influential and outlying studies. The bubble plot is a
scatterplot with the study-specific effect sizes plotted on the y axis and the moderator of interest from
the meta-regression plotted on the x axis. The sizes of the markers or “bubbles” are proportional to
the precision of each study. The more precise (larger) the study, the larger the size of the bubble.
The predicted regression line and confidence bands are overlaid with the scatterplot.
estat bubbleplot produces bubble plots after simple meta-regression with a continuous moderator
performed by using meta regress. Traditionally, the weights used to determine the sizes of the
σj2 . After a random-effects meta-regression,
bubbles are the inverses of the effect-size variances, 1/b
you can specify the reweighted option to instead use the random-effects weights, 1/(b σj2 + τb2 ).
The predicted regression line and the 95% confidence intervals are plotted by default. You can
specify the level() option to obtain other confidence intervals. You can control the look of the lines
by specifying the options lineopts() and ciopts(). You can also suppress the lines by specifying
the options noregline and noci.
To create these plots, we first fit the random-effects meta-regression shown in example 1 of
[META] meta regress, but our focus here is not on the interpretation of these plots but on the variety
of bubble plots that can be created.
. meta regress latitude_c
Effect-size label: Log risk-ratio
Effect size: _meta_es
Std. err.: _meta_se
Random-effects meta-regression Number of obs = 13
Method: REML Residual heterogeneity:
tau2 = .07635
I2 (%) = 68.39
H2 = 3.16
R-squared (%) = 75.63
Wald chi2(1) = 16.36
Prob > chi2 = 0.0001
Test of residual homogeneity: Q_res = chi2(11) = 30.73 Prob > Q_res = 0.0012
Bubble plot
.5
0
Log risk-ratio
-.5
95% CI
Studies
Linear prediction
-1
-1.5
-2
-20 -10 0 10 20
Mean-centered latitude
Weights: Inverse-variance
The graph shows the log risk-ratios plotted against the mean-centered latitudes of the studies’ locations.
By default, the regression line and corresponding confidence intervals are plotted. We could suppress
these and plot just the bubbles with options noregline and noci, respectively. The regression line
provides a good fit of the data because most studies are relatively close to it. The log risk-ratios for
the BCG vaccine decline with increasing latitude. For more interpretation of the above bubble plot,
refer to example 1 of [META] meta regress postestimation.
estat bubbleplot — Bubble plots after meta regress 5
Bubble plot
.5
0
Log risk-ratio
-.5
95% CI
Studies
Linear prediction
-1
-1.5
-2
-20 -10 0 10 20
Mean-centered latitude
Weights: Random-effects
With random-effects weights, the sizes of the bubbles are more uniform across the studies as compared
with precision (fixed-effects) weights used in example 1. This will always be true except when τb2 = 0,
in which case the bubble sizes will be identical with both types of weights.
6 estat bubbleplot — Bubble plots after meta regress
Bubble plot
.5 12
0 8 13
5
11
Log risk-ratio
-.5 9
95% CI
6 Studies
1 Linear prediction
-1
3
10
4
-1.5
7 2
-2
-20 -10 0 10 20
Mean-centered latitude
Weights: Inverse-variance
Specifying the mlabel() option causes all the markers to have the same size. One way to get around
this is by using the addplot() option.
We can use addplot() to overlay an exact copy of the properly weighted bubble plot but without
plotting the markers and symbols, that is, using the msymbol(none) option. We can then add labels
to these nonplotted symbols to obtain the desired plot. Here is our minimal addplot() specification:
addplot(scatter _meta_es latitude_c, msymbol(none) mlabel(trial))
Bubble plot
.5 12
8 13
0
5
11
9
Log risk-ratio
-.5
95% CI
6 Studies
1
Linear prediction
-1
3
10
4
-1.5 7 2
-2
-20 -10 0 10 20
Mean-centered latitude
Weights: Inverse-variance
We used additional options to fine-tune the bubble plot. The mlabcolor(stblue) option controls
the color of the study labels. The legend(order(1 2 3)) option prevents the display of a legend
estat bubbleplot — Bubble plots after meta regress 7
key for the added scatterplot in the legend box at the bottom of the plot. Finally, the mlabpos(2)
option specifies that marker labels be drawn at the 2 o’clock position.
We generated a new variable pos to hold the individual positions of each marker label. We chose to
draw labels at 9 o’clock for trials 10 to 13, at 6 o’clock for trials 1, 2, and 5, and at 2 o’clock for
the other trials.
We now use a similar specification of addplot() from example 3, but here we add mlabvpos(pos)
and mlabgap(*2) to double the gap size between the marker labels and the markers so that the trial
labels do not touch the hollow circles; see trials 6 and 8.
. estat bubbleplot, addplot(scatter _meta_es latitude_c, mlabvpos(pos)
> mlabgap(*2) ‘opts’)
Bubble plot
.5 12
8
0 13
5 11
9
Log risk-ratio
-.5
95% CI
6 Studies
Linear prediction
-1 1
3
10 4
-1.5 7
2
-2
-20 -10 0 10 20
Mean-centered latitude
Weights: Inverse-variance
8 estat bubbleplot — Bubble plots after meta regress
We can modify other aspects of the graph such as the legend. Let’s place the legend inside the
plot region. We also specify if inlist(trial,7,12,13) with estat bubbleplot to display trial
labels only for specific trials (for example, outliers, trials with large weights, and so on).
. local legopts legend(ring(0) position(2) size(small) symxsize(*0.3)
> region(lcolor(black)))
. estat bubbleplot, addplot(scatter _meta_es latitude_c
> if inlist(trial,7,12,13), mlabvpos(pos) mlabgap(*2) ‘opts’) ‘legopts’
Bubble plot
.5 12 95% CI
Studies
Linear prediction
0 13
Log risk-ratio
-.5
-1
-1.5 7
-2
-20 -10 0 10 20
Mean-centered latitude
Weights: Inverse-variance
Within the legend() option (see [G-3] legend options), ring(0) and position(2) specify that the
legend be placed inside the plot region at the 2 o’clock position. size(small) specifies that a small
font be used for the legend key text, and symxsize(*0.3) sets the width of the key symbols to 30%
of their default width. region(lcolor(black)) adds a black border around the legend region.
References
Berkey, C. S., D. C. Hoaglin, F. Mosteller, and G. A. Colditz. 1995. A random-effects regression model for
meta-analysis. Statistics in Medicine 14: 395–411. https://doi.org/10.1002/sim.4780140406.
Thompson, S. G., and J. P. T. Higgins. 2002. How should meta-regression analyses be undertaken and interpreted?
Statistics in Medicine 21: 1559–1573. https://doi.org/10.1002/sim.1187.
Thompson, S. G., and S. J. Sharp. 1999. Explaining heterogeneity in meta-analysis: A comparison of methods. Statistics
in Medicine 18: 2693–2708. https://doi.org/10.1002/(sici)1097-0258(19991030)18:20h2693::aid-sim235i3.0.co;2-v.
Also see
[META] meta regress — Meta-analysis regression
[META] meta regress postestimation — Postestimation tools for meta regress
[META] meta — Introduction to meta
[META] Glossary
[META] Intro — Introduction to meta-analysis
Stata, Stata Press, and Mata are registered trademarks of StataCorp LLC. Stata and
®
Stata Press are registered trademarks with the World Intellectual Property Organization
of the United Nations. Other brand and product names are registered trademarks or
trademarks of their respective companies. Copyright c 1985–2023 StataCorp LLC,
College Station, TX, USA. All rights reserved.