06-27-2017 11:13 AM
I am trying to run a time series model using the proc GAM procedure. My data is about 1GB. When i run the model, i get an error message:
ERROR: The SAS System stopped processing this step because of insufficient memory. NOTE: PROCEDURE GAM used (Total process time): real time 11.63 seconds cpu time 8.79 seconds
The error message is generated within few seconds. I have provided example of my program below:
proc gam data=testdata plots=all ; class X2 (ref= '1') Y2-Y7 Z1-Z10 ; model outcome= spline(month) spline(temp) param(X1 X2 Y2-Y7 Z1-Z10 ) / dist=Poisson method=gcv; run;
X1 = continuous variable
X2 has three age categories
Y2-Y7 are dummy variables with 1 or 0
Z1-Z10 are dummy variable for year (10 year period)
month = month of teh year
Temp = daily average temperature
I am wondering why i keep getting the error message within a short period of time ? I am not sure if something may be wrong with teh way the data is set up. However, the model runs and converges when i run with data subsetted for each year.
06-27-2017 11:21 AM
the original GAM algorithm that was implemented in PROC GAM does not scale to large data.
Try the new GAMPL procedure, which can fit generalized additive models using more efficient algorithms. The GAMPL procedure was introduced in SAS/STAT 14.1 (SAS 9.4m3).
For an example and links to the GAMPL procedure, see the blog post "Nonparametric regression for binary response data in SAS"