BookmarkSubscribeRSS Feed
kjmathes03
Fluorite | Level 6

I am running PROC MIANALYZE with multiple categorical variables and 1 continuous variable with a type 3 analysis.


proc genmod data=impfinal;
class recipient_id txt_group2(ref='Conventional hemodialysis') race_cl(ref='Caucasian') cad(ref="No") chf(ref="No") cvd(ref="No") pvd(ref="No") malignancy(ref="No") copd(ref="No") hypertension(ref="No")
facility(ref='ON') diagnosis(ref='Glomerular Nephritis') sex(ref='M') bmi_cl(ref='Normal 18.5 - < 25 kg/m2') agegrp(ref='Age 18- < 45') ;
model mon_tues= txt_group2 race_cl copd hypertension sex diagnosis cad chf cvd pvd malignancy facility agegrp hb_cl albumin_result / d=bin link=log type3 lrci covb;
repeated subject=recipient_id / corrw type=cs PRINTMLE ;

by _Imputation_;
ods output ParameterEstimates=gmparms3
ParmInfo=gmpinfo3
CovB=gmcovb3;
run;

When I try to run PROC MIANALYZE I keep getting the following error:

ERROR: The parameter Prm6 in the PARMINFO= data set is not in the COVB= data set.

 

I tried adding the parms(classvar=level)=gmparms3 as suggested in older threads from 2013.But it didn't work. 

 

proc mianalyze parms(classvar=level)=gmparms3  covb=gmcovb3 parminfo=gmpinfo3;

 

***SAS must have made a solution to this in almost 10 years as imputation more and more common.

2 REPLIES 2
SteveDenham
Jade | Level 19

I fear you may have to hand-edit the gmcovb3 dataset, but first, consider using the canonical logit link rather than the log link. If things still don't work well, then printing out that covb dataset to look for zero or near zero terms may be what you have to do.

 

Aaaannnddd, have you checked for quasi-separation (on diagnosis, which looks like Parm6) in any of your imputed datasets?

 

SteveDenham

SAS_Rob
SAS Employee

Technically you do not need to have the COVB= or PARMINFO= data sets in MIANALYZE unless you have a TEST statement or use the MULT option (neither of which you can use with a CLASS statement).  So I would remove them and see if it runs.

proc mianalyze parms(classvar=level)=gmparms3 ;

...

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

What is ANOVA?

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.

Discussion stats
  • 2 replies
  • 468 views
  • 0 likes
  • 3 in conversation