help albatross

Albatross

albatross -- Creates an albatross plot

Syntax

albatross
[varlist]
[if] [in]
,
type(statistical_type)
[statistical_type_options
plot_options
other_options]

where varlist has 3 variables in the order

number of participants; P value; effect direction

All three variables must be specified, as well as type()

options

Model
type(statistical_type) the type of statistical model; one of: mean proportion correlation beta md smd rr or

Statistical types
mean comparison of a sample mean with a known population mean.
Requires one of: sd(varname) or ssd(#)

proportion comparison of a sample proportion with a known population proportion. Optional: sproportion(#)

md mean difference - comparison of two sample means.
Requires one of: sd(varname); ssd(#); sd1(varname) and sd2(varname); or ssd1(#) and ssd2(#).
Optional: r(varname) and sr(#)

smd standardized mean difference - standardized comparison of two sample means.
Optional: r(varname) and sr(#)

correlation comparison of two continuous variables in one sample

beta linear regression - comparison of two continuous variables in one sample

or odds ratio - comparison of two groups with a binary exposure and outcome.
Requires one of: baseline(varname) or sbaseline(#).
Optional: r(varname), sr(#) and or(varname)

rr risk ratio/relative risk - comparison of two groups with a binary exposuare and outcome.
Requires one of: baseline(varname) or sbaseline(#).
Optional: r(varname), sr(#) and rr(varname)

Statistical type options
sproportion(#) standardized proportion for contour generation

sd(varname) variable of each study’s standard deviation of the exposure (whole study)

sd1(varname) variable of each study’s standard deviation of the exposure (group 1)

sd2(varname) variable of each study’s standard deviation of the exposure (group 2)

ssd(#) standardized standard deviation of the exposure (whole study) for contour generation

ssd1(#) standardized standard deviation of the exposure (group 1) for contour generation

ssd2(#) standardized standard deviation of the exposure (group 2) for contour generation

r(varname) variable of each study’s group size ratio (case/control)

sr(#) standardized group size ratio (case/control) for contour generation

baseline(varname) variable of each study’s baseline rate (proportion of group 2 with outcome)

sbaseline(#) standardized baseline rate (proportion of group 2 with outcome) for contour generation

rr(varname) variable of each study’s relative risk (not required, can be estimated)

or(varname) variable of each study’s odds ratio (not required, can be estimated)

Plot options
contours(# # #) specify the effect size of 1-3 contours

title(string) specify the title of the albatross plot

subtitle(string) specify the subtitle of the albatross plot

nograph suppress creation of the plot

nonotes suppress notes on graph

by(varname) specify a variable where different levels of varname are drawn with different markers.
Only one varname may be specified

color makes the plot colored

onetailed displays the plot using one-tailed P values, with P values from 0 on the left to 1 on the right, with P = 0.5 as the null

Other options
adjust adjusts sample size to the effective sample size

effect creates a variable showing the estimated effect size of the study, given the total number of participants,
P value, statistical type and any other information available

fishers displays the combined P value from Fisher's combined probability test

stouffers displays the combined P value from Stouffer's Z score method

range(varname) variable that specifies, with the P value, the range the P value could take, e.g. 0.05 < P < 1.
This will create a line for the study rather than a point

tails(varname) variable stating whether the study P value is one-tailed or two-tailed; use 1 = one-tailed, 2 = two-tailed.
If the onetailed option is specified, the two-tailed P values will be converted to one-tailed P values.
If not, the one-tailed P values will be converted to two-tailed P values.

Description

The albatross command creates an albatross plot from studies with number of participants, P values and effect directions.
The plot shows a summary of studies when meta-analysis is not possible, with effect contours derived from the specified statistical method.

The command requires 3 variables to be declared in this order: number of participants, P value and effect direction.
Both the number of participants and P values must be larger than 0.
Negative effect directions are specified with a negative number (e.g. -1), positive effect directions with a positive number (e.g. 1).
The statistical type must be specified; some types require additional information to be specified, see statistical types above.
If using standardized variables (ssd(#), sr(#) or sbaseline(#)) please ensure reasonable values are used;
contours may perform unexpectedly otherwise.

The number of participants can be adjusted to the effective sample size using the adjust option and additional information.
The magnitude of the effect can be calculated for all studies using the effect option; this is useful for comparison,
but will not necessarily be accurate (depending on the further information provided and the study itself).

Several variables are deleted and created by the program when it runs: _P_graph, _N_graph, _N_adjusted, _TOUSE, _EST_* and _ALBA_*.
If these variables are not renamed they will be overwritten.

A paper is forthcoming describing the albatross command and the equations required to calculate the effective sample size for each statistical type.
The main albatross plot paper has been published in the journal of Research Synthesis Methods (28 April 2017).

albatross requires Stata version 11 or later.

Statistical Types

mean - comparison of one sample mean with a known population mean.
This plot will not be informative unless the population means (i.e. the comparison means) of all studies are similar.
Requires one of: sd(varname) or ssd(#).

proportion - comparison of one sample proportion with a known population proportion.
This plot will not be informative unless the population proportions (i.e. the comparison proportion) of all studies are similar.
Optional: sproportion(#).

md (mean difference) - comparison of the means of two samples.
Requires one of: sd(varname); ssd(#); sd1(varname) and sd2(varname); or ssd1(#) and ssd2(#).
Optional: r(varname) and sr(#).

smd (standardized mean difference) - comparison of two sample means, standardized by dividing by the pooled standard deviation of the exposure.
Optional: r(varname) and sr(#).

correlation - comparison of two continuous variables in one sample.
No required or optional type_options.

beta (linear regression) - comparison of two continuous variables in one sample.
Standardized univariable linear regression is equivalent to correlation.
No required or optional type_options.

or (odds ratio) - comparison of two groups with a binary exposure and outcome.
Requires one of: baseline(varname) or sbaseline(#).
Optional: r(varname), sr(#) and or(varname).

rr (risk ratio/relative risk) - comparison of two groups with a binary exposure and outcome.
Requires one of: baseline(varname) or sbaseline(#).
Optional: r(varname), sr(#) and rr(varname).

Statistical Type Options

sd(varname) or ssd(#): at least one must be specified for mean and md.
For md, the standard deviation (SD) of both groups in each study are assumed to be equal.
If sd(varname) is specified alone, the contours will be drawn using the mean SD of the studies.
If ssd(#) is specified alone, the contours will be drawn using a SD of #.
If both sd(varname) and ssd(#) are specified, the contours will be drawn using a SD of #
and the number of participants will be adjusted to the effective sample size given a SD of # if adjust is specified.

sd1(varname) and sd2(varname), or ssd1(#) and ssd2(#): alternative to sd(varname) or ssd(#),
at least one pair must be specified.
The standard deviation (SD) of both groups (e.g. treatment and control) in each study are specified, useful when the SD is known to be different between groups.
If sd1(varname) and sd2(varname) are specified alone, the contours will be drawn using the mean SD of each group in the studies.
If ssd1(#) and ssd2(#) are specified alone, the contours will be drawn using the specified SDs.
If all options are specified, the contours will be drawn using the specified SDs and the number of participants will be adjusted to the effective sample size given a SD of # if adjust is specified.

sproportion(#): optional for proportion.
If specified, the contours will be drawn using a population proportion of #, otherwise a proportion of 0.5 is assumed.

r(varname) or sr(#): optional for md, smd, rr and or.
The ratio of group sizes (r = n1/n2) can be specified, otherwise it will be assumed to be 1.
If r(varname) is specified alone, the contours will be drawn using a ratio of 1 and the number of participants will be adjusted to the effective sample size given a ratio of 1 if adjust is specified.
If sr(#) is specified alone, the contours will be drawn using a ratio of #.
If both r(varname) and sr(#) are specified,
the contours will be drawn using a ratio of # and the number of participants will be adjusted to the effective sample size given a ratio of # if adjust is specified.

baseline(varname) or sbaseline(#): at least one must be specified for rr and or.
The baseline risk is the proportion of group 2 with the outcome.
If baseline(varname) is specified alone, the contours will be drawn using the mean baseline risk across all studies.
If sbaseline(#) is specified alone, the contours will be drawn using a baseline risk of #.
If baseline(varname) and or sbaseline(#) are specified,
the contours will be drawn using a baseline risk of # and the number of participants will be adjusted to the effective sample size given a baseline risk of # if adjust is specified.
The baseline risk should always be between 0 (no members of group 2 have the outcome) and 1 (all members of group 2 have the outcome).

rr(varname) and or(varname): optional for rr and or respectively.
The risk ratio and odds ratio are required to calculate effective sample sizes (with the adjust option), but can be estimated if not specified.
If some ratios are known, the program will calculate estimates for only the unknown ratios.

Plot Options

contours(# # #) specify the magnitude of 1-3 contours from smallest to largest, e.g. small, medium, large.
Contours for RRs and ORs are specified on the RR and OR scale i.e. 1 is null, less than 1 if a negative effect, more than 1 is a positive effect.
Negative contours (including RRs and ORs less than 1) and 4 or more contours are not allowed.
If contours are not specified, the program will automatically plot three contours.
Most contours are listed in the legend as +-contour effect size.
As OR and RR effect sizes are always positive, the contours are listed as left contour effect size|right contour effect size,
where left contour effect size = 1/right contour effect size, right contour effect size > 1,
and the contours appear on the left and right sides of the plot respectively.

title(string) and subtitle(string) specify the title and subtitle of the plot; no other graph options are allowed.
All title and subtitle suboptions are allowed, see title_options.

nograph suppresses creation of the plot; useful if effective sample sizes are desired without the graph.

nonotes suppresses the default notes on any specifications of the effect contours (e.g. using a standard deviation of 2),
whether the effective sample size was used (adjusted data) and whether any data were restricted using if or in.

by(varname) specifies a variable where levels of varname are drawn with different markers. Only one varname may be specified.

color makes the plot colored.

onetailed displays the plot using one-tailed P values i.e. P values from 0 on the left to 1 on the right, with P = 0.5 as the null.
P values are all assumed to be one-tailed if onetailed is specified but tails(varname) is not specified.

Other options

adjust adjusts sample size to the effective sample size; this requires additional information, such as baseline(varname), r(varname) and sd(varname).
This is especially useful for cohort studies where the baseline risk may be variable, or combinations of cohort and case-control studies.
The effective sample size can be further specified with the standardized options, such as sr(#) and sbaseline(#).

effect creates a variable showing the estimated effect size of each study, given the total number of participants, statistical type and any other information available.
This is an estimate and has no guarantee of accuracy; accuracy will be improved by specifying all optional variables, such as sr(#) and sbaseline(#).

fishers calculates the combined P values from Fisher's combined probability method. The result is displayed in the main Stata window, not the albatross plot.
Fisher's combined probability method calculates a Chi squared test statistic with 2k degrees of freedom using the formula:
-2*sum(ln(p)), where p is the P value for each study, and k is the total number of studies.

stouffers calculates the combined P values from Stouffer's Z score method. The result is displayed in the main Stata window, not the albatross plot.
Stouffer's Z score method calculates a Z score using the formula:
sum(Z)/sqrt(k), where Z is the Z score for each study, and k is the total number of studies.

range(varname) specifies, with the P value, the upper and lower limits of the P value.
This will create a line for any study with a value for both P value and range rather than a point.
Useful for when the study P value has been written as P > X or P < X.
For P > 0.05 (or P = NS), the P value would be 0.05 and range would be 1; the study would be drawn as a line between P = 0.05 and P = 1 along y = N.
For P < X, it is suggested either the next significance level be used in range, or P = X should be used;
for example for P < 0.01, use P = 0.01 without any value in range, or specify the range value as 0.001.

tails(varname) is a variable stating whether the study P value is one-tailed or two-tailed; use 1 = one-tailed, 2 = two-tailed.

Remarks on albatross

The plot will automatically label axes to avoid cluttering. By default, all plots are drawn assuming two-sided P values.
If using one-sided P values, either specify the onetailed or tails options, or convert to two-sided P values before using albatross.
Note that the plot will not automatically relabel the axes for N > 10,000,000 or P values < 10^-50.
The plots will struggle too far beyond these values.

Stored

By default, albatross adds the following new variables to the dataset:

_TOUSE included studies are marked as 1, otherwise 0
_P_graph the P value plotted on the graph (transformed)
_N_graph the number of participants plotted on the graph (transformed)
_EST_[type]	the estimated of the magnitude of effect (only with option effect specified)
_N_adjusted	the effective sample size (transformed) (only with option adjust specified)

These values can be used to create your own plot using transformed values of P and N.

Examples

All examples use simulated data, created separately for each statistical type.
See albatross_examples for the code used to create each simulation.

Mean

Basic albatross plot

. albatross n p mean_dif, type(mean) sd(sd)

(click to run)

Use the standard deviation to adjust to the effective sample size

. albatross n p mean_dif, type(mean) sd(sd) adjust

(click to run)

Proportion

Basic albatross plot

. albatross n p prop_dif, type(proportion)

(click to run)

Plot specifying the proportion to be 0.15 in all contours

. albatross n p prop_dif, type(proportion) spro(0.15)

(click to run)

Correlation coefficient

– equivalently,

beta

Basic albatross plot

. albatross n p corr, type(correlation)

(click to run)

Plot split by “large” and “small” in color

. albatross n p corr, type(beta) by(by) color

(click to run)

Mean difference

Basic albatross plot, assuming only the mean difference and standard deviation are known

. albatross n p md, type(md) sd(sd)

(click to run)

Use the standard deviation of both groups and proportion of cases to controls to estimate the effective sample sizes

. albatross n p md, type(md) sd1(sd1) sd2(sd2) r(r) adjust

(click to run)

Manually change the contours to better fir the graph

. albatross n p md, type(md) sd1(sd1) sd2(sd2) r(r) adjust contours(0.2 0.4 0.6)

(click to run)

Standardized mean difference

Basic albatross plot

. albatross n p smd, type(smd)

(click to run)

Plot with range specified, so lines are produced for studies with P > 0.1

. albatross n p smd, type(smd) range(range)

(click to run)

Plot with titles, range, two contours specified

. albatross n p smd, type(smd) contours(0.5 1) range(range) title("When P values are inexact, data: generated", size(medium))

(click to run)

Plot with titles, range and restricted to n > 250 in the first 10 studies

. albatross n p smd if n > 250 in 1/10, type(smd) contours(0.25 0.5 1) range(range) title("When P values are inexact (restricted), data simulated", size(small))

(click to run)

No plot, but display Fisher's and Stouffer's combined P values

. albatross n p smd, type(smd) nograph fishers stouffers

(click to run)

Relative risks and odds ratios

Basic albatross plot

. albatross n p_rr e, type(rr) baseline(baseline)

(click to run)

. albatross n p_or e, type(or) baseline(baseline)

(click to run)

Fully specified plot with estimated effective sample size

. albatross n p_rr e, type(rr) baseline(baseline) r(r) adjust

(click to run)

. albatross n p_or e, type(or) baseline(baseline) r(r) adjust

(click to run)

Fully specified plot with estimated effective sample size, with standardized r and baseline specified, split into two variables and in color

. albatross n p_rr e, type(rr) baseline(baseline) r(r) adjust sr(2) sbaseline(0.5) by(by) color

(click to run)

. albatross n p_or e, type(or) baseline(baseline) r(r) adjust sr(2) sbaseline(0.5) by(by) color

(click to run)

Authors

Sean Harrison (sean.harrison@bristol.ac.uk). School of Social and Community Medicine, University of Bristol, Canynge Hall, Whiteladies Road, Bristol BS8 2PS, UK

Version 2 update (June 2017)

Updates: 1) the program can now calculate Fisher's and Stouffer's methods of combining P values; 2) minor issues with the examples were fixed, such as compatability issues with earlier versions of Stata;
help text has been slightly reworded in places; 4) plot markers are now blue in color plots when the by() option is not used, in line with normal Stata graphs.

Acknowledgements

With thanks to Julian Higgins and Hayley Jones for all their help creating albatross plots.
Also with thanks to Grace Young for commenting on the help file.

References

Harrison, S., Jones, H.E., Martin, R.M., Lewis, S., Higgins, J.P.T.
The albatross plot: a novel graphical tool for presenting results of diversely reported studies in a systematic review.
Harrison S, Jones HE, Martin RM, Lewis SJ, Higgins JP. The albatross plot: a novel graphical tool for presenting results of diversely reported studies in a systematic review. Res Synth Methods. 2017.

Harrison, S., Jones, H.E., Martin, R.M., Lewis, S., Higgins, J.P.T.
The albatross plot program: a novel graphical tool for presenting results of diversely reported studies in a systematic review in Stata.
Currently Unpublished.