/* fig4_4.do ROC curves for DPOAE and ABR (neonatal hearing study data) Figure 4.4 (Example 4.1) programs required: emroc.ado (version 1.3.5 or later) data required: nnhs.dta neonatal audiology test data last update: 05 May 2003 */ version 7 set more off cap semt_profile pause on * empirical ROC curves ******************************* cap pro drop doit pro def doit /* get empirical ROC points for a single test via -emroc- and reduce to unique plot coordinates. */ version 7 args y d tprname fprname frty5ref qui emroc `y' `d', gensens(`tprname') genspec(spec) nogr gen `fprname' = 1.0 - spec sort `y' qui by `y': drop if _n>1 /* need to create (tpr,fpr) = (0,0) for ROC curve */ qui { count local newobs = r(N) + 1 set obs `newobs' tempvar origin gen byte `origin' = ( _n==_N ) replace tpr = 0 if `origin' replace fpr = 0 if `origin' } sort `y' gen `frty5ref' = fp if _n==1 | _n==_N end ****************************** cap pro drop doit2 pro def doit2 args y d tprname fprname f5name savname doit `y' `d' `tprname' `fprname' `f5name' keep `y' `tprname' `fprname' `f5name' order `y' `tprname' `fprname' `f5name' save `savname' end ********************************************** use ${semt_data}nnhs,clear preserve tempfile f1 f2 doit2 y1 d tpr1 fpr forty5 `f1' restore doit2 y3 d tpr3 fpr forty5 `f2' drop forty5 append using `f1' #delimit ; gr tpr1 tpr3 forty5 fpr, s(...) c(lll) xscale(0,1) xlabel(0(.2)1.0) xtick(.1(.2).9) yscale(0,1) ylabel(0(.2)1.0) ytick(.1(.2).9) xline(.2(.2).8) yline(.2(.2).8) border ; #delimit cr * save plot coordinate data for import to graphics pkg: keep fpr tpr1 tpr3 forty5 order fpr tpr1 tpr3 forty5 sort fpr tpr1 tpr3 save ${semt_log}fig4_4,replace