See FACTEX4 in the SAS/QC Sample LibraryByrne and Taguchi (1986) report the use of a fractional factorial design to investigate fitting an elastomeric connector to a nylon tube as tightly as possible. Their experiment applies the design philosophy of Genichi Taguchi, which distinguishes between control factors and noise factors. Control factors are typically those that the engineer is able to set under real conditions, while noise factors vary uncontrollably in practice (though within a predictable range).
The experimental layout consists of two designs, one for the control factors and one for the noise factors. The design for the control factors is called the inner array, and the design for noise factors is called the outer array. The outer array is replicated for each of the runs in the inner array, and a performance measure (“signal-to-noise ratio”) is computed over the replicate. The performance measure thus reflects variation due to changes in the noise factors. You can construct such a crossproduct design with the replication options in the OUTPUT statement of the FACTEX procedure, as shown in this example.
Researchers identified the following four control factors that were thought to influence the amount of force required to pull the connector off the tube:
interference (Interference
), defined as the difference between the outer width of the tubing and the inner width of the connector
connector wall thickness (ConnectorWall
)
depth of insertion (InsertDepth
) of the tubing into the connector
amount of adhesive (Glue
) in the connector pre-dip
Researchers also identified the following three noise factors related to the assembly:
amount of time (Time
) allowed for assembly
temperature (Temperature
))
relative humidity (Humidity
)
Three levels were selected for each of the control factors, and two levels were selected for each of the noise factors.
The following statements construct the 72-run design used by Byrne and Taguchi (1986). First, an eight-run outer array for the three noise factors is created and saved in the data set OUTERARY.
proc factex; factors Time Temperature Humidity; output out=OuterArray Time nvals=( 24 120) Temperature nvals=( 72 150) Humidity nvals=(0.25 0.75); run;
Next, a nine-run inner array (design of resolution 3) is chosen for the control factors. The POINTREP option in the OUTPUT
statement replicates the eight-run outer array in the data set OUTERARY for each of the nine runs in the inner array and saves
the final design containing 72 runs in the data set Design
.
proc factex; factors Interference ConnectorWall InsertDepth Glue / nlev=3; size design=9; model resolution=3; output out=Design pointrep=OuterArray Interference cvals=('Low' 'Medium' 'High' ) ConnectorWall cvals=('Thin' 'Medium' 'Thick' ) InsertDepth cvals=('Shallow' 'Deep' 'Medium') Glue cvals=('Low' 'High' 'Medium'); run;
The final design is listed in Output 7.14.1. Main effects of each factor can be estimated free of each other but are confounded with two-factor interactions.
Output 7.14.1: Design for Control Factor and Noise Factors
Obs | Interference | ConnectorWall | InsertDepth | Glue | Time | Temperature | Humidity |
---|---|---|---|---|---|---|---|
1 | Low | Thin | Shallow | Low | 24 | 72 | 0.25 |
2 | Low | Thin | Shallow | Low | 24 | 72 | 0.75 |
3 | Low | Thin | Shallow | Low | 24 | 150 | 0.25 |
4 | Low | Thin | Shallow | Low | 24 | 150 | 0.75 |
5 | Low | Thin | Shallow | Low | 120 | 72 | 0.25 |
6 | Low | Thin | Shallow | Low | 120 | 72 | 0.75 |
7 | Low | Thin | Shallow | Low | 120 | 150 | 0.25 |
8 | Low | Thin | Shallow | Low | 120 | 150 | 0.75 |
9 | Low | Medium | Medium | Medium | 24 | 72 | 0.25 |
10 | Low | Medium | Medium | Medium | 24 | 72 | 0.75 |
11 | Low | Medium | Medium | Medium | 24 | 150 | 0.25 |
12 | Low | Medium | Medium | Medium | 24 | 150 | 0.75 |
13 | Low | Medium | Medium | Medium | 120 | 72 | 0.25 |
14 | Low | Medium | Medium | Medium | 120 | 72 | 0.75 |
15 | Low | Medium | Medium | Medium | 120 | 150 | 0.25 |
16 | Low | Medium | Medium | Medium | 120 | 150 | 0.75 |
17 | Low | Thick | Deep | High | 24 | 72 | 0.25 |
18 | Low | Thick | Deep | High | 24 | 72 | 0.75 |
19 | Low | Thick | Deep | High | 24 | 150 | 0.25 |
20 | Low | Thick | Deep | High | 24 | 150 | 0.75 |
21 | Low | Thick | Deep | High | 120 | 72 | 0.25 |
22 | Low | Thick | Deep | High | 120 | 72 | 0.75 |
23 | Low | Thick | Deep | High | 120 | 150 | 0.25 |
24 | Low | Thick | Deep | High | 120 | 150 | 0.75 |
25 | Medium | Thin | Medium | High | 24 | 72 | 0.25 |
26 | Medium | Thin | Medium | High | 24 | 72 | 0.75 |
27 | Medium | Thin | Medium | High | 24 | 150 | 0.25 |
28 | Medium | Thin | Medium | High | 24 | 150 | 0.75 |
29 | Medium | Thin | Medium | High | 120 | 72 | 0.25 |
30 | Medium | Thin | Medium | High | 120 | 72 | 0.75 |
31 | Medium | Thin | Medium | High | 120 | 150 | 0.25 |
32 | Medium | Thin | Medium | High | 120 | 150 | 0.75 |
33 | Medium | Medium | Deep | Low | 24 | 72 | 0.25 |
34 | Medium | Medium | Deep | Low | 24 | 72 | 0.75 |
35 | Medium | Medium | Deep | Low | 24 | 150 | 0.25 |
36 | Medium | Medium | Deep | Low | 24 | 150 | 0.75 |
37 | Medium | Medium | Deep | Low | 120 | 72 | 0.25 |
38 | Medium | Medium | Deep | Low | 120 | 72 | 0.75 |
39 | Medium | Medium | Deep | Low | 120 | 150 | 0.25 |
40 | Medium | Medium | Deep | Low | 120 | 150 | 0.75 |
41 | Medium | Thick | Shallow | Medium | 24 | 72 | 0.25 |
42 | Medium | Thick | Shallow | Medium | 24 | 72 | 0.75 |
43 | Medium | Thick | Shallow | Medium | 24 | 150 | 0.25 |
44 | Medium | Thick | Shallow | Medium | 24 | 150 | 0.75 |
45 | Medium | Thick | Shallow | Medium | 120 | 72 | 0.25 |
46 | Medium | Thick | Shallow | Medium | 120 | 72 | 0.75 |
47 | Medium | Thick | Shallow | Medium | 120 | 150 | 0.25 |
48 | Medium | Thick | Shallow | Medium | 120 | 150 | 0.75 |
49 | High | Thin | Deep | Medium | 24 | 72 | 0.25 |
50 | High | Thin | Deep | Medium | 24 | 72 | 0.75 |
51 | High | Thin | Deep | Medium | 24 | 150 | 0.25 |
52 | High | Thin | Deep | Medium | 24 | 150 | 0.75 |
53 | High | Thin | Deep | Medium | 120 | 72 | 0.25 |
54 | High | Thin | Deep | Medium | 120 | 72 | 0.75 |
55 | High | Thin | Deep | Medium | 120 | 150 | 0.25 |
56 | High | Thin | Deep | Medium | 120 | 150 | 0.75 |
57 | High | Medium | Shallow | High | 24 | 72 | 0.25 |
58 | High | Medium | Shallow | High | 24 | 72 | 0.75 |
59 | High | Medium | Shallow | High | 24 | 150 | 0.25 |
60 | High | Medium | Shallow | High | 24 | 150 | 0.75 |
61 | High | Medium | Shallow | High | 120 | 72 | 0.25 |
62 | High | Medium | Shallow | High | 120 | 72 | 0.75 |
63 | High | Medium | Shallow | High | 120 | 150 | 0.25 |
64 | High | Medium | Shallow | High | 120 | 150 | 0.75 |
65 | High | Thick | Medium | Low | 24 | 72 | 0.25 |
66 | High | Thick | Medium | Low | 24 | 72 | 0.75 |
67 | High | Thick | Medium | Low | 24 | 150 | 0.25 |
68 | High | Thick | Medium | Low | 24 | 150 | 0.75 |
69 | High | Thick | Medium | Low | 120 | 72 | 0.25 |
70 | High | Thick | Medium | Low | 120 | 72 | 0.75 |
71 | High | Thick | Medium | Low | 120 | 150 | 0.25 |
72 | High | Thick | Medium | Low | 120 | 150 | 0.75 |
Note that the levels of InsertDepth
and Glue
are listed in the OUTPUT statement in a nonstandard order so that the design produced by the FACTEX procedure matches the
design of Byrne and Taguchi (1986). The order of assignment of levels does not affect the properties of the resulting design. Furthermore, the design can be
randomized with the RANDOMIZE option in the OUTPUT statement.
Byrne and Taguchi (1986) indicate that a smaller outer array with only four runs would have been sufficient. You can generate this design (not shown here) by modifying the statements in this example; specifically, add the following SIZE and MODEL statements:
size design=4; model resolution=3;
In their analysis of the data from the experiment based on the smaller design, Byrne and Taguchi (1986) note several interesting interactions between control and noise factors. However, since the inner array is of resolution 3, it is impossible to say whether interesting interactions exist between the control factors. In other words, you cannot determine whether an effect is due to an interaction or to the main effect with which it is confounded.
One alternative is to begin with a design of resolution 4. Two-factor interactions remain confounded with one another, but they are free of main effects. Moreover, further experimentation can be carried out to distinguish between confounded interactions that seem important. To determine the optimal size of this design, submit the following statements interactively:
proc factex; factors Interference ConnectorWall InsertDepth Glue / nlev=3; model resolution=4; size design=minimum; run;
This causes the following message to appear in the SAS log:
NOTE: Design has 27 runs, resolution = 4.
In other words, the smallest resolution 4 design for four 3-level factors has 27 runs, which together with the eight-run outer array requires 216 runs. Even the smaller four-run outer array requires 108 runs. Both of these designs are substantially larger than the design originally reported, but the larger designs protect against the effects of unsuspected interactions.
A second alternative is to begin with only two levels of the control factors. Further experimentation can then be directed toward exploring the effects of factors determined to be important in this initial stage of experimentation. Note that NLEV=2 is the default in the FACTORS statement. Submit the following additional statements:
factors Interference ConnectorWall InsertDepth Glue; model resolution=4; size design=minimum; run;
This causes the following message to appear in the SAS log:
NOTE: Design has 8 runs, resolution = 4.
Thus, as few as eight runs can be used for the inner array. This design is amenable to blocking, whereas the proposed nine-run design is not. Blocking is an important consideration whenever experimental conditions can vary over the course of conducting the experiment.
Now, submit the following statements:
size design=8; blocks size=minimum; run;
This causes the following message to appear in the SAS log:
NOTE: Design has 8 runs in 4 blocks of size 2, resolution = 4.
Thus the experiment can be run in blocks as small as two runs.