*! version 1.3 29apr2013

help for cutptVersion 1.3, April 29 2013

Title

cutpt -- Empirical estimation of cutpoint for a diagnostic test

Syntax

cutpt refvar classvar [if] [in], [method noadjust]

method liu (the default), youden or nearest

noadjust do not empirically adjust the cutpoint

Description

cutpt estimates the optimal cutpoint for a diagnostic test. The Liu method maximises the
product of the sensitivity and specificity; the Youden method maximises the sum. The nearest to
(0,1) method finds the cutpoint on the ROC curve closest to (0,1) (the point with perfect
sensitivity and specificity).

The test is considered positive if classvar is greater than the cutpoint.

The syntax is derived from the official Stata command roctab, so to quote the help for
roctab:

The two variables refvar and classvar must be numeric. The reference
variable indicates the true state of the observation, such as diseased
and nondiseased or normal and abnormal, and must be coded as 0 and 1.
The rating or outcome of the diagnostic test or test modality is recorded
in classvar, which must be at least ordinal, with higher values
indicating higher risk.

By default the classvar is assumed to be continous and the estimated cutpoint is adjusted
according to the method suggested by Fluss et al. The theory is that the value that we're trying to
maximise (product (Liu) or sum (Youden) of sensitivity and specificity) is maximal at one particular
value of classvar, but also in the interval between that value and the next observed value of
classvar. The adjustment takes the mean of those two values of classvar to be the best
estimate of the cutpoint. This adjustment is recommended for a continuous classvar. For an
ordinal classvar it is recommended not to use this adjustment by specifying the noadjust
option.

The estimated cutpoint is returned in e(cutpoint) and can be bootstrapped to estimate
confidence intervals.

Examples

Basic usage

. webuse hanley

. cutpt disease rating, noadjust

Graphical demonstration of estimated cutpoint

. webuse hanley

. cutpt disease rating, noadjust

. roctab disease rating, graph msymbol(none) addplot(scatteri `e(sens)' `=1 - e(spec)') legend(label(3 "Cutpoint"))

Bootstrapping the estimated cutpoint

. webuse hanley

. bootstrap e(cutpoint), rep(100): cutpt disease rating, noadjust

Saved results

cutpt saves the following in e():

Scalars

e(cutpoint) estimated cutpoint

e(sens) sensitivity at cutpoint

e(spec) specificity at cutpoint

e(auc) area under ROC curve at cutpoint

e(j) Youden index (if Youden method used)

e(sej) standard error for Youden index

Macros

e(method) method used

Functions

e(sample) marks estimation sample

Author

Phil Clayton, ANZDATA Registry, Australia, phil@anzdata.org.au

References

Fluss R, Faraggi D, Reiser B. Estimation of the Youden Index and its associated cutoff point. Biom J. 2005 Aug;47(4):458-72.

Liu X. Classification accuracy and cut point selection. Stat Med. 2012 Oct 15;31(23):2676-86.

Youden WJ. Index for rating diagnostic tests. Cancer 1950; 3:32-35.