While running PROC GLIMMIX with a large dataset with categorical variables explicitly treated as CLASS variables AND with weight, I got the following error message:

WARNING: Obtaining minimum variance quadratic unbiased estimates as starting values for the covariance parameters failed.

The weight and the use of categorical variables were the cause of the problem as I found out that without weight the model produces results.

SAS support staff spent time trying to figure out what the issue is/was. I sent them a dataset (though I replaced the variables with randomly generated values) and the exact syntax. They determined that (thank you so much for going extra miles to figure this out!):

"the computation of MIVQUE fails because the default singular value (1e-12) leads to the detection of singularity while sweeping of the mixed model equation" -- May 12, 2016.

They proposed that singular value should be specified as a very small value to let the conversion happen:

proc glimmix data=example **singular=1e-9**;

weight psweight;

class race_cate level2 ;

model outcome= race_cate / s dist=normal link=identity ddfm=kr;

random intercept/subject=level2;

run;

****

Before hearing this final response from SAS, I wrote this and said that I chose to use PROC MIXED because it produces results.

SAS Support person suggested that I use of PARMS statement after Random, so I feed in the initial values for variance-covariance values manually/directly. I did something like this:

PARMS (0.2) (0.4);

Then I get:

“ERROR: Values given in PARMS statement are not feasible.”

Out of curiosity, I used PROC MIXED to run the same model without PARMS but with a weight statement. This time, the model produced results without encountering any errors.

PROC MIXED and PROC GLIMMIX produce identical results (or almost or essentially identical results) when the same models are specified.

I *think* my solution for now is to use PROC MIXED for this specific model.

The following two produced the identical results.

proc mixed data=analysis noclprint ;

where random_number > 0.8;

weight psweight;

class level2 race_cate2 loc_cate;

model zposttest=

<I put variable names here -- including categorical variables, level2 race_cate2 loc_cate>

/ s ddfm=kr ;

random int/subject=level2;

ParameterEstimates=kaz5

Diffs=DIF_GROUP5

LSMeans=LS5

Tests3=jointtest;

run;

proc glimmix data=analysis noclprint ;

where random_number > 0.8;

weight psweight;

class level2 race_cate2 loc_cate;

model zposttest=

<I put variable names here -- including categorical variables, race_cate loc_cate>

/ s dist=normal link=identity ddfm=kr STDCOEF ;

lsmeans

race_cate2 loc_cate

/ ilink diff

at (

treat

Zpretest

male

LEP

SPECED

DISADV

)=(0 0 0 0 0 0);

random int/subject=level2;

*parms (.03 ) (.45) /* /hold=1,2*/ ;

*ods output

ParameterEstimates=kaz5

Diffs=DIF_GROUP5

LSMeans=LS5

Tests3=jointtest;

run;