I ran the sample code for this particular macro and was able to make it work.
Data snippet:
Obs
actor_id
abuse
bereavement
bully
depressed
isolated
relationship
self_harm
stress_anxiety
substance
suicide
Other
nonConfor
AI
Asian
Hispanic
GenOther
White
age14to24
COVID
irflag
1
169
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
2
499
1
2
1
2
1
2
1
2
1
2
1
1
1
1
1
1
0
0
1
1
3
547
1
1
1
2
1
1
2
2
1
1
1
1
1
1
0
1
1
0
1
1
4
615
2
2
1
2
2
2
2
2
2
2
1
1
1
1
1
1
0
0
0
1
5
924
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
6
930
1
1
1
2
2
2
2
2
1
2
1
1
1
1
1
1
0
0
1
1
7
1075
2
1
1
2
1
2
1
1
1
1
1
1
1
0
1
1
1
0
1
1
8
1129
1
1
1
2
2
2
1
1
1
2
1
1
1
1
1
1
0
0
1
1
9
1193
1
1
1
2
2
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
10
1197
1
1
2
2
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
11
1310
2
2
1
2
2
2
2
2
1
2
1
1
0
1
1
1
1
0
1
0
12
1367
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
13
1651
1
1
1
2
1
2
1
2
1
1
1
1
1
1
1
1
0
0
1
1
14
1695
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
0
0
0
1
15
1706
1
1
1
2
2
1
1
2
1
1
1
1
1
0
1
1
1
0
0
1
16
1723
1
1
1
2
2
2
2
1
1
2
1
1
1
1
1
1
0
0
1
1
17
1861
2
2
2
2
2
2
2
2
1
2
1
1
1
1
1
1
0
0
0
1
18
2011
2
2
1
2
2
2
2
2
1
2
1
1
1
1
1
1
0
0
0
0
19
2022
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
20
2050
1
1
1
2
2
1
2
2
1
2
1
1
1
1
1
1
0
0
1
1
21
2060
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
22
2167
1
1
1
2
2
1
2
2
1
2
1
1
1
1
1
1
0
0
1
1
23
2206
2
1
1
2
2
2
2
2
2
2
1
1
1
1
1
1
0
0
1
1
24
2366
1
2
1
2
2
1
2
2
1
2
1
0
1
1
1
1
0
0
1
1
I ran this macro code:
%LCA_Covariates_3Step(postprobs = my_post4,
id = actor_id,
covariates = Other nonConfor AI Asian Hispanic genOther White age14to24 covid irflag);
*Covariates = Male Other nonConfor AI Asian Hispanic Other White GenOther age14to24 covid irflag
**code calling the 2nd macro w
And keep encountering an error stating:
ERROR: OTHER is not in the scope of variables for the data set.
SAS log:
MLOGIC(LCA_COVARIATES_3STEP): Parameter COVARIATES has value Other nonConfor AI Asian Hispanic
genOther White age14to24 covid irflag
MLOGIC(LCA_COVARIATES_3STEP): Parameter GROUPS has value
MLOGIC(LCA_COVARIATES_3STEP): Parameter ASSIGNMENT has value Modal
MLOGIC(LCA_COVARIATES_3STEP): Parameter ADJUSTMENT has value BCH
MLOGIC(LCA_COVARIATES_3STEP): Parameter REF_CLASS has value 1
MLOGIC(LCA_COVARIATES_3STEP): Parameter SAMPLING_WEIGHT has value
MLOGIC(LCA_COVARIATES_3STEP): Parameter AUTOMATICALLY_ADD_INTERCEPT has value 1
MPRINT(LCA_COVARIATES_3STEP): TITLE "Using LCA_Covariates_3Step Macro";
MLOGIC(TRIM): Beginning execution.
MLOGIC(TRIM): This macro was compiled from the autocall file C:\Program
Files\SASHome\SASFoundation\9.4\core\sasmacro\trim.sas
MLOGIC(TRIM): Parameter VALUE has value ""
MLOGIC(TRIM): %LOCAL I
MLOGIC(TRIM): %DO loop beginning; index variable I; start value is 2; stop value is 1; by value is
-1.
MLOGIC(TRIM): %IF condition %qsubstr(&value,&i,1) ne is TRUE
MLOGIC(TRIM): %GOTO trimmed (label resolves to TRIMMED).
MLOGIC(TRIM): %IF condition &i>0 is TRUE
MLOGIC(TRIM): Ending execution.
MLOGIC(LCA_COVARIATES_3STEP): %IF condition %TRIM("&groups")="" is TRUE
MLOGIC(LCA_COVARIATES_3STEP): %LET (variable name is THERE_ARE_GROUPS)
MLOGIC(LCA_COVARIATES_3STEP): %IF condition %EVAL(&there_are_groups=1) is FALSE
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Beginning execution.
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter POSTPROBS has value my_post4
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter ID has value actor_id
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter COVARIATES has value Other nonConfor AI Asian
Hispanic genOther White age14to24 covid irflag
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter ASSIGNMENT has value Modal
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter ADJUSTMENT has value BCH
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter REF_CLASS has value 1
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter SAMPLING_WEIGHT has value
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Parameter AUTOMATICALLY_ADD_INTERCEPT has value 1
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DATA bchtemp1;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): SET my_post4;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): RUN;
NOTE: There were 157274 observations read from the data set WORK.MY_POST4.
NOTE: The data set WORK.BCHTEMP1 has 157274 observations and 16 variables.
NOTE: DATA statement used (Total process time):
real time 0.16 seconds
cpu time 0.10 seconds
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): PROC TRANSPOSE DATA=my_post4
OUT=TemporaryDatasetForBCHmacro;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): RUN;
NOTE: There were 157274 observations read from the data set WORK.MY_POST4.
NOTE: The data set WORK.TEMPORARYDATASETFORBCHMACRO has 16 observations and 157276 variables.
NOTE: PROCEDURE TRANSPOSE used (Total process time):
real time 0.78 seconds
cpu time 0.71 seconds
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): PROC IML;
NOTE: IML Ready
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): USE TemporaryDatasetForBCHmacro;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): READ ALL VAR {_NAME_} INTO name;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): CLOSE TemporaryDatasetForBCHmacro;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): nClasses = (SUM(SUBSTR(UPCASE(name),1,6)="POSTLC"));
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): CALL SYMPUT("nClasses",CHAR(nClasses));
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): QUIT;
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.51 seconds
cpu time 0.51 seconds
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): PROC DATASETS NOLIST NOWARN NOPRINT;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DELETE TemporaryDatasetForBCHmacro;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): RUN;
NOTE: Deleting WORK.TEMPORARYDATASETFORBCHMACRO (memtype=DATA).
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %PUT _all_
LCA_COVARIATES_3STEP_NO_GROUPS ADJUSTMENT BCH
LCA_COVARIATES_3STEP_NO_GROUPS ASSIGNMENT Modal
LCA_COVARIATES_3STEP_NO_GROUPS AUTOMATICALLY_ADD_INTERCEPT 1
LCA_COVARIATES_3STEP_NO_GROUPS COVARIATES Other nonConfor AI Asian Hispanic genOther White age14to24
covid irflag
LCA_COVARIATES_3STEP_NO_GROUPS ID actor_id
LCA_COVARIATES_3STEP_NO_GROUPS NCLASSES 4
LCA_COVARIATES_3STEP_NO_GROUPS POSTPROBS my_post4
LCA_COVARIATES_3STEP_NO_GROUPS REF_CLASS 1
LCA_COVARIATES_3STEP_NO_GROUPS SAMPLING_WEIGHT
LCA_COVARIATES_3STEP ADJUSTMENT BCH
LCA_COVARIATES_3STEP ASSIGNMENT Modal
LCA_COVARIATES_3STEP AUTOMATICALLY_ADD_INTERCEPT 1
LCA_COVARIATES_3STEP COVARIATES Other nonConfor AI Asian Hispanic genOther White age14to24 covid
irflag
LCA_COVARIATES_3STEP GROUPS
LCA_COVARIATES_3STEP ID actor_id
LCA_COVARIATES_3STEP POSTPROBS my_post4
LCA_COVARIATES_3STEP REF_CLASS 1
LCA_COVARIATES_3STEP SAMPLING_WEIGHT
LCA_COVARIATES_3STEP THERE_ARE_GROUPS 0
AUTOMATIC AFDSID 0
AUTOMATIC AFDSNAME
AUTOMATIC AFLIB
AUTOMATIC AFSTR1
AUTOMATIC AFSTR2
AUTOMATIC FSPBDV
AUTOMATIC SYSADDRBITS 64
AUTOMATIC SYSBUFFR
AUTOMATIC SYSCC 3000
AUTOMATIC SYSCHARWIDTH 1
AUTOMATIC SYSCMD
AUTOMATIC SYSDATASTEPPHASE
AUTOMATIC SYSDATE 03DEC20
AUTOMATIC SYSDATE9 03DEC2020
AUTOMATIC SYSDAY Thursday
AUTOMATIC SYSDEVIC
AUTOMATIC SYSDMG 0
AUTOMATIC SYSDSN WORK TEMPORARYDATASETFORBCHMACRO
AUTOMATIC SYSENCODING utf-8
AUTOMATIC SYSENDIAN LITTLE
AUTOMATIC SYSENV FORE
AUTOMATIC SYSERR 0
AUTOMATIC SYSERRORTEXT File WORK.WEIGHTED_GLOGIT_SANDWICH_COV.DATA does not exist.
AUTOMATIC SYSFILRC 0
AUTOMATIC SYSHOSTINFOLONG X64_SRV16 WIN 10.0.14393 Server
AUTOMATIC SYSHOSTNAME Aperture
AUTOMATIC SYSINCLUDEFILEDEVICE
AUTOMATIC SYSINCLUDEFILEDIR
AUTOMATIC SYSINCLUDEFILEFILEREF
AUTOMATIC SYSINCLUDEFILENAME
AUTOMATIC SYSINDEX 20
AUTOMATIC SYSINFO 0
AUTOMATIC SYSJOBID 544
AUTOMATIC SYSLAST WORK.TEMPORARYDATASETFORBCHMACRO
AUTOMATIC SYSLCKRC 0
AUTOMATIC SYSLIBRC 0
AUTOMATIC SYSLOGAPPLNAME
AUTOMATIC SYSMACRONAME LCA_COVARIATES_3STEP_NO_GROUPS
AUTOMATIC SYSMAXLONG 2147483647
AUTOMATIC SYSMENV
AUTOMATIC SYSMSG
AUTOMATIC SYSNCPU 4
AUTOMATIC SYSNOBS 16
AUTOMATIC SYSODSESCAPECHAR 03
AUTOMATIC SYSODSGRAPHICS 1
AUTOMATIC SYSODSPATH SASUSER.TEMPLAT(UPDATE) SASHELP.TMPLMST(READ)
AUTOMATIC SYSPARM
AUTOMATIC SYSPRINTTOLOG
AUTOMATIC SYSPRINTTOLIST
AUTOMATIC SYSPROCESSID 41DCA65620DAD0E54018000000000000
AUTOMATIC SYSPROCESSMODE SAS DMS Session
AUTOMATIC SYSPROCESSNAME DMS Process
AUTOMATIC SYSPROCNAME DATASETS
AUTOMATIC SYSRC 0
AUTOMATIC SYSSCP WIN
AUTOMATIC SYSSCPL X64_SRV16
AUTOMATIC SYSSITE 70080458
AUTOMATIC SYSSIZEOFLONG 4
AUTOMATIC SYSSIZEOFPTR 8
AUTOMATIC SYSSIZEOFUNICODE 2
AUTOMATIC SYSSTARTID
AUTOMATIC SYSSTARTNAME
AUTOMATIC SYSTCPIPHOSTNAME Aperture
AUTOMATIC SYSTIME 22:04
AUTOMATIC SYSTIMEZONE
AUTOMATIC SYSTIMEZONEIDENT
AUTOMATIC SYSTIMEZONEOFFSET -18000
AUTOMATIC SYSUSERID jrunkle
AUTOMATIC SYSVER 9.4
AUTOMATIC SYSVLONG 9.04.01M6P110718
AUTOMATIC SYSVLONG4 9.04.01M6P11072018
AUTOMATIC SYSWARNINGTEXT Data set WORK.SANDWICH_COVARIANCE was not replaced because this step was
stopped.
MLOGIC(CALCULATECLASS_WEIGHTS): Beginning execution.
MLOGIC(CALCULATECLASS_WEIGHTS): Parameter POSTPROBSDATASET has value my_post4
MLOGIC(CALCULATECLASS_WEIGHTS): Parameter SUBJECTID has value actor_id
MLOGIC(CALCULATECLASS_WEIGHTS): Parameter NCLASSES has value 4
MLOGIC(CALCULATECLASS_WEIGHTS): Parameter SAMPLING_WEIGHT has value
MLOGIC(CALCULATECLASS_WEIGHTS): Parameter ASSIGNMENT has value Modal
MLOGIC(CALCULATECLASS_WEIGHTS): Parameter ADJUSTMENT has value BCH
NOTE: PROCEDURE DATASETS used (Total process time):
real time 0.07 seconds
cpu time 0.06 seconds
MPRINT(CALCULATECLASS_WEIGHTS): PROC IML;
NOTE: IML Ready
MPRINT(CALCULATECLASS_WEIGHTS): Assignment = LOWCASE(TRIM("Modal"));
MPRINT(CALCULATECLASS_WEIGHTS): Adjustment = LOWCASE(TRIM("BCH"));
MPRINT(CALCULATECLASS_WEIGHTS): IF (Assignment^="modal" & Assignment^="proportional") THEN DO;
MPRINT(CALCULATECLASS_WEIGHTS): PRINT ("Assignment option not recognized:");
MPRINT(CALCULATECLASS_WEIGHTS): PRINT(Assignment);
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): IF (Adjustment^="bch" & Adjustment^="none") THEN DO;
MPRINT(CALCULATECLASS_WEIGHTS): PRINT ("Adjustment option not recognized:");
MPRINT(CALCULATECLASS_WEIGHTS): PRINT(Adjustment);
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): USE my_post4;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop beginning; index variable CLASS; start value is 1; stop
value is 4; by value is 1.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 2; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 3; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 4; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 5; loop will not iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): READ ALL VAR {actor_id PostLC1 PostLC2 PostLC3 PostLC4 Best};
MPRINT(CALCULATECLASS_WEIGHTS): CLOSE my_post4;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop beginning; index variable CLASS; start value is 2; stop
value is 4; by value is 1.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 3; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 4; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 5; loop will not iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): PostLC = PostLC1 || PostLC2 || PostLC3 || PostLC4 ;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop beginning; index variable CLASS; start value is 2; stop
value is 4; by value is 1.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 3; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 4; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 5; loop will not iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): IsBestLC = (Best=1) || (Best=2) || (Best=3) || (Best=4) ;
MPRINT(CALCULATECLASS_WEIGHTS): UnadjustedWeights = J(NROW(IsBestLC),4,.);
MPRINT(CALCULATECLASS_WEIGHTS): IF (Assignment="modal") THEN DO;
MPRINT(CALCULATECLASS_WEIGHTS): UnadjustedWeights = IsBestLC;
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): ELSE DO;
MPRINT(CALCULATECLASS_WEIGHTS): UnadjustedWeights = PostLC;
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): IF (LENGTH(LOWCASE(TRIM("_")))>1) THEN DO;
MPRINT(CALCULATECLASS_WEIGHTS): DO class = 1 TO 4;
MPRINT(CALCULATECLASS_WEIGHTS): UnadjustedWeights[,class] = ( + 0)#UnadjustedWeights[,class];
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): ELSE DO;
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): IF (Adjustment="bch") THEN DO;
MPRINT(CALCULATECLASS_WEIGHTS): D = J(4,4,.);
MPRINT(CALCULATECLASS_WEIGHTS): DO t = 1 TO 4;
MPRINT(CALCULATECLASS_WEIGHTS): DO s = 1 TO 4;
MPRINT(CALCULATECLASS_WEIGHTS): D[t,s] = ((PostLC[,t] # UnadjustedWeights[,s])[+]) / (PostLC[+,t]);
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): Class_Weights = UnadjustedWeights * INV(D);
MPRINT(CALCULATECLASS_WEIGHTS): END;
MPRINT(CALCULATECLASS_WEIGHTS): ELSE DO;
MPRINT(CALCULATECLASS_WEIGHTS): Class_Weights = UnadjustedWeights;
MPRINT(CALCULATECLASS_WEIGHTS): END;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop beginning; index variable CLASS; start value is 1; stop
value is 4; by value is 1.
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeightLC1 = Class_Weights[,1];
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 2; loop will iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeightLC2 = Class_Weights[,2];
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 3; loop will iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeightLC3 = Class_Weights[,3];
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 4; loop will iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeightLC4 = Class_Weights[,4];
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 5; loop will not iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop beginning; index variable CLASS; start value is 1; stop
value is 4; by value is 1.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 2; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 3; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 4; loop will iterate again.
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 5; loop will not iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): CREATE Class_Weights VAR {actor_id ClassWeightLC1 ClassWeightLC2
ClassWeightLC3 ClassWeightLC4};
MPRINT(CALCULATECLASS_WEIGHTS): APPEND ;
MPRINT(CALCULATECLASS_WEIGHTS): CLOSE Class_Weights;
NOTE: The data set WORK.CLASS_WEIGHTS has 157274 observations and 5 variables.
MPRINT(CALCULATECLASS_WEIGHTS): QUIT;
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.31 seconds
cpu time 0.28 seconds
MPRINT(CALCULATECLASS_WEIGHTS): DATA Class_Weights_Long;
MPRINT(CALCULATECLASS_WEIGHTS): SET Class_Weights;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop beginning; index variable CLASS; start value is 1; stop
value is 4; by value is 1.
MPRINT(CALCULATECLASS_WEIGHTS): Class = 1;
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeight = ClassWeightLC1;
MPRINT(CALCULATECLASS_WEIGHTS): OUTPUT;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 2; loop will iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): Class = 2;
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeight = ClassWeightLC2;
MPRINT(CALCULATECLASS_WEIGHTS): OUTPUT;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 3; loop will iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): Class = 3;
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeight = ClassWeightLC3;
MPRINT(CALCULATECLASS_WEIGHTS): OUTPUT;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 4; loop will iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): Class = 4;
MPRINT(CALCULATECLASS_WEIGHTS): ClassWeight = ClassWeightLC4;
MPRINT(CALCULATECLASS_WEIGHTS): OUTPUT;
MLOGIC(CALCULATECLASS_WEIGHTS): %DO loop index variable CLASS is now 5; loop will not iterate again.
MPRINT(CALCULATECLASS_WEIGHTS): KEEP actor_id Class ClassWeight;
MPRINT(CALCULATECLASS_WEIGHTS): RUN;
NOTE: There were 157274 observations read from the data set WORK.CLASS_WEIGHTS.
NOTE: The data set WORK.CLASS_WEIGHTS_LONG has 629096 observations and 3 variables.
NOTE: DATA statement used (Total process time):
real time 0.11 seconds
cpu time 0.04 seconds
MLOGIC(CALCULATECLASS_WEIGHTS): Ending execution.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): ;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DATA ForAnalysis;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): MERGE my_post4 Class_Weights;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): BY actor_id;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): RUN;
NOTE: There were 157274 observations read from the data set WORK.MY_POST4.
NOTE: There were 157274 observations read from the data set WORK.CLASS_WEIGHTS.
NOTE: The data set WORK.FORANALYSIS has 157274 observations and 20 variables.
NOTE: DATA statement used (Total process time):
real time 0.16 seconds
cpu time 0.12 seconds
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %IF condition %EVAL(&automatically_add_intercept>0) is TRUE
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DATA ForAnalysis;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): SET ForAnalysis;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): _Intercept_ = 1;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): RUN;
NOTE: There were 157274 observations read from the data set WORK.FORANALYSIS.
NOTE: The data set WORK.FORANALYSIS has 157274 observations and 21 variables.
NOTE: DATA statement used (Total process time):
real time 0.14 seconds
cpu time 0.11 seconds
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %LET (variable name is COVARIATES)
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DATA ForAnalysisLong;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): SET ForAnalysis;
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop beginning; index variable CLASS; start value is 1;
stop value is 4; by value is 1.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): LC = 1;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): ClassWeight = ClassWeightLC1;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): OUTPUT;
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 2; loop will iterate
again.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): LC = 2;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): ClassWeight = ClassWeightLC2;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): OUTPUT;
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 3; loop will iterate
again.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): LC = 3;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): ClassWeight = ClassWeightLC3;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): OUTPUT;
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 4; loop will iterate
again.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): LC = 4;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): ClassWeight = ClassWeightLC4;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): OUTPUT;
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 5; loop will not
iterate again.
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop beginning; index variable CLASS; start value is 1;
stop value is 4; by value is 1.
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 2; loop will iterate
again.
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 3; loop will iterate
again.
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 4; loop will iterate
again.
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): %DO loop index variable CLASS is now 5; loop will not
iterate again.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DROP ClassWeightLC1 ClassWeightLC2 ClassWeightLC3
ClassWeightLC4 ;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): RUN;
NOTE: There were 157274 observations read from the data set WORK.FORANALYSIS.
NOTE: The data set WORK.FORANALYSISLONG has 629096 observations and 19 variables.
NOTE: DATA statement used (Total process time):
real time 0.37 seconds
cpu time 0.28 seconds
MLOGIC(DOWEIGHTEDGLOGIT): Beginning execution.
MLOGIC(DOWEIGHTEDGLOGIT): Parameter INPUTDATASET has value ForAnalysisLong
MLOGIC(DOWEIGHTEDGLOGIT): Parameter OUTCOMECLASS has value LC
MLOGIC(DOWEIGHTEDGLOGIT): Parameter REF_CLASS has value 1
MLOGIC(DOWEIGHTEDGLOGIT): Parameter WEIGHT has value ClassWeight
MLOGIC(DOWEIGHTEDGLOGIT): Parameter COVARIATES has value _Intercept_ Other nonConfor AI Asian
Hispanic genOther White age14to24 covid irflag
MLOGIC(DOWEIGHTEDGLOGIT): Parameter SUBJECTID has value actor_id
MLOGIC(DOWEIGHTEDGLOGIT): Parameter OBSERVATIONID has value LC
MLOGIC(DOWEIGHTEDGLOGIT): Parameter REGULARIZATIONCONSTANTEXP has value 0
MLOGIC(DOWEIGHTEDGLOGIT): Parameter REGULARIZATIONCONSTANTFORCOV has value 0
MLOGIC(DOWEIGHTEDGLOGIT): Parameter REGULARIZATIONCONSTANTFORSE has value 0
MPRINT(DOWEIGHTEDGLOGIT): PROC IML;
NOTE: IML Ready
MPRINT(DOWEIGHTEDGLOGIT): USE ForAnalysisLong;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {LC} INTO Y;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {ClassWeight} INTO W;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {_Intercept_ Other nonConfor AI Asian Hispanic genOther
White age14to24 covid irflag} INTO XMatrix;
ERROR: OTHER is not in the scope of variables for the data set.
statement : READ at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {actor_id} INTO id;
MPRINT(DOWEIGHTEDGLOGIT): CLOSE ForAnalysisLong;
MPRINT(DOWEIGHTEDGLOGIT): numCovariates = NCOL(XMatrix);
MPRINT(DOWEIGHTEDGLOGIT): numClasses = Y[<>];
MPRINT(DOWEIGHTEDGLOGIT): CALL SYMPUT("numCovariates",(CHAR(numCovariates)));
MPRINT(DOWEIGHTEDGLOGIT): CALL SYMPUT("numClasses",(CHAR(numClasses)));
MPRINT(DOWEIGHTEDGLOGIT): DataForNlmixedAsMatrix = id || W || Y || XMatrix;
MPRINT(DOWEIGHTEDGLOGIT): VariableNames = "id" || "W" || "Y" || ("X1":"X 0");
MPRINT(DOWEIGHTEDGLOGIT): CREATE DataForNlmixed FROM DataForNlmixedAsMatrix [COLNAME=VariableNames];
NOTE: The colname matrix size does not match the number of columns in the FROM matrix.
MPRINT(DOWEIGHTEDGLOGIT): APPEND FROM DataForNlmixedAsMatrix ;
MPRINT(DOWEIGHTEDGLOGIT): CLOSE DataForNlmixed;
NOTE: The data set WORK.DATAFORNLMIXED has 629096 observations and 3 variables.
MPRINT(DOWEIGHTEDGLOGIT): QUIT;
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.62 seconds
cpu time 0.57 seconds
MPRINT(DOWEIGHTEDGLOGIT): ODS EXCLUDE ALL;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
MPRINT(DOWEIGHTEDGLOGIT): ODS NORESULTS;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
MPRINT(DOWEIGHTEDGLOGIT): PROC NLMIXED DATA=DataForNlmixed COV START HESS METHOD=GAUSS TECH=NRRIDG
MAXITER=500 MAXFUNC=1000;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop beginning; index variable K; start value is 1; stop value is 0;
by value is 1. Loop will not be executed.
MPRINT(DOWEIGHTEDGLOGIT): PARMS ;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop beginning; index variable C; start value is 1; stop value is 4;
by value is 1.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): eta1 = 0;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 2; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&numCovariates>1) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): eta2 = b12*X1 ;
MPRINT(DOWEIGHTEDGLOGIT): expEta2 = EXP(eta2 + 0);
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 3; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&numCovariates>1) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): eta3 = b13*X1 ;
MPRINT(DOWEIGHTEDGLOGIT): expEta3 = EXP(eta3 + 0);
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 4; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&numCovariates>1) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): eta4 = b14*X1 ;
MPRINT(DOWEIGHTEDGLOGIT): expEta4 = EXP(eta4 + 0);
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 5; loop will not iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop beginning; index variable C; start value is 1; stop value is 4;
by value is 1.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is FALSE
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 2; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 3; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 4; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 5; loop will not iterate again.
MPRINT(DOWEIGHTEDGLOGIT): denominator = 1 + expEta2 + expEta3 + expEta4 ;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop beginning; index variable C; start value is 1; stop value is 4;
by value is 1.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): IF Y=1 THEN likelihood = 1/denominator;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 2; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MPRINT(DOWEIGHTEDGLOGIT): IF Y=2 THEN likelihood = expEta2/denominator;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 3; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MPRINT(DOWEIGHTEDGLOGIT): IF Y=3 THEN likelihood = expEta3/denominator;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 4; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MPRINT(DOWEIGHTEDGLOGIT): IF Y=4 THEN likelihood = expEta4/denominator;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 5; loop will not iterate again.
MPRINT(DOWEIGHTEDGLOGIT): SumSquaredBetas = 0;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop beginning; index variable C; start value is 1; stop value is 4;
by value is 1.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is FALSE
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 2; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&numCovariates>1) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): SumSquaredBetas = SumSquaredBetas + (b12)**2;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 3; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&numCovariates>1) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): SumSquaredBetas = SumSquaredBetas + (b13)**2;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 4; loop will iterate again.
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&c ^= &Ref_Class) is TRUE
MLOGIC(DOWEIGHTEDGLOGIT): %IF condition %EVAL(&numCovariates>1) is FALSE
MPRINT(DOWEIGHTEDGLOGIT): SumSquaredBetas = SumSquaredBetas + (b14)**2;
MLOGIC(DOWEIGHTEDGLOGIT): %DO loop index variable C is now 5; loop will not iterate again.
MPRINT(DOWEIGHTEDGLOGIT): loglikelihood = W *LOG(likelihood) ;
MPRINT(DOWEIGHTEDGLOGIT): MODEL Y ~ GENERAL(loglikelihood);
MPRINT(DOWEIGHTEDGLOGIT): if Y = . then _ll = .;
MPRINT(DOWEIGHTEDGLOGIT): else if _est0 = . then _ll = .;
MPRINT(DOWEIGHTEDGLOGIT): else do;
MPRINT(DOWEIGHTEDGLOGIT): _ll = _est0;
MPRINT(DOWEIGHTEDGLOGIT): end;
MPRINT(DOWEIGHTEDGLOGIT): ODS OUTPUT PARAMETERESTIMATES=Weighted_GLogit_Coef
CONVERGENCESTATUS=Weighted_Glogit_Convergence;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: The parameters b12, X1, b13, b14 are assigned the default starting value of 1.0, because they
are not assigned initial values with the PARMS statement.
NOTE: Convergence criterion (GCONV=1E-8) satisfied.
NOTE: At least one element of the gradient is greater than 1e-3.
NOTE: Moore-Penrose inverse is used in covariance matrix.
WARNING: The final Hessian matrix is full rank but has at least one negative eigenvalue. Second-order
optimality condition violated.
NOTE: The data set WORK.WEIGHTED_GLOGIT_CONVERGENCE has 1 observations and 2 variables.
NOTE: The data set WORK.WEIGHTED_GLOGIT_COEF has 4 observations and 10 variables.
NOTE: PROCEDURE NLMIXED used (Total process time):
real time 18.07 seconds
cpu time 17.96 seconds
MPRINT(DOWEIGHTEDGLOGIT): PROC PRINT DATA=Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: There were 4 observations read from the data set WORK.WEIGHTED_GLOGIT_COEF.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
MPRINT(DOWEIGHTEDGLOGIT): DATA Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): SET Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): Row = _N_;
MPRINT(DOWEIGHTEDGLOGIT): Covariate = INT((Row-1)/( 4-1))+1;
MPRINT(DOWEIGHTEDGLOGIT): Class = Row-(Covariate-1)*( 4-1);
MPRINT(DOWEIGHTEDGLOGIT): IF (Class=>1) THEN Class = Class + 1;
MPRINT(DOWEIGHTEDGLOGIT): DROP Row;
MPRINT(DOWEIGHTEDGLOGIT): Std_Err = .;
MPRINT(DOWEIGHTEDGLOGIT): KEEP Covariate Class Estimate Std_Err;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: There were 4 observations read from the data set WORK.WEIGHTED_GLOGIT_COEF.
NOTE: The data set WORK.WEIGHTED_GLOGIT_COEF has 4 observations and 4 variables.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
MPRINT(DOWEIGHTEDGLOGIT): PROC PRINT DATA=Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: There were 4 observations read from the data set WORK.WEIGHTED_GLOGIT_COEF.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
MPRINT(DOWEIGHTEDGLOGIT): PROC SORT DATA=Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): BY Class Covariate;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: There were 4 observations read from the data set WORK.WEIGHTED_GLOGIT_COEF.
NOTE: The data set WORK.WEIGHTED_GLOGIT_COEF has 4 observations and 4 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
MPRINT(DOWEIGHTEDGLOGIT): PROC PRINT DATA=Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: There were 4 observations read from the data set WORK.WEIGHTED_GLOGIT_COEF.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
MPRINT(DOWEIGHTEDGLOGIT): DATA TempDatasetForMacro;
MPRINT(DOWEIGHTEDGLOGIT): SET ForAnalysisLong;
MPRINT(DOWEIGHTEDGLOGIT): BY actor_id;
MPRINT(DOWEIGHTEDGLOGIT): RETAIN BCHMacroIntID 0;
MPRINT(DOWEIGHTEDGLOGIT): IF first.actor_id THEN BCHMacroIntID = BCHMacroIntID + 1;
MPRINT(DOWEIGHTEDGLOGIT): OUTPUT;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
NOTE: There were 629096 observations read from the data set WORK.FORANALYSISLONG.
NOTE: The data set WORK.TEMPDATASETFORMACRO has 629096 observations and 20 variables.
NOTE: DATA statement used (Total process time):
real time 0.49 seconds
cpu time 0.34 seconds
MPRINT(DOWEIGHTEDGLOGIT): PROC IML;
NOTE: IML Ready
MPRINT(DOWEIGHTEDGLOGIT): USE Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {Covariate Class Estimate};
MPRINT(DOWEIGHTEDGLOGIT): CLOSE Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): USE TempDatasetForMacro;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {LC} INTO Y;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {ClassWeight} INTO W;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {_Intercept_ Other nonConfor AI Asian Hispanic genOther
White age14to24 covid irflag} INTO XMatrix;
ERROR: OTHER is not in the scope of variables for the data set.
statement : READ at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {BCHMacroIntID} INTO ClusterId;
MPRINT(DOWEIGHTEDGLOGIT): READ ALL VAR {LC} INTO MemberID;
MPRINT(DOWEIGHTEDGLOGIT): CLOSE TempDatasetForMacro;
MPRINT(DOWEIGHTEDGLOGIT): p = NCOL(XMatrix);
MPRINT(DOWEIGHTEDGLOGIT): ntotal = NROW(Y);
MPRINT(DOWEIGHTEDGLOGIT): nsub = ClusterID[<>];
MPRINT(DOWEIGHTEDGLOGIT): PRINT ClusterID;
MPRINT(DOWEIGHTEDGLOGIT): PRINT ntotal nsub;
MPRINT(DOWEIGHTEDGLOGIT): m = ntotal / nsub;
MPRINT(DOWEIGHTEDGLOGIT): n = ntotal / m;
MPRINT(DOWEIGHTEDGLOGIT): nc = Y[<>];
MPRINT(DOWEIGHTEDGLOGIT): YAsMatrix = J(n*m,nc,0);
MPRINT(DOWEIGHTEDGLOGIT): DO c = 1 TO nc;
MPRINT(DOWEIGHTEDGLOGIT): IF SUM(Y=c)>0 THEN DO;
MPRINT(DOWEIGHTEDGLOGIT): whichrows = LOC(Y=c)`;
MPRINT(DOWEIGHTEDGLOGIT): YAsMatrix[whichrows,c] = 1;
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): CoefAsVector = Estimate;
MPRINT(DOWEIGHTEDGLOGIT): ModelInformationMatrix = J((nc-1)*p,(nc-1)*p,0);
ERROR: (execution) Invalid operand to operation.
operation : J at line 1655 column 1
operands : _TEM1002, _TEM1004, *LIT1013
_TEM1002 1 row 1 col (numeric)
0
_TEM1004 1 row 1 col (numeric)
0
*LIT1013 1 row 1 col (numeric)
0
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): TotalScoreVector = J((nc-1)*p,1,0);
ERROR: (execution) Invalid operand to operation.
operation : J at line 1655 column 1
operands : _TEM1002, *LIT1015, *LIT1016
_TEM1002 1 row 1 col (numeric)
0
*LIT1015 1 row 1 col (numeric)
1
*LIT1016 1 row 1 col (numeric)
0
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): EmpiricalCovOfScore = J(p*(nc-1),p*(nc-1),0);
ERROR: (execution) Invalid operand to operation.
operation : J at line 1655 column 1
operands : _TEM1002, _TEM1004, *LIT1019
_TEM1002 1 row 1 col (numeric)
0
_TEM1004 1 row 1 col (numeric)
0
*LIT1019 1 row 1 col (numeric)
0
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): CoefAsMatrix = SHAPE(CoefAsVector,nc-1)`;
ERROR: (execution) Invalid operand to operation.
operation : SHAPE at line 1655 column 1
operands : CoefAsVector, _TEM1001
CoefAsVector 4 rows 1 col (numeric)
0.7460985
0.5490168
0.8688431
1.6429111
_TEM1001 1 row 1 col (numeric)
3
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): ref_class = 1;
MPRINT(DOWEIGHTEDGLOGIT): IF (ref_class = 1) THEN DO;
MPRINT(DOWEIGHTEDGLOGIT): Nonref_classes = 2:nc;
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): IF (ref_class = nc) THEN DO;
MPRINT(DOWEIGHTEDGLOGIT): Nonref_classes = 1:(nc-1);
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): IF ((ref_class >1) & (ref_class < nc)) THEN DO;
MPRINT(DOWEIGHTEDGLOGIT): Nonref_classes = (1:(ref_class-1)) || ((ref_class+1):nc);
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): DO i = 1 TO n;
MPRINT(DOWEIGHTEDGLOGIT): ScoreVector = J((nc-1)*p,1,0);
MPRINT(DOWEIGHTEDGLOGIT): DO j = 1 TO m;
MPRINT(DOWEIGHTEDGLOGIT): wij = w[LOC(ClusterID=i & MemberID=j)];
MPRINT(DOWEIGHTEDGLOGIT): * Assumes there is only one such entry. ;
MPRINT(DOWEIGHTEDGLOGIT): yij = YasMatrix[LOC(ClusterID=i & MemberID=j),]`;
MPRINT(DOWEIGHTEDGLOGIT): xij = XMatrix[LOC(ClusterID=i & MemberID=j),];
MPRINT(DOWEIGHTEDGLOGIT): eta = J(nc,1,0);
MPRINT(DOWEIGHTEDGLOGIT): eta[Nonref_classes] = xij*CoefAsMatrix;
MPRINT(DOWEIGHTEDGLOGIT): eta = (eta <> -20) >< +20;
MPRINT(DOWEIGHTEDGLOGIT): eta = eta + 0;
MPRINT(DOWEIGHTEDGLOGIT): expEta = EXP(eta);
MPRINT(DOWEIGHTEDGLOGIT): piij = expEta / expEta[+];
MPRINT(DOWEIGHTEDGLOGIT): Mij = DIAG(piij[Nonref_classes]) -
piij[Nonref_classes]*piij[Nonref_classes]`;
MPRINT(DOWEIGHTEDGLOGIT): BigXij = (I(nc-1) @ xij)`;
MPRINT(DOWEIGHTEDGLOGIT): ScoreVector = ScoreVector +
wij*BigXij*(yij[Nonref_classes]-piij[Nonref_classes]);
MPRINT(DOWEIGHTEDGLOGIT): ModelInformationMatrix = ModelInformationMatrix + wij*BigXij*Mij*BigXij`;
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): TotalScoreVector = TotalScoreVector + ScoreVector;
MPRINT(DOWEIGHTEDGLOGIT): EmpiricalCovOfScore = EmpiricalCovOfScore + ScoreVector*ScoreVector`;
MPRINT(DOWEIGHTEDGLOGIT): END;
ERROR: (execution) Invalid operand to operation.
operation : J at line 1655 column 1
operands : _TEM1002, *LIT1032, *LIT1033
_TEM1002 1 row 1 col (numeric)
0
*LIT1032 1 row 1 col (numeric)
1
*LIT1033 1 row 1 col (numeric)
0
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): CoefAsVectorOld = CoefAsVector;
MPRINT(DOWEIGHTEDGLOGIT): lambda = 0*(VECDIAG(ModelInformationMatrix))[+];
ERROR: (execution) Matrix has not been set to a value.
operation : VECDIAG at line 1655 column 1
operands : ModelInformationMatrix
ModelInformationMatrix 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): NaiveCovCoef =
INV(ModelInformationMatrix+lambda*I(NROW(ModelInformationMatrix)));
ERROR: (execution) Invalid operand to operation.
operation : I at line 1655 column 1
operands : _TEM1001
_TEM1001 1 row 1 col (numeric)
0
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): CoefAsVector = CoefAsVector + NaiveCovCoef*TotalScoreVector;
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 1655 column 1
operands : NaiveCovCoef, TotalScoreVector
NaiveCovCoef 0 row 0 col (type ?, size 0)
TotalScoreVector 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): MaxAbsDev = (ABS(CoefAsVector - CoefAsVectorOld))[<>];
MPRINT(DOWEIGHTEDGLOGIT): CorrectionFactor = (n/(n-1))*((n*m-1)/(n*m-(nc-1)*p));
MPRINT(DOWEIGHTEDGLOGIT): * In SAS PROC SURVEYLOGISTIC, the option VADJUST=NONE uses n/(n-1). * The
option VADJUST=DF uses (n/(n-1))*((n*m-1)/(n*m-(nc-1)*p)). ;
MPRINT(DOWEIGHTEDGLOGIT): SandwichCov = NaiveCovCoef` * (CorrectionFactor*EmpiricalCovOfScore) *
NaiveCovCoef;
ERROR: (execution) Matrix has not been set to a value.
operation : ` at line 1655 column 1
operands : NaiveCovCoef
NaiveCovCoef 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): IF (VECDIAG(SandwichCov)[><]>0) THEN DO;
MPRINT(DOWEIGHTEDGLOGIT): Std_Err = SQRT(VECDIAG(SandwichCov));
MPRINT(DOWEIGHTEDGLOGIT): END;
MPRINT(DOWEIGHTEDGLOGIT): ELSE DO;
MPRINT(DOWEIGHTEDGLOGIT): Std_Err = J(NROW(SandwichCov),1,.);
MPRINT(DOWEIGHTEDGLOGIT): END;
ERROR: (execution) Matrix has not been set to a value.
operation : VECDIAG at line 1655 column 1
operands : SandwichCov
SandwichCov 0 row 0 col (type ?, size 0)
statement : IF at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): EDIT Weighted_GLogit_Coef;
MPRINT(DOWEIGHTEDGLOGIT): REPLACE ALL VAR {Std_Err };
WARNING: All data set variables are unvalued. No REPLACE done.
statement : REPLACE at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): CLOSE Weighted_GLogit_Coef;
NOTE: The data set WORK.WEIGHTED_GLOGIT_COEF has 4 observations and 4 variables.
MPRINT(DOWEIGHTEDGLOGIT): CREATE Weighted_GLogit_Sandwich_Cov FROM SandwichCov;
ERROR: Matrix SandwichCov has not been set to a value.
statement : CREATE at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): APPEND FROM SandwichCov;
ERROR: No data set is currently open for output.
statement : APPEND at line 1655 column 1
MPRINT(DOWEIGHTEDGLOGIT): CLOSE Weighted_GLogit_Sandwich_Cov;
NOTE: Cannot close WORK.WEIGHTED_GLOGIT_SANDWICH_COV; it is not open.
MPRINT(DOWEIGHTEDGLOGIT): QUIT;
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.73 seconds
cpu time 0.67 seconds
MPRINT(DOWEIGHTEDGLOGIT): ODS EXCLUDE NONE;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
MPRINT(DOWEIGHTEDGLOGIT): ODS RESULTS;
MPRINT(DOWEIGHTEDGLOGIT): RUN;
MLOGIC(DOWEIGHTEDGLOGIT): Ending execution.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): ;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): PROC IML;
NOTE: IML Ready
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): USE Weighted_GLogit_Coef;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): READ ALL;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): CLOSE Weighted_GLogit_Coef;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): CovariateIndex = Covariate;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): NamesString = "_Intercept_ Other nonConfor AI Asian
Hispanic genOther White age14to24 covid irflag";
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): NumCov = 1 + COUNT(NamesString," ");
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Name = J(NROW(CovariateIndex),1,"
");
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): DO i = 1 TO NumCov;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Name[LOC(CovariateIndex=i)] = SCANQ(NamesString,i);
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): END;
ERROR: (execution) Matrix has not been set to a value.
operation : [ at line 1655 column 1
operands : Name, _TEM1002, _TEM1003
Name 4 rows 1 col (character, size 34)
_Intercept_
Other
_Intercept_
_Intercept_
_TEM1002 0 row 0 col (type ?, size 0)
_TEM1003 1 row 1 col (character, size 9)
nonConfor
statement : ASSIGN at line 1655 column 1
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Beta = Estimate;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Exp_Beta = EXP(Beta);
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Upper_CI_Beta = Beta + 1.96 * Std_Err;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Lower_CI_Beta = Beta - 1.96 * Std_Err;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Upper_CI_Exp_Beta = EXP(Upper_CI_Beta);
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Lower_CI_Exp_Beta = EXP(Lower_CI_Beta);
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): Z = Estimate / Std_Err;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): p = 1 - PROBNORM(ABS(Z));
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): CREATE Covariates_Macro_This_Group VAR {Name Class Beta
Std_Err Z p Lower_CI_Beta Upper_CI_Beta Exp_Beta Lower_CI_Exp_Beta Upper_CI_Exp_Beta};
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): APPEND;
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): CLOSE Covariates_Macro_This_Group;
NOTE: The data set WORK.COVARIATES_MACRO_THIS_GROUP has 4 observations and 11 variables.
MPRINT(LCA_COVARIATES_3STEP_NO_GROUPS): QUIT;
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.01 seconds
MLOGIC(LCA_COVARIATES_3STEP_NO_GROUPS): Ending execution.
MPRINT(LCA_COVARIATES_3STEP): ;
MPRINT(LCA_COVARIATES_3STEP): DATA Covariates_Macro_Answers;
MPRINT(LCA_COVARIATES_3STEP): SET Covariates_Macro_This_Group;
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: There were 4 observations read from the data set WORK.COVARIATES_MACRO_THIS_GROUP.
NOTE: The data set WORK.COVARIATES_MACRO_ANSWERS has 4 observations and 11 variables.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.00 seconds
MPRINT(LCA_COVARIATES_3STEP): DATA Sandwich_Covariance;
MPRINT(LCA_COVARIATES_3STEP): SET Weighted_GLogit_Sandwich_Cov;
ERROR: File WORK.WEIGHTED_GLOGIT_SANDWICH_COV.DATA does not exist.
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.SANDWICH_COVARIANCE may be incomplete. When this step was stopped there
were 0 observations and 0 variables.
WARNING: Data set WORK.SANDWICH_COVARIANCE was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
MPRINT(LCA_COVARIATES_3STEP): DATA Covariates_Macro_Convergence;
MPRINT(LCA_COVARIATES_3STEP): SET Weighted_Glogit_Convergence;
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: There were 1 observations read from the data set WORK.WEIGHTED_GLOGIT_CONVERGENCE.
NOTE: The data set WORK.COVARIATES_MACRO_CONVERGENCE has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.00 seconds
MPRINT(LCA_COVARIATES_3STEP): DATA Covariates_Macro_Answers;
MPRINT(LCA_COVARIATES_3STEP): SET Covariates_Macro_Answers;
MPRINT(LCA_COVARIATES_3STEP): WHERE Class IS NOT MISSING;
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: There were 4 observations read from the data set WORK.COVARIATES_MACRO_ANSWERS.
WHERE Class is not null;
NOTE: The data set WORK.COVARIATES_MACRO_ANSWERS has 4 observations and 11 variables.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
MLOGIC(LCA_COVARIATES_3STEP): %IF condition %EVAL(&there_are_groups=1) is FALSE
MPRINT(LCA_COVARIATES_3STEP): TITLE "Beta Estimates from LCA_Covariates_3Step Macro";
MPRINT(LCA_COVARIATES_3STEP): PROC PRINT DATA=Covariates_Macro_Answers NOOBS;
MPRINT(LCA_COVARIATES_3STEP): VAR Class Name Beta Std_Err Z P;
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: There were 4 observations read from the data set WORK.COVARIATES_MACRO_ANSWERS.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.02 seconds
cpu time 0.01 seconds
MPRINT(LCA_COVARIATES_3STEP): TITLE "Approximate 95% Confidence Intervals for Beta Coefficients";
MPRINT(LCA_COVARIATES_3STEP): PROC PRINT DATA=Covariates_Macro_Answers NOOBS;
MPRINT(LCA_COVARIATES_3STEP): VAR Class Name Beta Lower_CI_Beta Upper_CI_Beta;
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: There were 4 observations read from the data set WORK.COVARIATES_MACRO_ANSWERS.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
MPRINT(LCA_COVARIATES_3STEP): TITLE "Exponentiated Betas (Odds and Odds Ratios) and Approximate 95%
Confidence Intervals";
MPRINT(LCA_COVARIATES_3STEP): PROC PRINT DATA=Covariates_Macro_Answers NOOBS;
MPRINT(LCA_COVARIATES_3STEP): VAR Class Name Exp_Beta Lower_CI_Exp_Beta Upper_CI_Exp_Beta;
MPRINT(LCA_COVARIATES_3STEP): RUN;
NOTE: There were 4 observations read from the data set WORK.COVARIATES_MACRO_ANSWERS.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.01 seconds
cpu time 0.03 seconds
MPRINT(LCA_COVARIATES_3STEP): TITLE;
MPRINT(LCA_COVARIATES_3STEP): PROC DATASETS NOLIST NODETAILS NOWARN;
MPRINT(LCA_COVARIATES_3STEP): DELETE BCHTemp1 Covariates_Macro_This_Group DataForNlmixed
ForAnalysis ForAnalysisLong TempDatasetForMacro Weighted_GLogit_Coef Weighted_GLogit_Sandwich_Cov
Weighted_Glogit_Convergence ;
MPRINT(LCA_COVARIATES_3STEP): QUIT;
NOTE: Deleting WORK.BCHTEMP1 (memtype=DATA).
NOTE: Deleting WORK.COVARIATES_MACRO_THIS_GROUP (memtype=DATA).
NOTE: Deleting WORK.DATAFORNLMIXED (memtype=DATA).
NOTE: Deleting WORK.FORANALYSIS (memtype=DATA).
NOTE: Deleting WORK.FORANALYSISLONG (memtype=DATA).
NOTE: Deleting WORK.TEMPDATASETFORMACRO (memtype=DATA).
NOTE: Deleting WORK.WEIGHTED_GLOGIT_COEF (memtype=DATA).
NOTE: Deleting WORK.WEIGHTED_GLOGIT_CONVERGENCE (memtype=DATA).
NOTE: PROCEDURE DATASETS used (Total process time):
real time 0.05 seconds
cpu time 0.04 seconds
MLOGIC(LCA_COVARIATES_3STEP): Ending execution.
1658 *Covariates = Male Other nonConfor AI Asian Hispanic Other White GenOther age14to24 covid irflag
1659 **code calling the 2nd macro w
... View more