Hello, I have received the following error message: ERROR: The SAS System stopped processing this step because of insufficient memory. NOTE: PROCEDURE SURVEYREG used (Total process time): real time 21.09 seconds cpu time 21.15 seconds To put this into context, I am trying to run proc survey reg clustering errors along two dimensions with ~5 million observations. The macro I am using for this is posted below. I am using SAS 9.4 on Windows 10 Pro. My computer has 32 GB of ram and I believe I have set my memory options appropriately...I right clicked my SAS 9.4 icon, chose properties, and ammended the "target" line to say "C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg" -MEMSIZE 30G Essentially just adding the part in bold. The macro I used is listed below and I am trying to include 16 independent variables. I find it hard to imagine that 30GB of memory is not sufficient to complete this task. Thanks! %MACRO clus2OLS(yvar, xvars, cluster1, cluster2, dset); /* do interesection cluster*/ proc surveyreg data=&dset; cluster &cluster1 &cluster2; model &yvar= &xvars / covb; ods output CovB = CovI; quit; /* Do first cluster */ proc surveyreg data=&dset; cluster &cluster1; model &yvar= &xvars / covb; ods output CovB = Cov1; quit; /* Do second cluster */ proc surveyreg data=&dset; cluster &cluster2; model &yvar= &xvars / covb; ods output CovB = Cov2 ParameterEstimates = params; quit; /* Now get the covariances numbers created above. Calc coefs, SEs, t-stats, p-vals using COV = COV1 + COV2 - COVI*/ proc iml; reset noprint; use params; read all var{Parameter} into varnames; read all var _all_ into b; use Cov1; read all var _num_ into x1; use Cov2; read all var _num_ into x2; use CovI; read all var _num_ into x3; cov = x1 + x2 - x3; /* Calculate covariance matrix */ dfe = b[1,3]; stdb = sqrt(vecdiag(cov)); beta = b[,1]; t = beta/stdb; prob = 1-probf(t#t,1,dfe); /* Calc stats */ print,"Parameter estimates",,varnames beta[format=8.4] stdb[format=8.4] t[format=8.4] prob[format=8.4]; conc = beta || stdb || t || prob; cname = {"estimates" "stderror" "tstat" "pvalue"}; create clus2dstats from conc [ colname=cname ]; append from conc; conc = varnames; cname = {"varnames"}; create names from conc [ colname=cname ]; append from conc; quit; data clus2dstats; merge names clus2dstats; run; %MEND clus2OLS;
... View more