Programming the statistical procedures from SAS

Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memory.

Accepted Solution Solved
Reply
New Contributor
Posts: 4
Accepted Solution

Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memory.

Hi, I am running the following code 

ods listing close;
ods output FitStatistics = TempFit ParameterEstimates=TempEst NObs=TempNObs
RSquare=TempRSquare Classification=TempClass Association=TempAssoc ResponseProfile=TempResp;
proc logistic data=temp.temp_51101 DESCENDING;
model XYZ = AA BB CC DD EE /RSQUARE CTABLE pprob=(0.0 to 1 by 0.05);
run;

ods output close;
ods listing;
ods trace off;

 

and I get the log 

ERROR: The SAS System stopped processing this step because of insufficient memory.
NOTE: There were 5169 observations read from the data set WORK.TEMP_51101.
NOTE: PROCEDURE LOGISTIC used (Total process time):
real time 0.69 seconds
cpu time 0.65 seconds

 

The database is not particularly large and I cannot believe that there is a memory issue. 

 

Any suggestions?


Accepted Solutions
Solution
‎03-17-2016 04:34 PM
SAS Super FREQ
Posts: 3,306

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

[ Edited ]

PROC LOGISTIC is intended for regression when the response variable is binary (although it also supports other categorical distributions.)

 

If you run PROC FREQ on your XYZ variable, you will see that it is a continuous variable with 5169 unique values. PROC LOGISTIC is trying to fit a cumulative logit model to this data.

 

In short, the distribution of XYZ is not appropriate for PROC LOGISTIC. You can try other procedures like PROC REG.

 

I don't know anything about your data, but if you run PROC UNIVARIATE on the response variable, you will see that Obs=4801 is an extreme outlier. I'd check to see if it was miscoded.

View solution in original post


All Replies
SAS Super FREQ
Posts: 3,306

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

Strange. The following call does the same compution on 5400 observations without difficulty for me. Can you run it?

 

Can you run your model on your data when you omit the CTABLE and PPROB= options?

 

data cars;
set sashelp.cars sashelp.cars sashelp.cars sashelp.cars sashelp.cars
    sashelp.cars sashelp.cars sashelp.cars sashelp.cars sashelp.cars
    sashelp.cars sashelp.cars sashelp.cars sashelp.cars sashelp.cars
    sashelp.cars sashelp.cars sashelp.cars sashelp.cars sashelp.cars;
where origin in ("USA" "Europe");
run;

proc logistic data=cars;
model origin = cylinders weight mpg_city mpg_highway invoice / RSQUARE CTABLE pprob=(0 to 1 by 0.05);
run;

New Contributor
Posts: 4

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

Hi, here it is:


320 proc logistic data=cars;
321 model origin = cylinders weight mpg_city mpg_highway invoice / RSQUARE CTABLE pprob=(0 to 1 by 0.05);
322 run;

NOTE: PROC LOGISTIC is modeling the probability that Origin='Europe'. One way to change this to model the probability that Origin='USA'
is to specify the response variable option EVENT='USA'.
NOTE: Convergence criterion (GCONV=1E-8) satisfied.
NOTE: There were 5400 observations read from the data set WORK.CARS.
NOTE: PROCEDURE LOGISTIC used (Total process time):
real time 0.04 seconds
cpu time 0.03 second

SAS Super FREQ
Posts: 3,306

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

Great. The fact that you can run the example means that it is not a "lack of memory" problem.  My guess it that something is special/degenerate with your data, but I don't know what.  If you can attach the data, that would  help.

New Contributor
Posts: 4

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

Thanks a million. Here it goes.

 

Attachment
Solution
‎03-17-2016 04:34 PM
SAS Super FREQ
Posts: 3,306

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

[ Edited ]

PROC LOGISTIC is intended for regression when the response variable is binary (although it also supports other categorical distributions.)

 

If you run PROC FREQ on your XYZ variable, you will see that it is a continuous variable with 5169 unique values. PROC LOGISTIC is trying to fit a cumulative logit model to this data.

 

In short, the distribution of XYZ is not appropriate for PROC LOGISTIC. You can try other procedures like PROC REG.

 

I don't know anything about your data, but if you run PROC UNIVARIATE on the response variable, you will see that Obs=4801 is an extreme outlier. I'd check to see if it was miscoded.

New Contributor
Posts: 4

Re: Proc Logistic: ERROR: The SAS System stopped processing this step because of insufficient memor

[ Edited ]

I am so sorry for wasting your time. That was silly Smiley Happy 

 

I had a typo in the macro that was generating that XYZ variable and I was overlooking the error. 

 

Sorry and thanks a million.

PA

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 6 replies
  • 1031 views
  • 0 likes
  • 2 in conversation