I am attempting to run Proc Logistic and the ROCPLOT macro on a dataset with 10^6 data points. The ROC plot will not display and the threshold labels for each classifier will not display. Only the composite threshold label will display:
Criterion Symbol Cutpoint Label Value
Correct C 0.36905 . . . . 0.369 C 0.9277
Typically, the threshold labels for each classifier will be sequentially listed where the "...." is. Is this just a limitation in the software secondary to too many datapoints?
Please help.
Thank you for any assistance.
Hello,
Maybe this post will help you better.
Usage Note 31184: The error "java.lang.OutOfMemoryError: Java heap space" might occur when you use ODS Graphics with a large data set.
https://support.sas.com/kb/31/184.html
If you do not want to edit your your SAS 9 configuration file, you may still be able to display your ROCPLOT by modifying your ODS options for the plot-procedure, there's a whole lot of options affecting ODS memory usage for graphs (See documentation).
Good luck,
Koen
Hello,
I have never used the ROCPLOT macro but produced thousands of ROC-plots. 😉
In cases like this, we cannot do much without you showing us the LOG. What is the LOG saying??
What version of SAS are you using? You can find out by submitting :
%PUT &=sysvlong;
.
Can't you use the PROC LOGISTIC ROC Statement and PLOTS=ROC option for ROC comparisons?
I believe the ROCPLOT macro is quite old already. There must be better alternatives by now. Maybe it has some unique features though that I am overlooking (again, I don't know the macro).
Cheers,
Koen
Hello,
I do not think that post (Problem Note 55533) will help you.
You get the same ERROR message but you are not using SAS® Asset Performance Analytics neither PROC PRINCOMP (unless there's a PROC PRINCOMP in the ROCPLOT macro but I doubt it).
The message
<< ERROR: Java virtual machine exception. java.lang.OutOfMemoryError: GC overhead limit exceeded. >>
is simply telling you, according to me, there's too much to plot (too many points, too many labels, too many ...).
It's a message probably thrown by a Statistical Graphics procedure (SG_something_ like SGPLOT). So it's not caused by your PROC LOGISTIC.
Kind regards,
Koen
Hello,
Maybe this post will help you better.
Usage Note 31184: The error "java.lang.OutOfMemoryError: Java heap space" might occur when you use ODS Graphics with a large data set.
https://support.sas.com/kb/31/184.html
If you do not want to edit your your SAS 9 configuration file, you may still be able to display your ROCPLOT by modifying your ODS options for the plot-procedure, there's a whole lot of options affecting ODS memory usage for graphs (See documentation).
Good luck,
Koen
Thanks again, Koen. I modified the .cfg file as the link instructed and it worked. In SAS 9.4 on my workstation, the file is in the following directory:
SASHome/SASFoundation/9.4/nls/en
It might be that the Java errors will go away by simply closing and restarting SAS and then running the macro before doing a lot of other things. It is the number of observations in the OUTROC= data set from PROC LOGISTIC and input with the INROC= macro option that will be an issue rather than the number of observations used to fit the model. If there are a lot of observations in the INROC= data set, then you might want to use one the thinning methods described in the macro documentation. It would help to see the macro call that you used, but the "..." in the Label might be due to you specifying a large number of labeling items in the ID= macro option. Using fewer might help.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.