Shared Concepts and Topics

Convergence Status

(View the complete code for this example.)

Most procedures that iterate create a table named ConvergenceStatus. The table contains a numeric column named Status and a character column named Reason. When iterations complete successfully, the status is 0. Values greater than 0 indicate something other than a successful convergence. Larger values indicate more severe problems. Different procedures produce different values for different reasons. Consult the Reason column and the SAS log for more information about nonzero values. Batch users can create an output data set from the ConvergenceStatus table and consult it to determine how to proceed with the analysis.

Sample values include the following:

0

converged; everything seemed fine

1

converged, but there was some minor problem or a reason to question the results

2

the iteration limit was reached without convergence, but everything seemed fine

3

an error prevented further iteration

The following steps illustrate how to display the convergence status:

data heights;
   input Family Gender $ Height @@;
   datalines;
1 F 67   1 F 66   1 F 64   1 M 71   1 M 72   2 F 63
2 F 63   2 F 67   2 M 69   2 M 68   2 M 70   3 F 63
3 M 64   4 F 67   4 F 66   4 M 67   4 M 67   4 M 69
;

proc mixed data=heights method=ml;
   ods output convergencestatus=cs;
   class Family Gender;
   model Height = Gender Family Family*Gender;
   repeated / type=un subject=family r;
run;

proc print data=cs;
   id status;
run;

The iteration history and convergence status table are displayed in Output 19.14. The convergence status data set is displayed in Output 19.15. The nonzero status indicates that there is a problem with the results.

Output 19.14: Iteration History and Convergence Status

The Mixed Procedure

Iteration History
IterationEvaluations-2 Log LikeCriterion
0153.85649943 
1259.689192980.21180916
2156.392767840.47136098
3150.816789986.59294844
4147.1949470792.10547924
5144.30542619804.32745160
6140.8311389011985.500199
7137.08565532323091.35119
8132.24827112692348698.04
9130.792739414077848649.1
10130.329784398432022473.8
11129.0023237579361618410
12127.69147734822164754225
13126.384970319.0131493E12
14125.931700002.0896677E13
15125.920264502.1346701E13
16125.466992474.9695019E13
17125.371451015.9410588E13
18124.066454656.9087504E14
19124.043030997.2157752E14
20124.020086907.5368932E14
211724.020086907.5368932E14
221724.020086907.5368932E14
231724.020086907.5368932E14
241724.020086907.5368932E14
251724.020086907.5368932E14
261724.020086907.5368932E14
271724.020086907.5368932E14

WARNING: Stopped because of too many likelihood evaluations.


Output 19.15: Convergence Status Data Set

StatusReasonpdGpdH
1WARNING: Stopped because of too many likelihood evaluations.11


The results converge in the following example:

proc mixed data=heights method=ml;
   ods output convergencestatus=cs;
   class Family Gender;
   model Height = Gender Family Family*Gender;
   repeated / type=ar(1) subject=family r;
run;

proc print data=cs;
   id status;
run;

The iteration history, convergence status table, and convergence status data set are displayed in Output 19.16.

Output 19.16: Iteration History and Convergence Status Table and Data Set

The Mixed Procedure

Iteration History
IterationEvaluations-2 Log LikeCriterion
0153.85649943 
1253.465851960.00000000

Convergence criteria met.

StatusReasonpdGpdH
0Convergence criteria met.11


Last updated: October 28, 2020