help albatross_examples

Albatross Examples

albatross examples -- The code used to simulate albatross examples (see albatross)

Mean

Basic albatross plot

. clear
. set obs 20
. set seed 100
. gen n = 10+490*runiform()
. gen mean_dif = 0.2*runiform()
. gen sd = 1+4*runiform()
. gen se = sd/sqrt(n)
. gen p = 2*normal(-abs(mean_dif/se))
. albatross n p mean_dif, type(mean) sd(sd)

Use the standard deviation to adjust to the effective sample size

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

Proportion

Basic albatross plot

. clear
. set obs 20
. set seed 100
. gen n = 10+490*runiform()
. gen prop_dif = 0.1+0.1*runiform()
. gen se = sqrt(prop_dif*(1-prop_dif)/n)
. gen p = 2*normal(-abs(prop_dif/se))
. albatross n p prop_dif, type(proportion)

Plot specifying the proportion to be 0.15 in all contours

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

Correlation coefficient

– equivalently,

beta

Basic albatross plot

. clear
. set obs 20
. set seed 100
. gen n = 10+490*runiform()
. gen corr = 0.2*runiform()
. gen se = sqrt((1-corr^2)/n)
. gen p = 2*normal(-abs(corr/se))
. gen by = "Large"
. replace by = "Small" if corr<0.1
. albatross n p corr, type(correlation)

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

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

Mean difference

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

. clear
. set obs 20
. set seed 100
. gen n = 10+490*runiform()
. gen sd1 = 0.5+0.5*runiform()
. gen sd2 = 0.5+0.5*runiform()
. gen r = 1+3*runiform()
. gen n1 = r*n/(1+r)
. gen n2 = n/(1+r)
. gen sd = sqrt((sd1^2*n1+sd2^2*n2)/n)
. gen md = 0.1+0.1*rnormal()
. gen se = sqrt(sd1^2/n1 + sd2^2/n2)
. gen p = 2*normal(-abs(md/se))
. albatross n p md, type(md) sd(sd)

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

Define the contours better

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

Standardised mean difference

Basic albatross plot

. clear
. set obs 20
. set seed 100
. gen n = 10+490*runiform()
. gen smd = -0.5+0.25*runiform()
. gen r = 1+3*runiform()
. gen se = sqrt((2*(r+1)^2+r*smd^2)/(2*r*n))
. gen p = 2*normal(-abs(smd/se))
. gen range = 1 if p >0.1
. replace p = 0.1 if p > 0.1
. albatross n p smd, type(smd)

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

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

Plot with titles, range, two contours specified

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

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))

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

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

Relative risks and odds ratios

Basic albatross plot

. clear
. set obs 20
. set seed 100
. gen a = 300+200*runiform()
. gen b = a*1.5
. gen c = 300+200*runiform()
. gen d = 300+200*runiform()
. gen n = a+b+c+d
. gen rr = a*(c+d)/(c*(a+b))
. gen or = a*d/(b*c)
. gen n1 = a+b
. gen n2 = c+d
. gen baseline = c/(c+d)
. gen r = n1/n2
. gen se_rr = sqrt(1/a+1/c-1/n1-1/n2)
. gen se_or = sqrt(1/a+1/b+1/c+1/d)
. gen p_rr = 2*normal(-abs(ln(rr)/se_rr))
. gen p_or = 2*normal(-abs(ln(or)/se_or))
. replace p_or = 10^-30 if p_or == 0
. gen e = 1 if ln(rr) >= 0
. replace e = -1 if e == .
. gen by = 1 if a > 400
. replace by = 0 if a <= 400
. albatross n p_rr e, type(rr) baseline(baseline)
. albatross n p_or e, type(or) baseline(baseline)

Fully specified plot with estimated effective sample size

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

Fully specified plot with estimated effective sample size, with standardised 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
. albatross n p_or e, type(or) baseline(baseline) r(r) adjust sr(2) sbaseline(0.5) by(by) color

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

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. 2017.
The albatross plot program: a novel graphical tool for presenting results of diversely reported studies in a systematic review in Stata.
Currently Unpublished.