## Using the REITERATE Algorithm Option

You can use the REITERATE *a-option* to
perform additional iterations when
PROC TRANSREG stops before the data have adequately converged. For
example, suppose that you execute the following code:
proc transreg data=a;
model mspline(y) = mspline(x1-x5);
output out=b coefficients;
run;

If the transformations do not converge in the default 30 iterations,
you can perform more iterations without repeating the first 30
iterations.

proc transreg data=b reiterate;
model mspline(y) = mspline(x1-x5);
output out=b coefficients;
run;

Note that a WHERE statement is not necessary to exclude the coefficient
observations. They are automatically excluded because their _TYPE_
value is not SCORE.

You can also use the REITERATE *a-option* to specify starting
values other than the
original values for the transformations. Providing alternate starting
points may avoid local optima. Here are two examples.

proc transreg data=a;
model rank(y) = rank(x1-x5);
output out=b;
run;
proc transreg data=b reiterate;
/* Use ranks as the starting point. */
model mspline(y) = mspline(x1-x5);
output out=c coefficients;
run;
data b;
set a;
array tx[6] ty tx1-tx5;
do j = 1 to 6;
tx[j] = normal(7);
end;
run;
proc transreg data=b reiterate;
/* Use a random starting point. */
model mspline(y) = mspline(x1-x5);
output out=c coefficients;
run;

Note that divergence with the REITERATE *a-option*, particularly in the
second iteration, is not an error since the initial transformation
is not required to be a valid member of the transformation family.
When you specify the REITERATE *a-option*, the iteration does not
terminate when the criterion change is negative during the first
10 iterations.

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.