01-01-2014 10:57 PM
At the suggestion of Cynthia@sas, I am re-posting this question in this group. (I originally posted it in SAS Macro Facility, Data Step and SAS Language Elements.)
I have a macro that successfully creates 2x2 contingency tables, one for each value of a variable X. The contingency tables are created from PROC FREQ.
Now, I would like to
1) calculate the specificity and sensitivity from each table
2) plot all pairs of sensitivity and 1-specificity to create an ROC curve (sensitivity vs. 1-specificity) for all values of X
Is there a way to automate this in SAS? I can't find a way to do so via searching on Google or SAS documentation.
I envision the successful macro being able to
a) extract the counts from each cell in each contingency table
b) calculate sensitivity and 1-specificity for each contingency table
c) plot sensitivity vs. 1-specificity
but I can't figure out how to do this. (I'm sure that DO-loops and arrays are needed somehow.)
Thus, right now, I am typing the counts by hand into Microsoft Excel and plotting the ROC curve there. This worked initially when I only had to create 5 ROC curves, but I now need to produce 20, and I wish to automate this process.
Any help that you can provide would be much appreciated!
01-03-2014 10:40 AM
Go to Lex Jansen's wonderful website - www.lexjansen.com and search for the SUGI paper "Constructing ROC Curves with the SAS System" by Andrew Stead. The paper contains a nice macro for calculating and plotting ROC curves.
05-03-2014 10:05 PM
Thanks for the suggestion, and sorry for the late reply. After much trying in SAS, I realized that it would be easier to plot the ROC curves in R, so I proceeded to do that successfully and smoothly. There were many curves that I needed to draw, and I needed to do a lot of annotation and colour-coding, so I'm glad that I did it in R.