Hi,
I ran the following logistic regression (11,590 observations) and got an insufficiency memory error.
980
981 proc logistic data=c11;
982 model deltar (descending) = lev fsize lirisk mb ltenure outsidechmn ceoapptdoutsdirs
982! staggered
983 pctoldoutsdirs pctbusyoutsdirs outsidedirholds lnumberdirs pctfinexpsaud/rsq;
984 output out=p1 p=prob;
985 run;
ERROR: The SAS System stopped processing this step because of insufficient memory.
NOTE: There were 11590 observations read from the data set WORK.C11.
WARNING: The data set WORK.P1 may be incomplete. When this step was stopped there were 0
observations and 272 variables.
NOTE: PROCEDURE LOGISTIC used (Total process time):
real time 2.94 seconds
cpu time 2.66 seconds
I looked up information and tried maximizing memory. Where do I need to put this command?
987 options memsize=max;
-------
30
WARNING 30-12: SAS option MEMSIZE is valid only at startup of the SAS System. The SAS option is
ignored.
Any advice will be highly appreciated.
Thank you
Sincerely,
Joon1
Please run this:
data _null_; FREERAM_MB=input(getoption('xmrlmem'),20.)/1024/1024; put FREERAM_MB= 8.; run;
proc options group=memory; run;
Thank you so much for your response
Even after entering your code at the first line, I still have the same error message. Any further advice will be highly appreciated.
504 data _null_; FREERAM_MB=input(getoption('xmrlmem'),20.)/1024/1024; put FREERAM_MB= 8.; run;
FREERAM_MB=1622
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
505 proc options group=memory; run;
SAS (r) Proprietary Software Release 9.4 TS1M3
Group=MEMORY
SORTSIZE=268435456
Specifies the amount of memory that is available to the SORT procedure.
SUMSIZE=0 Specifies a limit on the amount of memory that is available for data
summarization procedures when class variables are active.
MAXMEMQUERY=0 Specifies the maximum amount of memory that is allocated for procedures.
MEMBLKSZ=16777216 Specifies the memory block size for Windows memory-based libraries.
MEMMAXSZ=2147483648
Specifies the maximum amount of memory to allocate for using memory-based
libraries.
LOADMEMSIZE=0 Specifies a suggested amount of memory that is needed for executable programs
loaded by SAS.
MEMSIZE=2147483648
Specifies the limit on the amount of virtual memory that can be used during a
SAS session.
REALMEMSIZE=0 Specifies the amount of real memory SAS can expect to allocate.
NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.01 seconds
cpu time 0.03 seconds
498
499 proc logistic data=c11;
500 model deltar (descending) = lev fsize lirisk mb ltenure outsidechmn ceoapptdoutsdirs
500! staggered
501 pctoldoutsdirs pctbusyoutsdirs outsidedirholds lnumberdirs pctfinexpsaud/rsq;
502 output out=p1 p=prob;
503 run;
ERROR: The SAS System stopped processing this step because of insufficient memory.
NOTE: There were 11590 observations read from the data set WORK.C11.
WARNING: The data set WORK.P1 may be incomplete. When this step was stopped there were 0
observations and 272 variables.
NOTE: PROCEDURE LOGISTIC used (Total process time):
real time 2.64 seconds
cpu time 2.43 seconds
You are only giving SAS 2GB of RAM, of which 1.6 GB is usable for procedures..
Is your PC using a 64-bit OS?
How much memory do you have? 4GB or more?
Is so, try increasing the value of MEMSIZE.
If not, I don't know enough about proc logistic to comment further.
You can still increase MEMSIZE with no available RAM, but the processing will then take place on disk and take a looooooooooooooong time.
Change the MEMSIZE setting then. Maybe to 6 GB to start with.
This is done by changing the SAS configuration. Either in the SAS config file or in the desktop shortcut.
Thank you
That is really weird. 11,590 observations should NOT be big data for proc logistic.
or try PROC HPLOGISTIC .
Thank you so much for your help
I tried hplogistic command and it just runs program without producing results. The hard drive of computer is very noisy and the computer (Dell PC) is not functioning well. Do you have any other advice? Thank you
Sincerely,
Joon1
PROC GENMOD also can do logistic regression. But I am not sure if it could work out.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.