Fixed and random effects meta

advertisement
1
Metan
metan varlist [if] [in] [weight] [, measure_and_model_options
options_for_continuous_data output_options forest_plot_options ]
where measure_and_model_options may be
or rr rd fixed random fixedi peto cornfield chi2 breslow
nointeger cc(#) wgt(weightvar) second(model or estimates and
description) first(estimates and description)
and where options_for_continuous_data may be
cohen hedges glass nostandard fixed random
and where output_options may be
by(byvar) nosubgroup sgweight log eform efficacy ilevel(#)
olevel(#) sortby(varlist) label(namevar yearvar) nokeep notable
nograph nosecsub
and where forest_plot_options may be
legend(string) xlabel(#,...) xtick(#,...) boxsca(#) nobox
nooverall nowt nostats group1(string) group2(string)
effect(string) force
...with further forest_plot_options in the version 9 update
lcols(varlist) rcols(varlist) astext(#) double nohet summaryonly
rfdist rflevel(#) null(#) nulloff favours(string # string)
firststats(string) secondstats(string) boxopt() diamopt()
pointopt() ciopt() olineopt() classic nowarning graph_options
labbe varlist [if exp] [in range] [weight] [, nowt percent or(#)
rr(#) rd(#) null logit wgt(weightvar) symbol(symbolstyle)
nolegend id(idvar) textsize(#) clockvar(clockvar) gap(#)
graph_options
Description
These routines provide facilities to conduct meta-analyses of data from
more than one study and to graph the results. Either binary (event) or
continuous data from two groups may be combined using the metan command.
Additionally, intervention effect estimates with corresponding standard
errors or confidence intervals may be meta-analyzed. Several
meta-analytic methods are available, and the results may be displayed
graphically in a forest plot. A test of whether the summary effect
2
measure is equal to the null is given, as well as a test for
heterogeneity, i.e., whether the true effect in all studies is the same.
Heterogeneity is also quantified using the I-squared measure (Higgins et
al. 2003).
metan (the main meta-analysis routine) requires either two, three, four,
or six variables to be declared. When four variables are specified these
correspond to the number of events and nonevents in the experimental
group followed by those of the control group, and analysis of binary data
is performed on the 2 x 2 table. With six variables, the data are
assumed continuous and to be the sample size, mean, and standard
deviation (SD) of the experimental group followed by those of the control
group. If three variables are specified, these are assumed to be the
effect estimate and its lower and upper confidence interval, and it is
suggested that these are log transformed for odds ratios or risk ratios
and the eform option used. If two variables are specified, these are
assumed to be the effect estimate and standard error; again, it is
recommended that odds ratios or risk ratios are log transformed.
labbe draws a L'Abbe plot for event data (proportion of successes in the
two groups). This is an alternative to the graph produced by metan8.
Note that the metan command now requires Stata 9 and has been updated
with several new options. Changes are mainly to graphics options that are
discussed in the section Further options in the v9 update for metan:
Forest plot, or otherwise marked v9 update. The previous version is still
available under the name metan7.
Remarks on funnel (discontinued)
The metafunnel command has more options for funnel plots and version 8
graphics; as such funnel has been removed. See metafunnel (if installed)
Options for metan
+----------------------------------+
----+ Specifying the measure and model +--------------------------------These options apply to binary data.
rr pools risk ratios (the default).
or pools odds ratios.
rd pools risk differences.
fixed specifies a fixed effect model using the method of Mantel and
3
Haenszel (the default).
fixedi specifies a fixed effect model using the inverse variance method.
peto specifies that Peto's method is used to pool odds ratios.
random specifies a random effects model using the method of DerSimonian &
Laird, with the estimate of heterogeneity being taken from the from
the Mantel-Haenszel model.
randomi specifies a random effects model using the method of DerSimonian
and Laird, with the estimate of heterogeneity being taken from the
inverse-variance fixed-effect model.
cornfield computes confidence intervals for odds ratios by method of
Cornfield, rather than the (default) Woolf method.
chi2 displays chi-squared statistic (instead of z) for the test of
significance of the pooled effect size. This is available only for
odds ratios pooled using Peto or Mantel-Haenszel methods.
breslow produces Breslow-Day test for homogeneity of ORs.
cc(#) defines a fixed continuity correction to add in the case where a
study contains a zero cell. By default, metan8 adds 0.5 to each cell
of a trial where a zero is encountered when using inverse variance,
Der-Simonian and Laird, or Mantel-Haenszel weighting to enable finite
variance estimators to be derived. However, the cc() option allows
the use of other constants (including none). See also the nointeger
option.
nointeger allows the cell counts to be nonintegers. This may be useful
when a variable continuity correction is sought for studies
containing zero cells, but also may be used in other circumstances,
such as where a cluster-randomised trial is to be incorporated and
the "effective sample size" is less than the total number of
observations.
wgt(weightvar) specifies alternative weighting for any data type. The
effect size is to be computed by assigning a weight of weightvar to
the studies. When RRs or ORs are declared, their logarithms are
weighted. You should only use this option if you are satisfied that
the weights are meaningful.
second(model or estimates and description) (v9 update) A second analysis
may be performed using another method, using fixed, random or peto.
Alternatively, the user may define their own estimate and 95% CI
based on calculations performed externally to metan, along with a
description of their method, in the format es lci uci description.
The results of this analysis are then displayed in the table and
4
forest plot. Note that if by is used then sub-estimates from the
second method are not displayed with user defined estimates, for
obvious reasons.
first(estimates and description) (v9 update) Use of this command
completely changes the way metan operates, as results are no longer
based on any standard methods. The user defines their own estimate,
95% CI, and description as in the above and must supply their own
weightings using wgt(weightvar) to control display of box sizes. Note
that data must be supplied in the 2 or 3 variable syntax (theta
se_theta or es lci uci) and by may not be used used for obvious
reasons.
+-----------------+
----+ Continuous data +-------------------------------------------------cohen pools standardised mean differences by the method of Cohen (the
default).
hedges pools standardised mean differences by the method of Hedges.
glass pools standardised mean differences by the method of Glass.
nostandard pools unstandardized mean differences.
fixed specifies a fixed-effects model using the inverse variance method
(the default).
random specifies a random-effects model using the DerSimonian and Laird
method.
nointeger denotes that the number of observations in each arm does not
need to be an integer. By default, the first and fourth variables
specified (containing N_intervention and N_control respectively) may
occasionally be noninteger (see entry for nointeger under binary
data).
+--------+
----+ Output +----------------------------------------------------------by(byvar) specifies that the meta-analysis is to be stratified according
to the variable declared.
sgweight specifies that the display is to present the percentage weights
within each subgroup separately. By default metan presents weights as
a percentage of the overall total.
log reports the results on the log scale (valid for OR and RR analyses
from raw data counts only).
5
nosubgroup indicates that no within-group results are to be presented.
By default metan pools trials both within and across all studies.
eform exponentiates all effect sizes and confidence intervals (valid only
when the input variables are log odds-ratios or log hazard-ratios
with standard error or confidence intervals).
efficacy expresses results as the vaccine efficacy (the proportion of
cases that would have been prevented in the placebo group that would
have been prevented had they received the vaccination). Only
available with odds ratios (OR) or risk ratios (RR).
ilevel(#) specifies the coverage (e.g., 90, 95, 99 percent) for the
individual trial confidence intervals. The default is $S_level.
ilevel() and olevel() need not be the same. See set level.
olevel(#) specifies the coverage (e.g., 90, 95, 99 percent) for the
overall (pooled) trial confidence intervals. The default is $S_level.
ilevel() and olevel() need not be the same. See set level.
sortby(varlist) sorts by variable(s) in varlist.
label([namevar=namevar], [yearvar=yearvar]) labels the data by its name,
year, or both. Either or both option/s may be left blank. For the
table display, the overall length of the label is restricted to 20
characters. The lcols() option will override this if specified.
nokeep prevents the retention of study parameters in permanent variables
(see saved results below).
notable prevents display of table of results.
nograph prevents display of graph.
nosecsub (v9 update) prevents the display of subestimates using the
second method if second() is used. Note that this is invoked
automatically with user-defined estimates.
+-------------+
----+ Forest plot +-----------------------------------------------------effect(string) may be used when the effect size and its standard error
are declared. This allows the graph to name the summary statistic
used.
nooverall revents display of overall effect size on graph (automatically
enforces the nowt option).
nowt prevents display of study weight on the graph.
6
nostats prevents display of study statistics on graph.
counts (v9 update) displays data counts (n/N) for each group when using
binary data, or the sample size, mean, and SD for each group if mean
differences are used (the latter is a new feature).
group1(string), group2(string) may be used with the counts option; the
text should contain the names of the two groups.
xlabel() (v9 update) defines x-axis labels. This has been modified so
that any number of points may defined. Also, there are no longer any
checks made as to whether these points are sensible, so the user may
define anything if the force option is used. Points must be comma
separated.
xtick() adds tick marks to the x axis. Points must be comma separated.
force forces the x-axis scale to be in the range specified by xlabel().
boxsca() (v9 update) controls box scaling. This has been modified
slightly so that the default is 100 (as in a percentage) and may be
increased or decreased as such (e.g., 80 or 120 for 20% smaller or
larger respectively)
nobox prevents a "weighted box" being drawn for each study and markers
for point estimates only are shown.
texts() (v9 update) specifies font size for text display on graph. This
has been modified slightly so that the default is 100 (as in a
percentage) and may be increased or decreased as such (e.g., 80 or
120 for 20% smaller or larger, respectively)
+------------------------------------------------------+
----+ Further options for the forest plot in the v9 update +------------lcols(varlist), rcols(varlist) define columns of additional data to the
left or right of the graph. The first two columns on the right are
automatically set to effect size and weight, unless suppressed using
the options nostats and nowt. If counts is used this will be set as
the third column. textsize() can be used to fine-tune the size of the
text in order to acheive a satisfactory appearance. The columns are
labelled with the variable label, or the variable name if this is not
defined. The first variable specified in lcols() is assumed to be the
study identifier and this is used in the table output.
astext(#) specifies the percentage of the graph to be taken up by text.
The default is 50 and the percentage must be in the range 10-90.
double allows variables specified in lcols and rcols to run over two
lines in the plot. This may be of use if long strings are to be used.
7
nohet prevents display of heterogeneity statistics in the graph.
summaryonly shows only summary estimates in the graph (may be of use for
multiple subgroup analyses)
rfdist displays the confidence interval of the approximate predictive
distribution of a future trial, based on the extent of heterogeneity.
This incorporates uncertainty in the location and spread of the
random effects distribution using the formula t(df) x sqrt(se2 +
tau2) where t is the t-distribution with k-2 degrees of freedom, se2
is the squared standard error and tau2 the heterogeneity statistic.
The CI is then displayed with lines extending from the diamond. Note
that with <3 studies the distribution is inestimable and effectively
infinite, thus displayed with dotted lines, and where heterogeneity
is zero there is still a slight extension as the t-statistic is
always greater than the corresponding normal deviate. For further
information, see Higgins and Thompson (2001)
rflevel(#) specifies the coverage (e.g., 90, 95, 99 percent) for the
confidence interval of the predictive distribution. The default is
$S_level. See set level.
null(#) displays the null line at a user-defined value rather than 0 or
1.
nulloff removes the null hypothesis line from the graph.
favours(string # string) applies a label saying something about the
treatment effect to either side of the graph (strings are separated
by the # symbol). This replaces the feature available in b1title in
the previous version of metan.
firststats(string), secondstats(string) labels overall user-defined
estimates when these have been specified. Labels are displayed in
the position usually given to the heterogeneity statistics.
boxopt(), diamopt(), pointopt(), ciopt(), olineopt() specify options for
the graph routines within the program, allowing the user to alter the
appearance of the graph. Any options associated with a particular
graph command may be used, except some that would cause incorrect
graph appearance. For example, diamonds are plotted using the twoway
pcspike command, so options for line styles are available (see line
options); however, altering the x-y orientation with the option
horizontal or vertical is not allowed. So, diamopt(lcolor(green)
lwidth(thick)) feeds into a command such as pcspike(y1 x1 y2 x2,
lcolor(green) lwidth(thick)).
boxopt() controls the boxes and uses options for a weighted marker
(e.g., shape, colour, but not size). See marker_options.
8
diamopt() controls the diamonds and uses options for pcspike (not
horizontal/vertical). See line_options.
pointopt() controls the point estimate using marker options. See
marker_options and marker_label_options.
ciopt() controls the confidence intervals for studies using options
for pcspike (not horizontal/vertical). See line_options.
olineopt() controls the overall effect line with options for an
additional line (not position). See line_options.
classic specifies that solid black boxes without point estimate markers
are used as in the previous version of metan.
nowarning switches off the default display of a note warning that studies
are weighted from random-effects anaylses.
graph_options specifies overall graph options that would appear at the
end of a twoway graph command. This allows the addition of titles,
subtitles, captions, etc., control of margins, plot regions, graph
size, aspect ratio, and the use of schemes. As titles may be added
in this way, previous options, b2title, etc., are no longer
necessary. See twoway_options.
Options for labbe
nowt declares that the plotted data points are to be the same size.
percent displays the event rates as percentages rather than proportions.
null draws a line corresponding to a null effect (ie p1=p2).
or(#) draws a line corresponding to a fixed odds ratio of #.
rd(#) draws a line corresponding to a fixed risk difference of #.
rr(#) draws a line corresponding to a fixed risk ratio of #. See also the
rrn() option.
rrn(#) draws a line corresponding to a fixed risk ratio (for the
nonevent) of #. The rr() and rrn() options may require explanation.
Whereas the OR and RD are invariant to the definition of which of the
binary outcomes is the "event" and which is the "nonevent", the RR is
not. That is, while the command metan a b c d , or gives the same
result as metan b a d c , or (with direction changed), an RR analysis
does not. The L'Abbe plot allows the display of either or both to be
superimposed risk difference.
9
logit is for use with the or() option; it displays the probabilities on
the logit scale ie log(p/1-p). On the logit scale, the odds ratio is
a linear effect, and so this makes it easier to assess the "fit" of
the line.
wgt(weightvar) specifies alternative weighting by the specified variable
(default is sample size).
symbol(symbolstyle) allows the symbol to be changed (see help
symbolstyle) the default being hollow circles (or points if weights
are not used).
nolegend suppresses a legend being displayed (the default if more than
one line corresponding to effect measures are specified).
id(idvar) displays marker labels with the specified ID variable idvar.
clockvar() and gap() may be used to fine-tune the display, which may
become unreadable if studies are clustered together in the graph.
textsize(#) increases or decreases the text size of the ID label by
specifying # to be more or less than unity. The default is usually
satisfactory but may need to be adjusted.
clockvar(clockvar) specifies the position of idvar around the study
point, as if it were a clock face (values must be integers; see
clockposstyle). This may be used to organize labels where studies
are clustered together. By default, labels are positioned to the left
(9 o'clock) if above the null and to the right (3 o'clock) if below.
Missing values in clockvar will be assigned the default position, so
this need not be specified for all observations.
gap(#) increases or decreases the gap between the study marker and the ID
label by specifying # to be more or less than unity. The default is
usually satisfactory but may need to be adjusted.
graph_options are options for Stata 8 graphs (see help on graph).
Remarks on metan
For two or three variables, a variance-weighted analysis is performed in
a similar fashion to the meta command; the two variable syntax is theta
and SE(theta). The 3 variable syntax is theta, lower ci (theta), upper ci
(theta). Note that in this situation "theta" is taken to be the logarithm
of the effect size if the odds ratio or risk ratio is used. This differs
from the equivalent in the meta command. This program does not assume
the three variables need log transformation: if odds ratios or risk
ratios are combined, it is up to the user to log-transform them first.
The eform option may be used to change back to the original scale if
10
needed. By default the confidence intervals are assumed symmetric, and
the studies are pooled by taking the variance to be equal to (CI
width)/2z.
Note that for graphs on the log scale (that is, ORs or RRs), values
outside the range [10e-8,10e8] are not displayed, and similarly graphs of
other measures (log ORs, RDs, SMDs) are restricted to the range
[-10e8,10e8]. A confidence interval which extends beyond this, or the
specified scale if force is used, will have an arrow added at the end of
the range.
Further notes on v9 update: If by is used with a string variable the
stratification variable is not sorted alpha-numerically and the original
order that the groups appear in the data is preserved. This may be of use
if a particular display order is required; if not, sortby may be used.
The option counts is now available for continuous data and displays
sample size, mean and SD in each group. The estimate for heterogeneity
between groups from a stratified analysis using the Mantel-Haenszel
method, and arguably the Peto method, is invalid. Therefore this is not
displayed in the output for either of these methods.
Remarks on labbe
By default the size of the plotting symbol is proportional to the sample
size of the study. If weights are specified the plotting size will be
proportional to the weight variable. Note that labbe has now been updated
to version 8 graphics. All options work the same as in the previous
version, and some minor graphics options have been added.
Stored
By default, metan adds the following new variables to the dataset:
_ES
_seES
Effect size (ES)
Standard error of ES
or, when OR or RR are specfied:
_selogES the standard error of its logarithm
_LCI
Lower confidence limit for ES
_UCI
Upper confidence limit for ES
_WT
Study percentage weight
_SS
Study sample size
Examples
All examples use a simulated example dataset (Ross Harris 2006)
. use http://fmwww.bc.edu/repec/bocode/m/metan_example_data
11
Risk difference from raw cell counts, random effects model, "label"
specification with counts displayed
. metan tdeath tnodeath cdeath cnodeath,
rd random label(namevar=id, yearid=year) counts
(click to run)
Sort by year, use data columns syntax. Text size increased, specify
percentage of graph as text and two lines per study; suppress stats,
weight, heterogeneity stats and table.
. metan tdeath tnodeath cdeath cnodeath,
sortby(year) lcols(id year country) rcols (population)
textsize(110) astext(60) double nostats nowt nohet notable
(click to run)
Analyze continuous data (6 parameter syntax), stratify by type of study,
with weights summing to 100 within sub group, second analysis
specified, display random effects distribution, show raw data counts,
display "favours treatment vs. favours control" labels
. metan tsample tmean tsd csample cmean csd,
by(type_study) sgweight fixed second(random) rfdist
counts label(namevar = id)
favours(Treatment reduces blood pressure # Treatment increases
blood pressure)
(click to run)
Generate log odds ratio and standard error, analyse with 2 parameter
syntax. Graph has exponential form, scale is forced within set
limits and ticks added, effect label specified.
. gen logor = ln( (tdeath*cnodeath)/(tnodeath*cdeath) )
. gen selogor = sqrt( (1/tdeath) + (1/tnodeath) + (1/cdeath) +
(1/cnodeath) )
. metan logor selogor, eform xlabel(0.5, 1, 1.5, 2, 2.5)
force xtick(0.75, 1.25, 1.75, 2.25) effect(Odds ratio)
(click to run)
Display diagnostic test data with 3 parameter syntax. Weight is number of
positive diagnoses, axis label set, and null specified at 50%.
Overall effect estimate is not displayed, graph for visual
examination only.
. metan percent lowerci upperci, wgt(n_positives)
xlabel(0,10,20,30,40,50,60,70,80,90,100) force
12
null(50) label(namevar=id) nooverall notable
title(Sensitivity, position(6))
(click to run)
User has analysed data with a nonstandard technique and supplied effect
estimates, weights and description of statistics. The scheme
"Economist" has been used.
. metan OR ORlci ORuci, wgt(bweight)
first(0.924 0.753 1.095 Bayesian)
firststats(param V=3.86, p=0.012)
label(namevar=id)
xlabel(0.25, 0.5, 1, 2, 4) force
null(1) aspect(1.2) scheme(economist)
(click to run)
Variable counts defined showing raw data. Options to change the box,
effect estimate marker and confidence interval used, and the counts
variable has been attached to the estimate marker as a label.
. gen counts = ". " + string(tdeath) + "/" + string(tdeath+tnodeath)
+ ", " + string(cdeath) + "/" + string(cdeath+cnodeath)
. metan tdeath tnodeath cdeath cnodeath,
lcols(id year) notable
boxopt( mcolor(forest_green) msymbol(triangle) )
pointopt( msymbol(triangle) mcolor(gold) msize(tiny)
mlabel(counts) mlabsize(vsmall) mlabcolor(forest_green)
mlabposition(1) )
ciopt( lcolor(sienna) lwidth(medium) )
(click to run)
L'Abbe plot with labelled axes and display of risk ratio and risk
difference.
. labbe tdeath tnodeath cdeath cnodeath,
xlabel(0,0.25,0.5,0.75,1) ylabel(0,0.25,0.5,0.75,1)
rr(1.029) rd(0.014) null
(click to run)
Authors
Michael J Bradburn, Jonathan J Deeks, Douglas G Altman. Centre for
Statistics in Medicine, University of Oxford, Wolfson College Annexe,
Linton Road, Oxford, OX2 6UD, UK
Version 9 update
13
Ross J Harris (rossharris1978@yahoo.co.uk), Roger M Harbord, Jonathan A C
Sterne. Department of Social Medicine, University of Bristol, Canynge
Hall, Whiteladies Road, Bristol BS8 2PR, UK
Other updates and improvements to code and help file
Patrick Royston. MRC Clinical Trials Unit, 222 Euston Road, London, NW1 2DA
Acknowledgements
Thanks to Vince Wiggins, Kit Baum, and Jeff Pitblado of Statacorp who
offered advice and helped facilitate the version 9 update. Thanks also
to all the people who helped with beta-testing and made comments and
suggested improvements.
References
Higgins, J. P. T. , S. G. Thompson, J. J. Deeks, and D. G. Altman. 2003.
Measuring inconsistency in meta-analyses. British Medical Journal
327: 557-560.
Higgins, J. P. T., and S. G. Thompson. 2001. Presenting random effects
meta-analyses: Where we are going wrong? 9th International Cochrane
Colloquium, Lyon, France.
Also see
Article: Stata Journal, volume 9, number 2: sbe24_3
Stata Journal, volume 8, number 1: sbe24_2
Stata Technical Bulletin 45: sbe24.1
Stata Technical Bulletin 44: sbe24
Online: metan7, metannt meta (if installed), metacum (if installed),
metareg (if installed), metabias (if installed), metatrim (if
installed), metainf (if installed), galbr (if installed),
metafunnel (if installed)
14
metacum: Cumulative meta-analysis, with graphics
metacum varlist [if] [in] [, [binary_data_options |
continuous_data_options | precalculated_effect_estimates_options]
measure_and_model_option output_options forest_plot_options]
binary_data_options
or rr rd fixed random fixedi randomi peto nointeger cc(#)
continuous_data_options
cohen hedges glass nostandard fixed random nointeger
precalculated_effect_estimates_options
fixed random
measure_and_model_option
wgt(wgtvar)
output_options
by(byvar) log eform ilevel(#) sortby(varlist)
label([namevar=namevar], [yearvar=yearvar]) notable nograph
forest_plot_options
xlabel(#,...) xtick(#,...) textsize(#) nowt nostats counts
group1(string) group2(string) effect(string) force lcols(varlist)
rcols(varlist) astext(#) double summaryonly null(#) nulloff
favours(string # string) pointopt(marker_options |
marker_label_options) ciopt(line_options) olineopt(line_options)
classic nowarning graph_options
Description
metacum provides cumulative pooled estimates and confidence limits
obtained from fixed or random effects meta-analysis and plots the
cumulative pooled estimates in the style of Lau et al. (1992).
This updated version requires that metan is installed, for which metacum
15
now acts as a wrapper. As such the syntax is very similar, allowing the
user to supply data in a variety of formats. Version 9 graphics are
displayed and most of the options for metan, and many general graphics
options, are permitted. This help file is very similar to that of metan,
although with the omission of some options.
metacum requires either two, three, four or six variables to be declared.
When four variables are specified these correspond to the number of
events and non-events in the experimental group followed by those of the
control group, and analysis of binary data is performed on the 2x2 table.
With six variables, the data are assumed continuous and to be the sample
size, mean and standard deviation of the experimental group followed by
those of the control group. If three variables are specified these are
assumed to be the effect estimate and its lower and upper confidence
interval, and it is suggested that these are log transformed for odds
ratios or risk ratios and the eform option used. If two variables are
specified these are assumed to be the effect estimate and standard error;
again, it is recommended that odds ratios or risk ratios are log
transformed.
Options
- binary_data_options
or pools ORs.
rr pools RRs; this is the default.
rd pools risk differences.
fixed specifies a fixed-effect model using the Mantel-Haenszel method;
this is the default.
random specifies a random-effects model using the DerSimonian and Laird
method, with the estimate of heterogeneity being taken.
fixedi specifies a fixed-effect model using the inverse-variance method.
randomi specifies a random-effects model using the DerSimonian and Laird
method, with the estimate of heterogeneity being taken from the
inverse-variance fixed-effect model.
peto specifies that the Peto method is used to pool ORs.
nointeger allows the cell counts to be nonintegers. This option may be
useful when a variable continuity correction is sought for studies
containing zero cells but also may be used in other circumstances,
such as where a cluster-randomized trial is to be incorporated and
the "effective sample size" is less than the total number of
16
observations.
cc(#) defines a fixed-continuity correction to add where a study contains
a zero cell. By default, metan8 adds 0.5 to each cell of a trial
where a zero is encountered when using inverse-variance, DerSimonian
and Laird, or Mantel-Haenszel weighting to enable finite variance
estimators to be derived. However, the cc() option allows the use of
other constants (including none). See also the nointeger option.
- continuous_data_options
cohen pools standardized mean differences by the Cohen method; this is
the default.
hedges pools standardized mean differences by the Hedges method.
glass pools standardized mean differences by the Glass method.
nostandard pools unstandardized mean differences.
fixed specifies a fixed-effect model using the Mantel-Haenszel method;
this is the default.
random specifies a random-effects model using the DerSimonian and Laird
method, with the estimate of heterogeneity being taken.
nointeger denotes that the number of observations in each arm does not
need to be an integer. By default, the first and fourth variables
specified (containing N_intervention and N_control, respectively) may
occasionally be noninteger (see nointeger under binary data).
- precalculated_effect_estimates_options
fixed specifies a fixed-effect model using the Mantel-Haenszel method;
this is the default.
random specifies a random-effects model using the DerSimonian and Laird
method, with the estimate of heterogeneity being taken.
- measure_and_model_option
wgt(wgtvar) specifies alternative weighting for any data type. The effect
size is to be computed by assigning a weight of wgtvar to the
studies. When RRs or ORs are declared, their logarithms are weighted.
This option should be used only if you are satisfied that the weights
are meaningful.
- output_options
by(byvar) specifies that the meta-analysis is to be stratified according
17
to the variable declared.
log reports the results on the log scale (valid only for ORs and RRs
analyses from raw data counts).
eform exponentiates all effect sizes and confidence intervals (valid only
when the input variables are log-ORs or log-hazard ratios with
standard error or confidence intervals).
ilevel(#) specifies the coverage (e.g., 90%, 95%, 99%) for the individual
trial confidence intervals; the default is $S_level. See set level.
sortby(varlist) sorts by variable(s) in varlist.
label([namevar=namevar], [yearvar=yearvar]) labels the data by its name,
year, or both. Either or both variable lists may be left blank. For
the table display, the overall length of the label is restricted to
20 characters. If the lcols() option is also specified, it will
override the label() option.
notable prevents the display of a results table.
nograph prevents the display of a graph.
- forest_plot_options
xlabel(#,...) defines x-axis labels. This option has been modified so
that any number of points may be defined. Also, checks are no longer
made as to whether these points are sensible, so the user may define
anything if the force option is used. Points must be comma separated.
xtick(#,...) adds tick marks to the x-axis. Points must be comma
separated.
textsize(#) specifies the font size for the text display on the graph.
This option has been modified so that the default is textsize(100)
(as in 100%) and the percentage may be increased or decreased (e.g.,
80 or 120 for 20% smaller or larger, respectively).
nowt prevents the display of study weight on the graph.
nostats prevents the display of study statistics on the graph.
counts displays data counts (n/N) for each group when using binary data
or the sample size, mean, and standard deviation for each group if
mean differences are used (the latter is a new feature).
group1(string) and group2(string) may be used with the counts option, and
the text should contain the names of the two groups.
18
effect(string) allows the graph to name the summary statistic used when
the effect size and its standard error are declared.
force forces the x-axis scale to be in the range specified by xlabel().
lcols(varlist) and rcols(varlist) define columns of additional data to
the left or right of the graph. The first two columns on the right
are automatically set to effect size and weight, unless suppressed by
using the options nostats and nowt. If counts is used, this will be
set as the third column. textsize() can be used to fine-tune the
size of the text to achieve a satisfactory appearance. The columns
are labeled with the variable label or the variable name if this is
not defined. The first variable specified in lcols() is assumed to be
the study identifier and this is used in the table output.
astext(#) specifies the percentage of the graph to be taken up by text.
The default is 50%, and the percentage must be in the range 10-90.
double allows variables specified in lcols() and rcols() to run over two
lines in the plot. This option may be of use if long strings are
used.
summaryonly shows only summary estimates in the graph. This option may be
of use for multiple subgroup analyses.
null(#) displays the null line at a user-defined value rather than at 0
or 1.
nulloff removes the null hypothesis line from the graph.
favours(string # string) applies a label saying something about the
treatment effect to either side of the graph (strings are separated
by the # symbol). This option replaces the feature available in
b1title in the previous version of metan.
pointopt(marker_options), ciopt(line_options), and olineopt(line_options)
specify options for the graph routines within the program, allowing
the user to alter the appearance of the graph. Any options associated
with a particular graph command may be used, except some that would
cause incorrect graph appearance. For example, diamonds are plotted
using the twoway pcspike command, so options for line styles are
available (see line options); however, altering the x-y orientation
with the option horizontal or vertical is not allowed. So,
ciopt(lcolor(green) lwidth(thick)) feeds into a command such as
pcspike(y1 x1 y2 x2, lcolor(green) lwidth(thick))
pointopt(marker_options) controls the point estimate by using marker
options. See marker_options and marker_label_options.
ciopt(line_options) controls the confidence intervals for studies by
19
using options for twoway pcspike (not horizontal/vertical). See
line_options.
olineopt(line_options) controls the overall effect line with options
for another line (not position). See line_options.
classic specifies that solid black boxes without point estimate markers
are used, as in the previous version of metan.
nowarning switches off the default display of a note warning that studies
are weighted from random-effects analyses.
graph_options are any of the options documented in [G] twoway_options.
These allow the addition of titles, subtitles, captions, etc.;
control of margins, plot regions, graph size, aspect ratio; and the
use of schemes. Because titles may be added with graph_options,
previous options such as b2title are no longer necessary.
Remarks on metacum (calling metan)
For two or three variables, a variance-weighted analysis is performed in
a similar fashion to the meta command; the two variable syntax is theta
and SE(theta). The 3 variable syntax is theta, lower ci (theta), upper ci
(theta). Note that in this situation "theta" is taken to be the logarithm
of the effect size if the odds ratio or risk ratio is used. This differs
from the equivalent in the meta command. This program does not assume
the three variables need log transformation: if odds ratios or risk
ratios are combined, it is up to the user to log-transform them first.
The eform option may be used to change back to the original scale if
needed. By default the confidence intervals are assumed symmetric, and
the studies are pooled by taking the variance to be equal to (CI
width)/2z.
Note that for graphs on the log scale (that is, ORs or RRs), values
outside the range [10e-8,10e8] are not displayed, and similarly graphs of
other measures (log ORs, RDs, SMDs) are restricted to the range
[-10e8,10e8]. A confidence interval which extends beyond this, or the
specified scale if force is used, will have an arrow added at the end of
the range.
Examples
All examples use a simulated example dataset (Ross Harris 2006)
. use http://fmwww.bc.edu/repec/bocode/m/metan_example_data
Risk difference from raw cell counts, random effects model, "label"
specification
20
. metacum tdeath tnodeath cdeath cnodeath,
rd random label(namevar=id, yearid=year)
(click to run)
Generate log odds ratio and standard error. Graph has exponential form,
scale is forced within set limits and ticks added. Data columns
syntax used and effect label specified.
. gen logor = ln( (tdeath*cnodeath)/(tnodeath*cdeath) )
. gen selogor = sqrt( (1/tdeath) + (1/tnodeath) + (1/cdeath) +
(1/cnodeath) )
. metacum logor selogor, eform xlabel(0.6, 0.8, 1, 1.2, 1.4, 1.6)
force xtick(0.7, 0.9, 1.1, 1.3, 1.5) lcols(id year country)
effect(Odds ratio)
(click to run)
Reference
Lau, J., E. M. Antman, J. Jimenez-Silva, F. Mosteller, and T. C.
Chalmers. 1992. Cumulative meta-analysis of therapeutic trials for
myocardial infarction. New England Journal of Medicine 327: 248-254.
Authors
First version
Jonathan A. C. Sterne
Department of Social Medicine, University of Bristol, Canynge Hall,
Whiteladies Road, Bristol BS8 2PR, UK
Version 9 update
Ross J. Harris
Department of Social Medicine, University of Bristol, Canynge Hall,
Whiteladies Road, Bristol BS8 2PR, UK
Also see
Article: Stata Journal, volume 9, number 1: sbe22_1
Stata Technical Bulletin 44: sbe24
Online: metan, metannt (if installed), meta (if installed), metareg (if
installed), metabias (if installed), metatrim (if installed),
metainf (if installed), galbr (if installed), metafunnel (if
installed)
21
metareg -- Meta-analysis regression (revised)
Syntax
metareg depvar [indepvars] [if] [in] wsse(varname) [, eform graph
randomsize noconstant mm reml eb knapphartung z tau2test
level(#) permute(# [, univariable detail joint(varlist1 [|
varlist2 ...])]) log maximize_options]
by can be used with metareg; see [D] by.
Description
metareg performs random-effects meta-regression using aggregate-level
data.
From a more abstract perspective, it extends vwls by estimating an extra
additive component of variance tau2:
y_i = a + B*x_i + u_i + e_i
where a is a constant, u_i is a normal error term with known standard
deviations wsse_i that may vary across units, and e_i is a normal error
with variance tau2 to be estimated, assumed equal across units. This is
a similar model to those fit by the xt commands, except that the
within-unit data have been summarized by an effect estimate and its
standard error for each unit i.
Options
wsse(varname) specifies the variable containing the standard error of
depvar within each study (within-study standard error). All values
of varname must be greater than zero. wsse() is required.
eform indicates to output the exponentiated form of the coefficients and
to suppress reporting of the constant. This option may be useful
when depvar is the logarithm of a ratio measure, such as a log
odds-ratio or a log risk-ratio.
graph requests a line graph of fitted values plotted against the first
covariate in indepvars, together with the estimates from each study
represented by circles. By default, the circle sizes depend on the
precision of each estimate (the inverse of its within-study
variance), which is the weight given to each study in the
fixed-effects model.
randomsize is for use with the graph option. It specifies that the size
22
of the circles will depend on the weights in the random-effects model
rather than the precision of each estimate. These random-effects
weights depend on the estimate of tau2.
- The remaining options will mainly be of interest to more advanced users:
noconstant suppresses the constant term (intercept). This is rarely
appropriate in meta-regression.
The mm, reml, and eb options are alternatives that specify the method of
estimation of the additive (between-study) component of variance tau2.
mm specifies the use of method of moments to estimate the additive
(between-study) component of variance tau2; this is a generalization
of the DerSimonian and Laird (1986) method commonly used for
random-effects meta-analysis. For speed, this is the default when
the permute() option is specified, because it is the only
noniterative method.
reml specifies the use of residual maximum likelihood (REML) to estimate
the additive (between-study) component of variance tau2. This is the
default unless the permute() option is specified. This revised
version uses Stata's maximum likelihood facilities to maximize the
REML log likelihood. It will therefore not give identical results to
the previous version of metareg, which used an approximate iterative
method.
eb specifies the use of the "empirical Bayes" method to estimate tau2
(Morris 1983).
knapphartung makes a modification to the variance of the estimated
coefficients suggested by Knapp and Hartung (2003), accompanied by
the use of a t distribution in place of the standard normal
distribution when calculating p-values and confidence intervals.
This is the default unless the permute() option is specified.
z requests that the knapphartung modification not be applied and that the
standard normal distribution be used to calculate p-values and
confidence intervals. This is the default when the permute() option
is specified with a fixed-effects model.
tau2test adds to the output two tests of tau2 = 0. The first is based on
the residual heterogeneity statistic, Q_res. The second (not
available if the mm option is also specified) is a likelihood-ratio
test based on the REML log likelihood. These are two tests of the
same null hypothesis (the fixed-effects model with tau2 = 0), but the
alternative hypotheses are different, as are the distributions of the
test statistics under the null, so close agreement of the two tests
is not guaranteed. Both tests are typically of little interest
because it is more helpful to quantify heterogeneity than to test for
23
it.
level(#) specifies the confidence level, as a percentage, for confidence
intervals. The default is level(95) or as set by set level.
permute(...) calculates p-values by using a Monte Carlo permutation test.
See Option for permutation test for more information about the
option.
log requests the display of the iteration log during estimation of tau2.
This is ignored if the mm option is specified, because this uses a
noniterative method.
maximize_options are ignored unless estimation of tau2 is by REML. These
options control the maximization process; see maximize. You should
never need to specify them; they are supported only in case problems
in the REML estimation of tau2 are ever reported or suspected.
Option for permutation test
The permute() option calculates p-values by using a Monte Carlo
permutation test, as recommended by Higgins and Thompson (2004). To
address multiple testing, permute() also calculates p-values for the
most- to least-significant covariates, as the same authors also
recommend.
The syntax of permute() is
permute(# [, univariable detail joint(varlist1 [| varlist2 ...])])
where # is required and specifies the number of random permutations to
perform. Larger values give more precise p-values but take longer.
There are three suboptions:
univariable indicates that p-values should be calculated for a series of
single covariate meta-regressions of each covariate in varlist
separately, instead of a multiple meta-regression of all covariates
in varlist simultaneously.
detail requests more detailed output in the style given by permute.
joint(varlist1 [| varlist2 ...]) specifies that a permutation p-value
should also be computed for a joint test of the variables in each
varlist.
The eform, level(), and z options have no effect when the permute()
option is specified.
24
Syntax of predict
The syntax of predict following metareg is
predict [type] newvar [if] [in] [, statistic]
where statistic is
xb
fitted values; the default
stdp
standard error of the prediction
stdf
standard error of the forecast
u
predicted random effects
ustandard standardized predicted random effects
xbu
prediction including random effects
stdxbu
standard error of xbu
hat
leverage (diagonal elements of hat matrix)
These statistics are available both in and out of sample; type predict
... if e(sample) ... if wanted only for the estimation sample.
Options for predict
xb, the default, calculates the linear prediction, x_i*b, that is, the
fitted values excluding the random effects.
stdp calculates the standard error of the prediction (the standard error
of the fitted values excluding the random effects).
stdf calculates the standard error of the forecast. This gives the
standard deviation of the predicted distribution of the true value of
depvar in a future study, with the covariates given by varlist.
stdf^2 = stdp^2 + tau2.
u calculates the predicted random effects, u_i. These are the best
linear unbiased predictions of the random effects, also known as the
empirical Bayes (or posterior mean) estimates of the random effects,
or as shrunken residuals.
ustandard calculates the standardized predicted random effects, i.e., the
predicted random effects, u_i, divided by their (unconditional)
standard errors. These may be useful for diagnostics and model
checking.
xbu calculates the prediction including random effects, a + B*x_i + u_i,
also known as the empirical Bayes estimates of the effects for each
study.
stdxbu calculates the standard error of the prediction including random
25
effects.
hat calculates the leverages (the diagonal elements of the projection hat
matrix).
Saved results
When the permute() option is not specified, metareg saves the following
in e():
Scalars
e(N)
e(df_m)
e(df_Q)
e(df_r)
e(remll)
e(chi2_c)
e(F)
e(tau2)
e(Q)
e(I2)
e(q_KH)
e(remll_c)
e(tau2_0)
e(chi2)
Macros
e(cmd)
e(predict)
e(wsse)
e(depvar)
e(method)
e(properties)
Matrices
e(b)
e(V)
Functions
e(sample)
number of observations
model degrees of freedom
degrees of freedom for test of Q=0
residual degrees of freedom (if t tests used)
REML log likelihood
chi^2 for comparison test
model F statistic
estimate of tau2
Cochran's Q
I-squared
Knapp-Hartung variance modification factor
REML log likelihood, comparison model
tau2, constant-only model
model chi^2
metareg
program used to implement predict
name of wsse() variable
name of dependent variable
REML, Method of moments, or Empirical Bayes
bV
coefficient vector
variance-covariance matrix of estimators
marks estimation sample
Examples
. metareg logrr latitude, wsse(selogrr) eform
. metareg logrr latitude, wsse(selogrr) graph
. metareg smd abstract duration itt, wsse(sesmd) permute(10000)
26
. metareg smd abstract duration itt, wsse(sesmd) permute(1000,
univariable)
. xi: metareg logor i.group, wsse(selogor) permute(1000, joint(i.group))
Note
metareg is programmed as a Stata estimation command and so supports many
of the commands listed under estcom and postest (except when the
permute() option is used). One deliberate exception is lrtest, which is
not appropriate after metareg (because the REML log likelihood cannot be
used to compare models with different fixed effects, while the method of
moments is not based on a likelihood). For this reason, when the REML
method is used, the iteration log showing the log likelihood is
suppressed by default; specify the log option if you wish to see it.
References
DerSimonian, R., and N. Laird. 1986. Meta analysis in clinical trials.
Controlled Clinical Trials 7: 177-188.
Higgins, J. P. T, and S. G. Thompson. 2004. Controlling the risk of
spurious findings from meta-regression. Statistics in Medicine 23:
1663-1682.
Knapp, G., and J. Hartung. 2003. Improved tests for a random effects
meta-regression with a single covariate. Statistics in Medicine 22:
2693-2710.
Morris, C. N. 1983. Parametric empirical Bayes inference: Theory and
applications. Journal of the American Statistical Association 78:
47-55.
Sharp, S. 1998. sbe23: Meta-analysis regression. Stata Technical Bulletin
42: 16-22. Reprinted in Stata Technical Bulletin Reprints, vol. 7,
pp. 148-155. College Station, TX: Stata Press.
Author
Roger M. Harbord
Department of Social Medicine
University of Bristol, UK
roger.harbord@bristol.ac.uk
Acknowledgments
27
This is a substantial revision of the original version of metareg written
by Stephen Sharp (1998), who gave his permission to release this version
under the same name and to incorporate his code. Julian Higgins gave
advice on the permutation test. Aijing Shang tested early versions and
made helpful suggestions. Portions of the new code borrow ideas from
official Stata commands such as nbreg, and I thank StataCorp for making
such code visible to the user.
A dialog box, written by Thomas J. Steichen, is available for the
original version of the metareg command.
Also see
Article: Stata Journal, volume 8, number 4: sbe23_1,
Stata Technical Bulletin 42: sbe23
Manual: [R] meta,
[R] permute
Online: [R] vwls, [R] permute, meta (if installed), metan (if
installed), meta_dialog (if installed)
28
metafunnel
Funnel plots for meta-analysis
metafunnel { theta { se | var } | exp(theta) { ll ul [cl] }} [if exp]
[in range] [, by(by_var) [var | ci] noline forcenull reverse
eform egger graph_options ]
Description
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.
The syntax is based on the same framework as for the meta, metabias,
metacum, and metatrim commands. The user provides the effect estimate
theta and either its standard error, se, or its variance, var.
Alternatively, the user may provide exp(theta), its confidence interval
(ll, ul), and, optionally, the confidence level. For more details, see
help meta.
Options
by(by_var) displays subgroups according to the value of by_var. The
legend displays the value labels for the levels of by_var if these
are present; otherwise, it displays the value of each level of
by_var.
var and ci indicate that instead of the standard error of theta, the user
supplied the variance of theta or confidence interval for exp(theta).
For more details, see help meta.
noline specifies that pseudo 95% confidence interval lines not be
included in the plot. The default is to include them.
forcenull forces the vertical line at the center 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.
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.
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.
29
egger adds the fitted line corresponding to the regression test for
funnel-plot asymmetry proposed by Egger et al. (1997) and implemented
in metabias. This option may not be combined with the by() option.
graph_options can be most of the options allowed by the graph twoway
scatter command, such as marker_label_options. If option egger if
specified, the look of the fitted line can be changed using any of
the connect_options that start with cl*.
Remarks
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, Egger, and Davey
Smith (2001).
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 (the default) or variance var, in which case the var
option should be specified. Alternatively, the user provides a risk ratio
or odds ratio (exp(theta), its confidence interval (ll, ul), and,
optionally, the confidence level.
The funnel plots are displayed in line with meta-analytic convention and
the recommendations of Sterne and Egger (2001). The effect of the
treatment or intervention in each study:
The horizontal axis is plotted against the study size, as measured by
the standard error of the treatment or intervention effect.
The vertical axis is reversed so that larger studies are displayed
30
towards the top of the graph (this behavior 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 centered 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 (or simply "Funnel plot" if the nolines option is
specified). This may be changed using the graphics option
subtitle(tinfo).
Examples
. 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)
Acknowledgments
metafunnel was written by Jonathan Sterne and Roger Harbord, 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. Nick Cox provided extensive programming
advice.
References
Egger, M., G. Davey Smith, M. Schneider, and C. Minder. 1997. Bias in
31
meta-analysis detected by a simple, graphical test. British Medical
Journal 315: 629-634.
Sterne, J. A. C., M. Egger, and G. Davey Smith. 2001. Investigating and
dealing with publication and other biases in meta-analysis. British
Medical Journal 323: 101-105.
Sterne, J. A. C. and M. Egger. 2001. 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)
32
confunnel
Realce en el gráfico en embudo de los contornos de significación estadística
Syntax
confunnel varname1 varname2 [if] [in] [, options]
options
description
------------------------------------------------------------------------contours(numlist)
specify significance levels of the
contours to be plotted; default is
1%, 5%, and 10% significance levels
contcolor(colorstyle)
specify color of the contour lines
if shadedcontours is not specified
extraplot(plots)
specify additional plots to overlay
the funnel plot
functionlowopts(options)
pass options to the twoway function
commands used to draw the contours
functionuppopts(options)
pass options to the twoway function
commands used to draw the contours
legendlabels(labels)
specify labels in the legend for
added items
legendopts(options)
specify options that affect the plot
legend
metric(se|invse|var|invvar)
the scale of the y axis; either se,
invse, var, or invvar
onesided(lower|upper)
lower- or upper-tailed, one-sided
significance contours
scatteropts(options)
specifies any of the options
documented in scatter
shadedcontours
specify shaded, instead of black,
contour lines
[no]shadedregions
specify or suppress shaded regions
between the contours
solidcontours
specify solid, instead of dashed,
contour lines
studylab(string)
the legend label for the scatter
points
twowayopts(twoway_options)
pass options to the twoway plot
twoway_options
pass options to the twoway plot
-------------------------------------------------------------------------
Description
confunnel plots contour-enhanced funnel plots for assessing small-study
reporting bias in meta-analysis.
33
Vontours illustrating the statistical significance of the study-effect
estimates are plotted from either a one- or two-tailed test.
confunnel requires two input variables; varname1 a variable of effect
estimates such as log odds ratios and varname2 a variable of the standard
errors of the effect estimates.
The y axis can be specified using different scales, namely, standard
error, inverse standard error, variance, and inverse variance.
Options
contours(numlist) specifies the significance levels of the contours to be
plotted; the default is contours(1 5 10). There are only distinct
line patterns for 8 significance levels. See numlist.
contcolor(colorstyle) specifies the color of the contour lines if
noshadedcontours is specified. See [G] colorstyle.
extraplot(plots) specifies one or multiple additional plots to be
overlaid on the funnel plot.
functionlowopts(options) and functionuppopts(options) pass options to the
twoway function commands used to draw the significance contours; for
example, the line widths can be changed. See [G] graph twoway
function.
legendlabels(labels) specifies labels in the legend for extra elements
added to the funnel plot. The option will take the form:
legendlabels(`"8 "new label""').
legendopts(options) passes options to the plot legend. See [G]
legend_option.
metric(se|invse|var|invvar) specifies the metric of the y axis of the
plot. se, invse, var, and invvar stand for standard error, inverse
standard error, variance, and inverse variance, respectively; the
default is se.
onesided(lower|upper) can be lower or upper, for lower-tailed or
upper-tailed levels of statistical significance, respectively. If
unspecified, two-sided significance levels are used to plot the
contours.
scatteropts(options) specifies any of the options documented in [G] graph
twoway scatter.
shadedcontours specifies shaded contour lines; specify with the
noshadedregions option.
34
[no]shadedregions specifies or suppresses shaded regions between the
contours. This option provides plots that are more similar to those
in the original paper by Peters et al. (2008) and the Cochrane
Handbook. A plot with shadedregions is now the default.
solidcontours specifies solid contour lines; specify with the
shadedcontours and noshadedregions option.
studylab(string) specifies the label for the scatter points in the
legend. If not specified the default is "Studies".
twowayopts(options) specifies options passed to the twoway plotting
function; see [G] twoway_options.
twoway_options see [G] twoway_options. As of confunnel version 1.0.5
twoway options can be specified at the end of the options and do not
have to be within twowayopts.
Remarks
The confunnel command is based on an idea by Peters et al. (2008) to
superimpose contours of statistical significance on a funnel plot in a
meta-analysis. The command was explained in Palmer et al. (2008).
Superimposing contours on funnel plots has also been suggested by
Spiegelhalter (2005) in a slightly different context.
confunnel can be used in conjunction with the results of the metan,
metatrim, and metabias commands. See meta in Stata version 10 for
information about user-written commands for meta-analysis.
Examples
The following examples use the example dataset accompanying metan.
. confunnel logOR selogOR
(click to run)
. confunnel logOR selogOR, noshadedregions
(click to run)
. confunnel logOR selogOR, solidcontours shadedcontours noshadedregions
(click to run)
. confunnel logOR selogOR, metric(invse)
(click to run)
. confunnel logOR selogOR, onesided(upper) noshadedregions
35
(click to run)
References
Palmer, T. M., J. L. Peters, A. J. Sutton, and S. G. Moreno. 2008.
Contour enhanced funnel plots for meta-analysis. Stata Journal 8:
242-254.
Peters, J. L., A. J. Sutton, D. R. Jones, K. R. Abrams, and L. Rushton.
2008. Contour-enhanced meta-analysis funnel plots help distinguish
publication bias from other causes of asymmetry. Journal of Clinical
Epidemiology. 61: 991-996.
Spiegelhalter, D. J. 2005. Funnel plots for comparing institutional
performance. Statistics in Medicine 24: 1185-1202.
Sterne, J. A. C., and M. Egger. 2001. Funnel plots for detecting bias in
meta-analysis: Guidelines on choice of axis. Journal of Clinical
Epidemiology 54: 1046-1055.
Sterne, J. A. C., and R. M. Harbord. 2004. Funnel plots in meta-analysis.
Stata Journal 4: 127-141.
Sterne, J. A. C., M. Egger, and D. Moher. 2008. Chapter 10: Addressing
reporting biases; Cochrane Handbook for Systematic Reviews of
Interventions Version 5.0.1.
Author
Tom Palmer, MRC Centre for Causal Analyses in Translational Epidemiology,
Department of Social Medicine, University of Bristol, UK.
tom.palmer@bristol.ac.uk.
Jaime Peters wrote the first version of this command.
Thanks to Santiago G. Moreno for testing the command.
Please report any errors you may find.
Also see
Article: Stata Journal, volume 9, number 2: gr0033_1
Stata Journal, volume 8, number 2: gr0033
Online: metabias, metafunnel, metan (if installed)
36
metabias
Syntax
metabias varlist [if] [in], egger harbord peters begg [graph nofit or
rr level(#) graph_options]
As in the metan command, varlist should contain either four or two
variables. When four variables are given, these are assumed to be cell
counts for the 2 x 2 table in this order: cases and noncases for the
experimental group, then cases and noncases for the control group (d1 h1
d0 h0). When two variables are specified, these are assumed to be the
effect estimate and its standard error (theta se_theta). It is
recommended that ratio-based effect estimates are log transformed as in
metan.
by is allowed with metabias; see [D] by.
Description
metabias performs updated regression tests for funnel plot asymmetry in
meta-analysis. The Harbord test regresses Z/sqrt(V) against sqrt(V),
where Z is the efficient score and V is Fisher's information (the
variance of Z under the null hypothesis). The Peters test regresses the
intervention effect estimate on 1/n with weights dh/n, where n is the
total sample size, d is the number experiencing the event, and h is the
number not experiencing the event. These can be calculated for the log
odds-ratio or log risk-ratio, from 2 x 2 tables of binary outcomes.
The Egger test is also implemented and performs a linear regression of
the intervention effect estimates on their standard errors, weighting by
1/(variance of the intervention effect estimate). This test is
recommended for intervention effects measured as mean differences but can
suffer from false-positive test results when analyzing odds ratios
because of the mathematical association between the log odds-ratio and
its standard error. For completeness, the Begg test is also implemented,
although this is widely accepted to be redundant because it suffers the
same statistical problems as Egger's test but has lower power.
Options
egger, harbord, peters, and begg specify that the original Egger test,
Harbord's modified test, Peters' test, or the rank correlation test
proposed by Begg and Mazumdar (1994) be reported, respectively.
There is no default; one test must be chosen.
graph displays a Galbraith plot (the standard normal deviate of
intervention effect estimate against its precision) for the original
37
Egger test or a modified Galbraith plot of Z/sqrt(V) versus sqrt(V)
for Harbord's modified test. There is no corresponding plot for the
Peters or Begg tests.
nofit suppresses the fitted regression line and confidence interval
around the intercept in the Galbraith plot.
or (the default for binary data) uses odds ratios as the effect estimate
of interest.
rr specifies that risk ratios rather than odds ratios be used. This
option is not available for the Peters test.
level(#) specifies the confidence level, as a percentage, for confidence
intervals. The default is level(95) or as set by set level.
graph_options are any of the options documented in [G] graph twoway
scatter. In particular, the options for specifying marker labels are
useful.
Examples
. metabias d1 h1 d0 h0, or harbord
. metabias tdeath tnodeath cdeath cnodeath, or harbord graph
mlabel(trial)
. metabias eventint noeventint eventcon noeventcon, or peters
. metabias theta se_theta, egger
Authors
Roger Harbord, Department of Social Medicine, University of Bristol, UK
Ross Harris, Centre for Infections, Health Protection Agency, London, UK
Jonathan Sterne, Department of Social Medicine, University of Bristol, UK
Reference
Begg, C. B., and M. Mazumdar. 1994. Operating characteristics of a rank
correlation test for publication bias. Biometrics 50: 1088-1101.
History and note on dialog box
This version of metabias revises and extends the previous package by
Thomas Steichen, first released as sbe19 in STB 41 and updated through to
sbe19.5. We are grateful for Tom's permission to release this version
under the same name.
The dialog box added to sbe19.5 (and to the distribution dated 20040409
38
on SSC) is not compatible with this revised and extended version of the
package, which does not currently include a dialog box.
Also see
Article: Stata Journal, volume 9, number 2: sbe19_6
Stata Journal, volume 3, number 4: sbe19_5
Stata Technical Bulletin 61: sbe19.4
Stata Technical Bulletin 58: sbe19.3
Stata Technical Bulletin 57: sbe19.2
Stata Technical Bulletin 44: sbe19.1
Stata Technical Bulletin 41: sbe19
Online: metan (if installed), metafunnel (if installed), confunnel (if
installed)
39
glst
Generalized Least Squares for Trend… para estudios de tendencias de análisis de dosisrespuesta
Syntax
glst depvar dose [indepvars] [if] [in], se(varname) cov(n cases) {cc
| ir | ci} [options]
options
description
------------------------------------------------------------------------* se(varname)
variable containing estimate of standard error
* cov(n cases)
variables containing the information required to fit
the covariances
+ cc
case-control data
+ ir
incidence-rate data
+ ci
cumulative incidence data
vwls
variance-weighted least-squares estimation
crudes
crude relative risks and correlations
pfirst(id study) pool-first method
tstage(f|r)
two-stage fixed- or random-effects meta-analysis
ssest
study-specific linear trend estimates
random
random-effects for the dose coefficient in an
aggregate analysis
level(#)
set confidence level; default is level(95)
eform
generic label; exp(b); the default
------------------------------------------------------------------------* se() and cov() are required.
+ One of cc, ir, or ci is required for trend estimation.
depvar contains log relative-risks; dose is the main covariate of
interest and contains the exposure levels; and indepvars may contain
other covariates, such as polynomial terms of dose or interaction
terms.
Description
glst estimates log-linear dose-response regression models using
generalized least squares for trend estimation of single or multiple
summarized dose-response epidemiological studies, namely, case-control,
incidence-rate, and cumulative incidence data. It differs from
variance-weighted least squares (see [R] vwls) in that glst estimates a
variance-covariance matrix of the beta coefficients, as proposed by
40
Greenland and Longnecker (1992).
Options
se(varname) specifies an estimate of the standard error of depvar, log
relative-risks. All values of varname must be > 0.
cov(n cases) specifies variables containing the information required to
fit the covariances among the beta coefficients. At each exposure
level, n is the number of subjects (controls plus cases) for
case-control data (cc); or the total person-time for incidence-rate
data (ir); or the total number of persons (cases plus noncases) for
cumulative incidence data (ci). The cases variable contains the
number of cases at each exposure level.
cc specifies case-control data. It is required for trend estimation of
one study unless the pfirst() option is specified.
ir specifies incidence-rate data. It is required for trend estimation of
one study unless the pfirst() option is specified.
ci specifies cumulative incidence data. It is required for trend
estimation of one study unless the pfirst() option is specified.
vwls specifies variance-weighted least-squares (see [R] vwls) estimation,
which assumes zero covariances among a series of log relative-risks;
the default is generalized least squares.
crudes specifies to calculate the vector of crude relative risks, and its
variance-covariance and correlation matrices. This option also
provides the relative differences (as percentages) between crude and
adjusted relative risks and their correlation matrix.
pfirst(id study) specifies the pool-first method with multiple summarized
studies. The id variable is an indicator variable that assumes the
same value across correlated parameters within a study. The study
variable must take value 1 for case-control data, 2 for
incidence-rate data, and 3 for cumulative incidence data. Within each
group of parameters, the first observation is assumed to be the
referent. This option allows the estimation either a fixed- or
random-effects meta-regression model.
tstage(f|r) specifies the two-stage fixed-effects (f) (inverse
variance-weighted least squares) or random-effects (r) meta-analysis
of dose-response linear trends (using the method of moments to
estimate the between-study variance, tau2). This option can be
specified only if pfirst() is also specified, and if only one
covariate, namely, the dose variable, is included in the linear
predictor.
41
ssest displays study-specific linear trend estimates. This option can be
specified only if pfirst() is also specified.
random specifies the iterative generalized least-squares method to fit a
random-effects meta-regression model (aggregate analysis).
Between-study variability of the dose coefficient is estimated with
the moment estimator. This option can be specified only if pfirst()
is specified.
level(#) specifies the confidence level, as a percentage, for confidence
intervals. The default is level(95) or as set by set level.
eform reports coefficient estimates as exp(b) rather than b. Standard
errors and confidence intervals are similarly transformed.
Example
Input data from table 1, page 1302 of Greenland and Longnecker (1992)
. use http://nicolaorsini.altervista.org/stata/data/dose.dta, clear
Go from 95% CI of odds ratios to 95% CI of log odds-ratios
. gen double logor = log(adjor)
. gen double logorlb = log(lb)
. gen double logorub = log(ub)
. gen double se = ((logorub - logorlb)/(2*invnorm(.975)))
Trend estimation without correction for covariance of odds ratios
. vwls logor dose in 2/4, sd(se) nocons
. mat list e(V)
Trend estimation with correction for covariance of log odds-ratios
. glst logor dose, se(se) cov(N case) cc
Check the variance-covariance matrix of log odds-ratios
. mat list e(Sigma)
Reference
Greenland S. and M. P. Longnecker. 1992. Methods for trend estimation
from summarized dose-reponse data, with applications to
meta-analysis. American Journal of Epidemiology 135: 1301-1309.
42
Authors
Nicola Orsini, Division of Nutritional Epidemiology, Institute of
Environmental Medicine, Karolinska Institutet, Sweden
Rino Bellocco, Department of Medical Epidemiology and Biostatistics,
Karolinska Institutet, Sweden
Sander Greenland, Department of Epidemiology, UCLA School of Public
Health
Support
http://nicolaorsini.altervista.org
nicola.orsini@ki.se
Also see
Article: Stata Journal, volume 9, number 2: st0096_2
Stata Journal, volume 9, number 1: st0096_1
Stata Journal, volume 6, number 1: st0096
Manual: [R] vwls
Online: [R] vwls
Download