BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
CannonballZ
Calcite | Level 5

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.

1 ACCEPTED SOLUTION

Accepted Solutions
sbxkoenk
SAS Super FREQ

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

View solution in original post

6 REPLIES 6
sbxkoenk
SAS Super FREQ

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

CannonballZ
Calcite | Level 5
Thanks for responding.

Version is 9.4.

The Log shows:
NOTE: Writing HTML Body file: sashtml.htm
NOTE: PROC LOGISTIC is modeling the probability that Infarct='1'.
NOTE: Convergence criterion (GCONV=1E-8) satisfied.
ERROR: Java virtual machine exception. java.lang.OutOfMemoryError: GC
overhead limit exceeded.
ERROR: Java virtual machine exception. java.lang.OutOfMemoryError: GC
overhead limit exceeded.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1048573 observations read from the data set WORK.BAYDATA.
WARNING: The data set WORK.ROC may be incomplete. When this step was
stopped there were 899988
observations and 7 variables.
WARNING: The data set WORK.AGG may be incomplete. When this step was
stopped there were 0
observations and 7 variables.
NOTE: PROCEDURE LOGISTIC used (Total process time):
real time 1:24.00
cpu time 39.86 seconds


However, it looks like this was addressed in another past post. (
http://support.sas.com/kb/55/533.html) I'm sorry if I wasted your time.
I'll try what the post says. Thank you again for leading me in the right
direction.

Regards,
Adam
sbxkoenk
SAS Super FREQ

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

sbxkoenk
SAS Super FREQ

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

CannonballZ
Calcite | Level 5

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  

StatDave
SAS Super FREQ

 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: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is ANOVA?

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.

Discussion stats
  • 6 replies
  • 1592 views
  • 1 like
  • 3 in conversation