/**********************************************************************/ /* Atkinson, Donev, and Tobias, "Optimum Experimental Designs" */ /* */ /* NAME: Program 3.1 */ /* TITLE: Data for Table 3.2 - Purification of nickel sulphate */ /* KEYS: Central composite design */ /* DATA: Nickel sulphate purification */ /* */ /* Author: Randy Tobias */ /* Notes: The program uses the ADX macros to create the underlying */ /* central composite design. */ /* History: */ /* Created...............................................27Jun2007 */ /**********************************************************************/ title1 "Data for Table 3.2 - Purification of nickel sulphate"; /* / Load the macros. /---------------------------------------------------------------------*/ %adxgen; %adxff; %adxcc; /* / Create a central composite design for / - 5 factors, / - based on a half-fraction (16 runs) for the two-level portion, / - with 0 center-points / - with an axial value of 1 for the axial portion, and / - in 1 block. / The factors are named t1, ..., t5 by default. /---------------------------------------------------------------------*/ %adxccd(Nickle,5,16,0,1,1); /* / Sort the data to make it easy to merge in the response values as / given in the table ... /---------------------------------------------------------------------*/ data Nickle; set Nickle; if (_n_ <= 16) then type = 0; else if (t1 ^= 0) then type = 1; else if (t2 ^= 0) then type = 2; else if (t3 ^= 0) then type = 3; else if (t4 ^= 0) then type = 4; else type = 5; proc sort data=Nickle; by type descending t4 descending t3 descending t2 descending t1 descending t5; run; /* / ... then do so. /---------------------------------------------------------------------*/ data Nickle; input t1-t5 y1-y6; datalines; 1 1 1 1 1 94.62 99.98 99.83 9.19 104889 5.07 -1 1 1 1 -1 100.00 99.97 95.12 7.57 3462 4.94 1 -1 1 1 -1 100.00 99.99 93.81 7.68 2730 5.39 -1 -1 1 1 1 77.01 99.99 91.39 6.69 2084 5.05 1 1 -1 1 -1 89.96 82.63 24.58 1.38 239 2.62 -1 1 -1 1 1 81.89 86.97 99.78 3.27 85988 2.90 1 -1 -1 1 1 79.64 93.82 78.13 1.95 862 3.70 -1 -1 -1 1 -1 88.79 85.53 7.04 1.06 195 3.10 1 1 1 -1 -1 100.00 100.00 99.33 7.26 51098 4.92 -1 1 1 -1 1 93.23 99.93 97.99 7.38 22178 5.07 1 -1 1 -1 1 89.61 99.99 98.36 5.76 27666 5.29 -1 -1 1 -1 -1 99.95 99.92 91.35 5.01 4070 5.02 1 1 -1 -1 1 95.80 86.81 30.25 5.12 681 2.59 -1 1 -1 -1 -1 86.59 83.99 38.96 1.30 599 2.66 1 -1 -1 -1 -1 88.46 85.49 42.48 2.03 630 3.16 -1 -1 -1 -1 1 70.86 91.30 28.45 1.25 663 3.20 -1 0 0 0 0 97.68 99.97 95.02 5.68 4394 4.80 1 0 0 0 0 99.92 99.99 97.57 6.68 10130 5.18 0 -1 0 0 0 99.33 99.98 97.06 6.21 8413 5.08 0 1 0 0 0 99.38 99.90 96.83 7.05 7748 4.90 0 0 -1 0 0 80.10 87.74 19.55 1.10 324 3.08 0 0 1 0 0 98.57 99.98 99.31 6.40 35655 5.28 0 0 0 -1 0 98.64 99.95 97.09 6.00 28239 4.80 0 0 0 1 0 99.07 100.00 93.94 6.54 3169 4.81 0 0 0 0 -1 99.96 99.95 82.55 5.52 1910 5.04 0 0 0 0 1 97.68 100.00 89.06 6.30 3097 5.13 ; /* / Finally, decode the factor values as described in Table 3.1. /---------------------------------------------------------------------*/ data Nickle; set Nickle; Time = 60 + ( 120- 60)*(t1 - -1)/2; Temp = 65 + ( 85- 65)*(t2 - -1)/2; CaCO3 = 100 + ( 200- 100)*(t3 - -1)/2; Zinc = 0.1 + ( 0.4- 0.1)*(t4 - -1)/2; FeCu = 0.91 + (1.39-0.91)*(t5 - -1)/2; run; proc print data=Nickle; run; title1;