Two-level designs are sufficient for evaluating many production
processes. Factor levels of ±
1 can indicate
categorical factors, normalized factor extremes, or simply “up”
and “down” from current factor settings. Experimenters
evaluating process changes are interested primarily
in the factor directions that lead to process improvement.
For experiments with many factors, two-level full factorial designs can lead to large amounts of data. For example, a two-level full factorial design with 10 factors requires 210 = 1024 runs. Often, however, individual factors or their interactions have no distinguishable effects on a response. This is especially true of higher order interactions. As a result, a well-designed experiment can use fewer runs for estimating model parameters.
Fractional factorial designs use a fraction of the runs required by full factorial designs. A subset of experimental treatments is selected based on an evaluation (or assumption) of which factors and interactions have the most significant effects. Once this selection is made, the experimental design must separate these effects. In particular, significant effects should not be confounded, that is, the measurement of one should not depend on the measurement of another.
Plackett-Burman designs are
used when only main effects are considered significant. Two-level
Plackett-Burman designs require a number of experimental runs that
are a multiple of 4 rather than a power of 2. The MATLAB® function
hadamard generates these designs:
dPB = hadamard(8) dPB = 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1
Binary factor levels are indicated by ±
The design is for eight runs (the rows of
manipulating seven two-level factors (the last seven columns of
The number of runs is a fraction 8/27 =
0.0625 of the runs required by a full factorial design. Economy is
achieved at the expense of confounding main effects with any two-way
At the cost of a larger fractional design, you can specify which interactions you wish to consider significant. A design of resolution R is one in which no n-factor interaction is confounded with any other effect containing less than R – n factors. Thus, a resolution III design does not confound main effects with one another but may confound them with two-way interactions (as in Plackett-Burman Designs), while a resolution IV design does not confound either main effects or two-way interactions but may confound two-way interactions with each other.
Specify general fractional factorial designs using a full factorial
design for a selected subset of basic factors and generators for the remaining factors.
Generators are products of the basic factors, giving the levels for
the remaining factors. Use the Statistics and Machine
Learning Toolbox™ function
fracfact to generate these designs:
dfF = fracfact('a b c d bcd acd') dfF = -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 -1 1 1 1 1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 1 1 1 -1 -1 1 1 1 1 -1 1 -1 -1 1 1 1 -1 -1 -1 1 1 1 1 1 1
This is a six-factor design in which four two-level basic factors
d in the first four columns of
are measured in every combination of levels, while the two remaining
factors (in the last three columns of
measured only at levels defined by the generators
respectively. Levels in the generated columns are products of corresponding
levels in the columns that make up the generator.
The challenge of creating a fractional factorial design is to
choose basic factors and generators so that the design achieves a
specified resolution in a specified number of runs. Use the Statistics and Machine
Learning Toolbox function
fracfactgen to find appropriate generators:
generators = fracfactgen('a b c d e f',4,4) generators = 'a' 'b' 'c' 'd' 'bcd' 'acd'
f, using 24 = 16 runs to achieve resolution IV. The
fracfactgenfunction uses an efficient search algorithm to find generators that meet the requirements.
An optional output from
pattern of the design:
[dfF,confounding] = fracfact(generators); confounding confounding = 'Term' 'Generator' 'Confounding' 'X1' 'a' 'X1' 'X2' 'b' 'X2' 'X3' 'c' 'X3' 'X4' 'd' 'X4' 'X5' 'bcd' 'X5' 'X6' 'acd' 'X6' 'X1*X2' 'ab' 'X1*X2 + X5*X6' 'X1*X3' 'ac' 'X1*X3 + X4*X6' 'X1*X4' 'ad' 'X1*X4 + X3*X6' 'X1*X5' 'abcd' 'X1*X5 + X2*X6' 'X1*X6' 'cd' 'X1*X6 + X2*X5 + X3*X4' 'X2*X3' 'bc' 'X2*X3 + X4*X5' 'X2*X4' 'bd' 'X2*X4 + X3*X5' 'X2*X5' 'cd' 'X1*X6 + X2*X5 + X3*X4' 'X2*X6' 'abcd' 'X1*X5 + X2*X6' 'X3*X4' 'cd' 'X1*X6 + X2*X5 + X3*X4' 'X3*X5' 'bd' 'X2*X4 + X3*X5' 'X3*X6' 'ad' 'X1*X4 + X3*X6' 'X4*X5' 'bc' 'X2*X3 + X4*X5' 'X4*X6' 'ac' 'X1*X3 + X4*X6' 'X5*X6' 'ab' 'X1*X2 + X5*X6'
The confounding pattern shows that main effects are effectively separated by the design, but two-way interactions are confounded with various other two-way interactions.