- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.