Dear Community,
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!
Thanks,
Eric
Eric,
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.
Renee
Hi Renee,
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.
Thanks again,
Eric
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.