BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
JefferyGilbert
Calcite | Level 5

I am running the below proc glimmix procedure.

 

I am tasked with running this for different covariance structures (type=CHOL, type=AR1, etc), and accepting the structure that first converges.

 

I have found the following:

1) when I specify the RANDOM statement, the ods output ConvergenceStatus table will not be created, and therefore I cannot check convergence using that covariate structure.

2) When I do NOT specify the RANDOM statement, the ods output ConvergenceStatus table WILL be created, but then I can't specify the covariance structure.

 

Any suggestions on how I can check convergence while using the various covariance structures? 

 

proc glimmix data=out.alldata(keep=paramcd response AVISITN usubjid trtn subgroup_sort) noitprint noclprint ;
nloptions maxiter=1000000;
by paramcd;
class AVISITN usubjid trtn subgroup_sort ;
model response(descending) = AVISITN trtn subgroup_sort
                                                 avisitn*trtn avisitn*subgroup_sort trtn*subgroup_sort
                                                 AVISITN*trtn*subgroup_sort /s dist=binary ddfm=KR2;
random avisitn / type=CHOL subject=usubjid residual;
ods output convergenceStatus=anl_conv;
run;

1 ACCEPTED SOLUTION

Accepted Solutions
StatsMan
SAS Super FREQ

If GLIMMIX does not start the iteration process due to a problem with the data or model, then the convergencestatus output table will not be produced. You could use the &SYSWARNINGTEXT macro variable to see what the last warning message is that GLIMMIX produces. If that macro variable contains the text "Output 'convergencestatus' not created" then you can act accordingly. 

 

Alternatively you can check on the existence of the data set you assigned to convergencestatus with the &SYSERR macro variable. If you try to use that data set in a DATA step and it does not exist, then &SYSERR will be nonzero and you can act on that information. 

View solution in original post

1 REPLY 1
StatsMan
SAS Super FREQ

If GLIMMIX does not start the iteration process due to a problem with the data or model, then the convergencestatus output table will not be produced. You could use the &SYSWARNINGTEXT macro variable to see what the last warning message is that GLIMMIX produces. If that macro variable contains the text "Output 'convergencestatus' not created" then you can act accordingly. 

 

Alternatively you can check on the existence of the data set you assigned to convergencestatus with the &SYSERR macro variable. If you try to use that data set in a DATA step and it does not exist, then &SYSERR will be nonzero and you can act on that information. 

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

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
  • 1 reply
  • 397 views
  • 0 likes
  • 2 in conversation