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
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
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
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.
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
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.
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
. 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)
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
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
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.
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
effects.
Dostları ilə paylaş: |