*! version 1.22 Ross Harris, Sep 2003

Title

labbe -- Draw a L'Abbe plot for event data (proportion of successes in the two groups).

Syntax

labbe varlist [if] [in] [weight] [, nowt percent or(#) rr(#) rd(#)
null logit wgt(weightvar) symbol(symbolstyle) nolegend id(idvar)
textsize(#) clockvar(clockvar) gap(#) twoway_options

where varlist is:

event_treat noevent_treat event_ctrl noevent_ctrl

that is, the number of events and non-events in the treatment and control groups, in that order.

Options

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 non-event) 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 "non-event",
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.

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

twoway_options are options to pass to the Stata twoway graph-drawing command (see help on twoway_options).

Remarks

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.

Example

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

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.