Dear SAS community,
I am trying to run weighted models for nested data (a panel survey) using PROC GLIMMIX; however, I keep getting an error and a warning (please see the SAS code and log below). I modified the Glimmix code a bit (added points and specified GCONV), but the error and the warning are still the same. When I remove the "obsweight=HCNSWGTR" and use method=laplace, the code runs just fine. Do you have any suggestions on how to address this issue? I have also attached my data. Thanks.
PROC GLIMMIX DATA = test1 METHOD=QUAD(FASTQUAD QPOINTS=100) plots=all;
CLASS RAHHIDPN STRATCLUS GENDER(REF='1') RACE_ETH(ref='1') MARITAL(ref='1');
MODEL MOBILITY = BSAGE_C BSAGE_C*BSAGE_C GENDER GENDER*BSAGE_C RACE_ETH RACE_ETH*BSAGE_C RACE_ETH*GENDER
TIME TIME*TIME TIME*BSAGE_C TIME*GENDER TIME*RACE_ETH/solution obsweight=HCNSWGTR ;/**LEVEL 1 VARIABLES**/
RANDOM INTERCEPT /subject=STRATCLUS type=VC ;
RANDOM INTERCEPT /subject=RAHHIDPN(STRATCLUS) type=VC ;
NLOPTIONS GCONV=0.00001;
COVTEST/WALD;
ODS OUTPUT parameterestimates=FIXED1 covparms=RAND1;
RUN;
NOTE: PROCEDURE GLIMMIX used (Total process time): real time 24.92 seconds cpu time 11.03 seconds 326 PROC GLIMMIX DATA = test1 METHOD=QUAD(FASTQUAD QPOINTS=100) plots=all; 327 CLASS RAHHIDPN STRATCLUS GENDER(REF='1') RACE_ETH(ref='1') MARITAL(ref='1'); 328 MODEL MOBILITY = BSAGE_C BSAGE_C*BSAGE_C GENDER GENDER*BSAGE_C RACE_ETH RACE_ETH*BSAGE_C RACE_ETH*GENDER TIME TIME*TIME TIME*BSAGE_C TIME*GENDER TIME*RACE_ETH/solution obsweight=HCNSWGTR ; 330 RANDOM INTERCEPT /subject=STRATCLUS type=VC ; 331 RANDOM INTERCEPT /subject=RAHHIDPN(STRATCLUS) type=VC ; 332 NLOPTIONS GCONV=0.00001; 333 COVTEST/WALD; 334 ODS OUTPUT parameterestimates=FIXED1 covparms=RAND1; 335 RUN; WARNING: Class levels for RAHHIDPN are not printed because of excessive size. ERROR: QUANEW Optimization cannot be completed. WARNING: The initial estimates did not yield a valid objective function. NOTE: The data set WORK.RAND1 has 3 observations and 4 variables. WARNING: Output 'parameterestimates' was not created. Make sure that the output object name, label, or path is spelled correctly. Also, verify that the appropriate procedure options are used to produce the requested output object. For example, verify that the NOPRINT option is not used. NOTE: PROCEDURE GLIMMIX used (Total process time): real time 5:39.58 cpu time 2:48.00
And I found the same RAHHIDPN almost have the same STRATCLUS.
Therefore, I suggest to use
subject=STRATCLUS*RAHHIDPN
not
subject=RAHHIDPN(STRATCLUS)
Emm, Suggest you to post it at STAT Forum, since it is about statistical question.
https://communities.sas.com/t5/Statistical-Procedures/bd-p/statistical_procedures
And Calling @StatDave @SteveDenham @Rick_SAS
I was able to run your model without errors, but there are some results that make me wonder if your model could be over specified. Here is the code I used:
PROC GLIMMIX DATA = test1/*(where=(stratclus<999))*/ METHOD=QUAD(FASTQUAD QPOINTS=20) plots=all;
CLASS RAHHIDPN STRATCLUS GENDER(REF='1') RACE_ETH(ref='1') MARITAL(ref='1');
PARMS (0.01) (1.72) (0.5);
MODEL MOBILITY = BSAGE_C BSAGE_C*BSAGE_C GENDER GENDER*BSAGE_C RACE_ETH RACE_ETH*BSAGE_C RACE_ETH*GENDER
TIME TIME*TIME TIME*BSAGE_C TIME*GENDER TIME*RACE_ETH/solution obsweight=HCNSWGTR ;/**LEVEL 1 VARIABLES**/
RANDOM INTERCEPT /subject=STRATCLUS type=VC ;
RANDOM INTERCEPT /subject=RAHHIDPN(STRATCLUS) type=VC ;
NLOPTIONS GCONV=0.00001 tech=congra;
COVTEST/WALD;
ODS OUTPUT parameterestimates=FIXED1 covparms=RAND1;
RUN;
The two changes were to reduce the number of quadrature points, and to use the PARMS statement to provide some better starting values for the random effects. Regarding my thought of over-specification, the F values for five of the terms in the model went to infinity. These were GENDER, RACE_ETH*GENDER, TIME*TIME, TIME*RSAGE_C and TIME*GENDER. You may want to look to see if there is something unusual with the strata and the number of observations available in the various cells.
SteveDenham
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.