Previous Page | Next Page

The TRANSREG Procedure

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 step:

   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, as follows:

   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 might help 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.

Previous Page | Next Page | Top of Page