I am trying to create a Creating Synthetic Data with SAS/OR. Attached is the file I am using and below is the code. Except I am getting the following errors?
598 data INPUTDATA; set SyntheticData(where=(ranuni(2023)<.5));
NOTE: There were 24372 observations read from the data set WORK.SYNTHETICDATA. WHERE RANUNI(2023)<0.5; NOTE: The data set WORK.INPUTDATA has 24372 observations and 13 variables. NOTE: DATA statement used (Total process time): real time 0.04 seconds cpu time 0.01 seconds
599 data METADATA; set SyntheticData(where=(ranuni(2023)>=.5)); 600 run;
NOTE: There were 24470 observations read from the data set WORK.SYNTHETICDATA. WHERE RANUNI(2023)>=0.5; NOTE: The data set WORK.METADATA has 24470 observations and 13 variables. NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.03 seconds
601 602 603 %macro GENDATA(INPUTDATA=INPUTDATA, METADATA=METADATA, OUTPUTDATA=SyntheticData, 604 MOMENTORDER=3, NUMOBS=0, MINNUMIPCANDS=0, LPBATCHSIZE=10, LPGAP=1E-3, 605 NUMCOFORTHREADS=1, MILPMAXTIME=600, RELOBJGAP=1E-4, ALPHA=0.95, 606 RANDSEED=0); 607 608 proc optmodel printlevel=0; 609 call streaminit(&RANDSEED); 610 %PRELIMINARYSTEP(INPUTDATA=&INPUTDATA, METADATA=&METADATA, 611 MOMENTORDER=&MOMENTORDER, ALPHA=&ALPHA); 612 %LPSTEP(MOMENTORDER=&MOMENTORDER, NUMOBS=&NUMOBS, 613 MINNUMIPCANDS=&MINNUMIPCANDS, LPBATCHSIZE=&LPBATCHSIZE, 614 LPGAP=&LPGAP, NUMCOFORTHREADS=&NUMCOFORTHREADS); 615 %IPSTEP(OUTPUTDATA=&OUTPUTDATA, MOMENTORDER=&MOMENTORDER, 616 NUMOBS=&NUMOBS, MINNUMIPCANDS=&MINNUMIPCANDS, 617 MILPMAXTIME=&MILPMAXTIME, RELOBJGAP=&RELOBJGAP); 618 quit; 619 620 %mend GENDATA; 621 %GENDATA; NOTE: Line generated by the invoked macro "GENDATA". 1 %PRELIMINARYSTEP(INPUTDAT - 180 1 ! A=&INPUTDATA, METADATA=&METADATA, MOMENTORDER=&MOMENTORDER, ALPHA=&ALPHA); 1 ! %LPSTEP(MOMENTORDER=&MOMENTORDER, NUMOBS=&NUMOBS, WARNING: Apparent invocation of macro PRELIMINARYSTEP not resolved. ERROR 180-322: Statement is not valid or it is used out of proper order.
NOTE: Line generated by the invoked macro "GENDATA". 1 proc optmodel printlevel=0; call streaminit(&RANDSEED); 1 ! %PRELIMINARYSTEP(INPUTDATA=&INPUTDATA, METADATA=&METADATA, MOMENTORDER=&MOMENTORDER, 1 ! ALPHA=&ALPHA); %LPSTEP(MOMENTORDER=&MOMENTORDER, NUMOBS=&NUMOBS, - 180 ERROR 180-322: Statement is not valid or it is used out of proper order.
WARNING: Apparent invocation of macro LPSTEP not resolved. NOTE: Line generated by the invoked macro "GENDATA". 2 %IPSTEP(OUTPUTDATA=&OUTPUTDATA, MOMENTORDER=&MOMENTORDER, NUMOBS=&NUMOBS,
-
180 2 ! MINNUMIPCANDS=&MINNUMIPCANDS, WARNING: Apparent invocation of macro IPSTEP not resolved. ERROR 180-322: Statement is not valid or it is used out of proper order.
NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE OPTMODEL used (Total process time): real time 0.00 seconds cpu time 0.01 seconds
... View more