DeLong, DeLong, and Clarke-Pearson (1988) report on 49 patients with ovarian cancer who also suffer from an intestinal obstruction. Three (correlated) screening tests are measured to determine whether a patient will benefit from surgery. The three tests are the K-G score and two measures of nutritional status: total protein and albumin. The data are as follows:
data roc; input alb tp totscore popind @@; totscore = 10 - totscore; datalines; 3.0 5.8 10 0 3.2 6.3 5 1 3.9 6.8 3 1 2.8 4.8 6 0 3.2 5.8 3 1 0.9 4.0 5 0 2.5 5.7 8 0 1.6 5.6 5 1 3.8 5.7 5 1 3.7 6.7 6 1 3.2 5.4 4 1 3.8 6.6 6 1 4.1 6.6 5 1 3.6 5.7 5 1 4.3 7.0 4 1 3.6 6.7 4 0 2.3 4.4 6 1 4.2 7.6 4 0 4.0 6.6 6 0 3.5 5.8 6 1 3.8 6.8 7 1 3.0 4.7 8 0 4.5 7.4 5 1 3.7 7.4 5 1 3.1 6.6 6 1 4.1 8.2 6 1 4.3 7.0 5 1 4.3 6.5 4 1 3.2 5.1 5 1 2.6 4.7 6 1 3.3 6.8 6 0 1.7 4.0 7 0 3.7 6.1 5 1 3.3 6.3 7 1 4.2 7.7 6 1 3.5 6.2 5 1 2.9 5.7 9 0 2.1 4.8 7 1 2.8 6.2 8 0 4.0 7.0 7 1 3.3 5.7 6 1 3.7 6.9 5 1 3.6 6.6 5 1 ;
In the following statements, the NOFIT
option is specified in the MODEL
statement to prevent PROC LOGISTIC from fitting the model with three covariates. Each ROC
statement lists one of the covariates, and PROC LOGISTIC then fits the model with that single covariate. Note that the original
data set contains six more records with missing values for one of the tests, but PROC LOGISTIC ignores all records with missing
values; hence there is a common sample size for each of the three models. The ROCCONTRAST
statement implements the nonparametric approach of DeLong, DeLong, and Clarke-Pearson (1988) to compare the three ROC curves, the REFERENCE
option specifies that the K-G Score curve is used as the reference curve in the contrast, the E
option displays the contrast coefficients, and the ESTIMATE
option computes and tests each comparison. With ODS Graphics enabled, the plots=roc(id=prob)
specification in the PROC LOGISTIC statement displays several plots, and the plots of individual ROC curves have certain
points labeled with their predicted probabilities.
ods graphics on; proc logistic data=roc plots=roc(id=prob); model popind(event='0') = alb tp totscore / nofit; roc 'Albumin' alb; roc 'K-G Score' totscore; roc 'Total Protein' tp; roccontrast reference('K-G Score') / estimate e; run;
The initial model information is displayed in Output 72.8.1.
Output 72.8.1: Initial LOGISTIC Output
For each ROC model, the model fitting details in Outputs Output 72.8.2, Output 72.8.4, and Output 72.8.6 can be suppressed with the ROCOPTIONS(NODETAILS) option; however, the convergence status is always displayed.
The ROC curves for the three models are displayed in Outputs Output 72.8.3, Output 72.8.5, and Output 72.8.7. Note that the labels on the ROC curve are produced by specifying the ID=PROB option, and are the predicted probabilities for the cutpoints.
Output 72.8.2: Fit Tables for Popind=Alb
Output 72.8.3: ROC Curve for Popind=Alb
Output 72.8.4: Fit Tables for Popind=Totscore
Output 72.8.5: ROC Curve for Popind=Totscore
Output 72.8.6: Fit Tables for Popind=Tp
Output 72.8.7: ROC Curve for Popind=Tp
All ROC curves being compared are also overlaid on the same plot, as shown in Output 72.8.8.
Output 72.8.8: Overlay of All Models Being Compared
Output 72.8.9 displays the association statistics, and displays the area under the ROC curve along with its standard error and a confidence interval for each model in the comparison. The confidence interval for Total Protein contains 0.50; hence it is not significantly different from random guessing, which is represented by the diagonal line in the preceding ROC plots.
Output 72.8.9: ROC Association Table
Output 72.8.10 shows that the contrast used ’K-G Score’ as the reference level. This table is produced by specifying the E option in the ROCCONTRAST statement.
Output 72.8.10: ROC Contrast Coefficients
Output 72.8.11 shows that the 2-degrees-of-freedom test that the ’K-G Score’ is different from at least one other test is not significant at the 0.05 level.
Output 72.8.11: ROC Test Results (2 Degrees of Freedom)
Output 72.8.12 is produced by specifying the ESTIMATE option in the ROCCONTRAST statement. Each row shows that the curves are not significantly different.
Output 72.8.12: ROC Contrast Row Estimates (1-Degree-of-Freedom Tests)