` COMPUTE! ISSUE 9 / FEBRUARY 1981 / PAGE 42`

 Stat Lab A. Wachtel The 2k Experimental design is a method to determine the effect of a number of parameters which influence the outcome of a process, as well as their interactions. The main effects are considered independent from each other and orthogonal. For example, we wish to determine the effects of temperature, pressure, and agitation on the yield of a chemical reaction, or we wish to determine the number of sales per month as a function of product quality, packaging, and the amount of advertising. Combining each of the three parameters in all possible ways, we get 23 or 8 figures for yield or sales which are entered as DATA. The program employs Yate's algorithm which is simply a convenient mathematical method to arrive at the results which are read from the table which is produced. Suppose A = temperature (A = high, - = low), B = pressure (B = high, - =low), and C = agitation (C = fast, - = slow or absent), the EFFECT = denote the effects of each of these conditions on yeild. Since EFFECT2/2K = mean square, this is essentially a k - way ANOVA. An estimate of the error usually obtains from the sum of mean squares of the interactions (normally low, i.e. noise). If then, we wish to determine the confidence level for some main effect, we divide its mean square by that of the error to arrive at an F value. Replication of the experiment, i.e. obtaining two inputs for each condition is much better, because then we can obtain an independent estimate of the error from the differences between the replicates. ```0 GOTO 410 10 REM 2^K EXPERIMENTRL DESIGN A. WAC HTEL PITTSBURGH, PA 15235. 20 DIM X(32), Y(32), Z(32) 30 N = 0 40 READ Y : IF Y = 9999 THEN 80 50 N = N + 1 : I = N 60 Y(I) = Y : X(I) = Y(I) 70 GOTO 40 80 DEF FNA(X) = INT (X * 1000 + 0.5)/1000 90 K = INT(LOG(N)/LOG(2) + 0.5) 100 FOR J = 1 TO K 110 FOR I = 1 TO N/2 120 Z(I) = X(2 * I) + X(2 * I - 1) 130 NEXT I 140 FOR I = N/2 + 1 TO N 150 Z(I) = X(2 * (I - N/2)) - X(2 * (I - N/2)-1) 160 NEXT I 170 FOR I = 1 TO N 180 X(I) = Z(I) 190 PRINT " " 200 NEXT I : NEXT J 210 PRINT " N"; TAB(6) "Y"; TAB(10) "VARIABLES"; TAB(27)"ESTIMATES" 220 PRINT" ---"; TAB(5)"----"; TAB(10)"---------"; TAB(27)"--------" 230 PRINT 240 FOR N = 0 TO 2^K-1 250 J = N 260 IF J = 0 THEN A\$ = " MEAN = " : D = 2^K 270 IF J<>0 THEN A\$ = "EFFECT = " : D = 2^K/2 280 FOR I = K - 1 TO 0 STEP -1 290 K(K - I) = INT(N/2^I) : N = N - K(K - I) * 2^I 300 NEXT I 310 PRINT J + 1; TAB(4)Y(J + 1); TAB(10); 320 FOR I = K TO 1 STEP -1 330 IF K(I) = 0 THEN B\$ = " -" 340 IF K(I) = 1 THEN B\$ = " " + CHR\$(K - I + 65) 350 PRINTB\$; 360 NEXT I 370 PRINT TAB(21) A\$; TAB(30) FNA(X(J + 1)/D) 380 N = J 390 NEXT N 400 GOTO 540 410 PRINT" " 420 PRINT "THIS PROGRHM FINDS THE MAIN AND INTER-" 430 PRINT "ACTION EFFECTS OF K VARIABLES A, B, . . ." 440 PRINT "IN ALL COMBINATIONS BY YATE'S ALGORITHM" 450 PRINT" USE LINE 1 AND" 460 PRINT "ANY LINES UP TO 19 TO ENTER N DATA," 470 PRINT "FOLLOWED BY 9999. N IS ALWAYS 2^K. " 480 PRINT "(16 DATA (K = 4) WILL FIT ON THE SCREEN) 490 PRINT 500 PRINT "THE DATA CORRESPOND TO THE OBSERVATIONS" 510 PRINT "OBTAINED WITH THE VARIABLES HIGH (OR" 520 PRINT "PRESENT) = 'A, B, . .' OR LOW (OR ABSENT) = '-'." 530 PRINT "TO REGAIN INSTRUCTIONS, TYPE RUN 410." 540 END READY. ```