Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The RSREG Procedure

Searching for Multiple Response Conditions

Suppose you want to find the factor setting that produces responses in a certain region. For example, you have the following data with two factors and three responses:

   data a;
      input x1 x2 y1 y2 y3;
      datalines;
   -1      -1         1.8 1.940  3.6398
   -1       1         2.6 1.843  4.9123
    1      -1         5.4 1.063  6.0128
    1       1         0.7 1.639  2.3629
    0       0         8.5 0.134  9.0910
    0       0         3.0 0.545  3.7349
    0       0         9.8 0.453 10.4412
    0       0         4.1 1.117  5.0042
    0       0         4.8 1.690  6.6245
    0       0         5.9 1.165  6.9420
    0       0         7.3 1.013  8.7442
    0       0         9.3 1.179 10.2762
    1.4142  0         3.9 0.945  5.0245
   -1.4142  0         1.7 0.333  2.4041
    0       1.4142    3.0 1.869  5.2695
    0      -1.4142    5.7 0.099  5.4346
   ;

You want to find the values of x1 and x2 that maximize y1 subject to y2<2 and y3<y2+y1. The exact answer is not easy to obtain analytically, but you can obtain a practically feasible solution by checking conditions across a grid of values in the range of interest. First, append a grid of factor values to the observed data, with missing values for the responses.

   data b;
      set a end=eof;
      output;
      if eof then do;
         y1=.;
         y2=.;
         y3=.;
         do x1=-2 to 2 by .1;
            do x2=-2 to 2 by .1;
               output;
            end;
         end;
      end;
   run;

Next, use PROC RSREG to fit a response surface model to the data and to compute predicted values for both the observed data and the grid, putting the predicted values in a data set c.

   proc rsreg data=b out=c;
      model y1 y2 y3=x1 x2 / predict;
   run;

Finally, find the subset of predicted values that satisfy the constraints, sort by the unconstrained variable, and display the top five predictions.

   data d;
      set c;
      if y2<2;
      if y3<y2+y1;

   proc sort data=d;
      by descending y1;
   run;

   data d; set d;
      i = _n_;
   proc print;
      where (i <= 5);
   run;

The final results are displayed in Figure 56.5. They indicate that optimal values of the factors are around 0.3 for x1 and around -0.5 for x2.

Obs x1 x2 _TYPE_ y1 y2 y3 i
1 0.3 -0.5 PREDICT 6.92570 0.75784 7.60471 1
2 0.3 -0.6 PREDICT 6.91424 0.74174 7.54194 2
3 0.3 -0.4 PREDICT 6.91003 0.77870 7.64341 3
4 0.4 -0.6 PREDICT 6.90769 0.73357 7.51836 4
5 0.4 -0.5 PREDICT 6.90540 0.75135 7.56883 5

Figure 56.5: Top Five Predictions

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

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