help metaprop

Fixed and random effects meta-analysis of proportions

metaprop
varlist
[if] [in]
[weight]
[,
measure_and_model_options
output_options
forest_plot_options
]

where measure_and_model_options may be

ftt
cimethod(string)
fixed
random
cc(#)
wgt(weightvar)
second(model or estimates and description)
first(estimates and description)

and where output_options may be

dp(#)
power(#)
by(byvar)
nosubgroup
sgweight
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
force

lcols(varlist)
rcols(varlist)
astext(#)
double
nohet
summaryonly
rfdist
rflevel(#)
boxopt()
diamopt()
pointopt()
ciopt()
olineopt()
classic
nowarning
graph_options

Description

This routine provides procedures for pooling proportions in a meta-analysis of
multiple studies study and/or displays the results in a forest plot. The confidence
intervals are based on score(Wilson) (Newcombe, R. G. 1998) or
exact binomial(Clopper-Pearson) (Newcombe, R. G. 1998) procedures.
A test of whether the summary effect measure is equal to the zero 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).

metaprop requires two variables in the format such that p = n/N
to be declared.

Note that the metaprop command requires Stata 10.1 or later versions.

Options for metaprop

Specifying the measure and model

ftt Calculate the pooled estimate after Freeman-Tukey Double Arcsine
Transformation (Freeman, M. F. , and Tukey, J. W. 1950) to stabilize the variances.

cimethod Specifies the method to compute the confidence intervals for the individual studies. By default,
the Score(Wilson) confidence intervals are computed. Available option is "exact".

fixed specifies a fixed effect model using the inverse variance method.

random 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.

cc(#) defines a fixed continuity correction to add in the case where
a study has zero success. By default, metaprop
excludes studies with zero success. The cc() option allows the use of
non-negative constants. This option is not necessary
when the Freeman-Tukey Double Arcsine transformation is performed.

wgt(weightvar) specifies alternative weighting
for any data type. The pooled effect size is to be computed by assigning
a weight of weightvar to the studies. You should only use this option if you are
satisfied that the weights are meaningful.

second(model)
A second analysis may be performed using another method, using fixed or
random. Note that if by is used then sub-estimates
from the second method are not displayed with user defined estimates.

Output

power(#) indicates the power of ten with which to multiply the estimates. # is any real
value. The default is 0 which reports proportions, power(2) would report proportion*100=percentages.
The x-axis labels (and dp if necessary) should be adjusted accordingly when power(#) is adjusted.

dp(#) indicates the number of decimal places to display in the table and graph.

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 metaprop presents
weights as a percentage of the overall total.

nosubgroup indicates that within-group pooled results are to be ommitted when
by() is used. By default metaprop presents both within group and overall
pooled results.

ilevel(#) specifies the confidence interval level (e.g., 90, 95, 99 percent) for the
individual study confidence intervals. The default is $S_level.
ilevel() and olevel() need not be the same. See set level.

olevel(#) specifies the confidence interval level (e.g., 90, 95, 99 percent) for the
overall (pooled) study 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

nooverall prevents display of overall effect size on graph
(automatically enforces the nowt option).

nowt prevents display of study weight on the graph.

nostats prevents display of individual study statistics on graph.

xlabel() defines x-axis labels. No checks are 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() controls "weighted box" scaling.
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.

Further options for the forest plot

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. texts() can be used to fine-tune
the size of the text in order to achieve 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.

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 study, based on the extent of heterogeneity in the random effects model.
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 level (e.g., 90, 95, 99 percent)
of the confidence interval of the predictive distribution. The default is
$S_level. See set level.

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.

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.

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. See
twoway_options.

wgt(weightvar) specifies alternative weighting by the
specified variable (default is inverse of the variance).

texts(#) increases or decreases the text size of the
label by specifying # to be more or less than unity. The default is
usually satisfactory but may need to be adjusted.

Stored

By default, metaprop adds the following new variables to the dataset:
_ES Estimated proportiop/prevalence (ES).
_seES Standard error of ES.
_LCI Lower confidence limit for ES.
_UCI Upper confidence limit for ES.
_WT Study percentage weight.

Examples

Pooling proportions from raw cell counts, grouped by triage group,
with "label" specification, x-axis label set, ticks on x-axis added,
suppressed weights, increased text size, changes on the box effect estimate,
a red diamond for the confidence intervals of the pooled effect estimate,
a vertical line at zero, a red dashed line,
for the pooled effect estimate, e.t.c.

The dataset used in this example has been to produce figure one in
Marc Arbyn et al. (2009).

. use http://fmwww.bc.edu/repec/bocode/a/arbyn2009jcellmolmedfig1.dta

. metaprop num denom, random by(tgroup) cimethod(exact)

label(namevar=author, yearvar=year)

xlab(.25,0.5,.75,1)xline(0, lcolor(black))

subti("Atypical cervical cytology", size(4))

xtitle("Proportion",size(2)) nowt

olineopt(lcolor(red)lpattern(shortdash))

plotregion(icolor(ltbluishgray))

diamopt(lcolor(red))

pointopt(msymbol(x)msize(0))boxopt(msymbol(S) mcolor(black))

astext(70) texts(150)

(click to run)

Pooling proportions from raw cell counts with Freeman-Tukey double arcsine transformation and exact confidence intervals
for the individual studies.

The dataset used in this example produced the top-left graph in figure one in
Ioanna Tsoumpou et al. (2009).

. use http://fmwww.bc.edu/repec/bocode/t/tsoumpou2009cancertreatrevfig2WNL.dta

.	metaprop p16p total, random ftt cimethod(exact)

label(namevar=author, yearvar=year) sortby(year author)

xlab(0.1,.2, 0.3,0.4,0.5,0.6,.7,0.8, 0.9, 1) xline(0, lcolor(black))

ti(Positivity of p16 immunostaining, size(4) color(blue))

subti("Cytology = WNL", size(4) color(blue))

xtitle(Proportion,size(3)) nowt nostats

olineopt(lcolor(red) lpattern(shortdash))

diamopt(lcolor(black))

pointopt(msymbol(x)msize(0)) boxopt(msymbol(S) mcolor(black))

astext(70) texts(100)

(click to run)

The dataset used in this example produced the top-left graph in figure one in
Ioanna Tsoumpou et al. (2009).

. use http://fmwww.bc.edu/repec/bocode/t/tsoumpou2009cancertreatrevfig2HSIL.dta.dta

.	metaprop p16p total, random ftt cimethod(exact)

label(namevar=author, yearvar=year) sortby(year author)

xlab(0.1,.2, 0.3,0.4,0.5,0.6,.7,0.8, 0.9, 1) xline(0, lcolor(black))

ti(Positivity of p16 immunostaining, size(4) color(blue))

subti("Cytology = HSIL", size(4) color(blue))

xtitle(Proportion,size(3)) nowt nostats

olineopt(lcolor(red) lpattern(shortdash))

diamopt(lcolor(black))

pointopt(msymbol(x)msize(0)) boxopt(msymbol(S) mcolor(black))

astext(70) texts(100)

(click to run)

Authors

Victoria Nyaga, Marc Arbyn.
Unit of Cancer Epidemiology,
Scientific Institute of Public Health,
Juliette Wytsmanstreet 14, B1050 Brussels,
Belgium.

Marc Aerts.
Center for Statistics, Hasselt University,
Agoralaan Building D, 3590 Diepenbeek,
Belgium.

Acknowledgements

Edited code from metan.ado by 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

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.

Miller, J. J. 1978. The inverse of the Freeman-Tukey double arcsine
transformation. The American Statistician 32: 138.

Freeman, M. F., and Tukey, J. W. 1950. Transformations related to
the angular and the square root.
Annals of Mathematical Statistics 21: 607-611.

Newcombe, R. G. 1998. Two-sided confidence intervals for
the single proportion: comparison of seven methods.
Statistics in Medicine 17: 857-872.

Arbyn, M., et al. 2009. Triage of women with equivocal
or low-grade cervical cytology results. A meta-analysis
of the HPV test positivity rate.
Journal for Cellular and Molecular Medicine 13.4: 648-59.

Tsoumpou, I., et al. 2009. p16INK4a immunostaining in
cytological and histological specimens from the uterine
cervix: a systematic review and meta-analysis.
Cancer Treatment Reviews 35: 210-20.

Also see

Online: metan (if installed), metannt(if installed)
metareg (if installed), metabias (if installed),
metatrim (if installed), metainf (if installed),
galbr (if installed), metafunnel (if installed)