turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- Analytics
- /
- Stat Procs
- /
- Proc Logistic: ERROR: The SAS System stopped proc...

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 03:25 PM

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

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 04:29 PM - edited 03-17-2016 04:30 PM

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.

All Replies

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 03:48 PM

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;
```

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 03:50 PM

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

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 03:54 PM

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.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 04:05 PM

Solution

03-17-2016
04:34 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 04:29 PM - edited 03-17-2016 04:30 PM

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.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

03-17-2016 04:31 PM - edited 03-17-2016 04:34 PM

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

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