DATA Step, Macro, Functions and more

Automate creation of ROC curves from contingency tables

Posts: 40

Automate creation of ROC curves from contingency tables

Dear Community,

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!



Posts: 8,743

Re: Automate creation of ROC curves from contingency tables


  You might post this in the SAS/Graph and ODS Graphics forum. This paper/presentation, for example, shows a method using the SG procedures from data that seems to be generated with PROC FREQ



Ask a Question
Discussion stats
  • 1 reply
  • 2 in conversation