## Fractional Factorial Designs

### Introduction to Fractional Factorial Designs

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 2^{10} = 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

*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
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 ±`1`

. The design is
for eight runs (the rows of `dPB`

) manipulating seven two-level
factors (the last seven columns of `dPB`

). The number of runs is a
fraction 8/2^{7} = 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 interactions.

### General Fractional Designs

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 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
(`a`

, `b`

, `c`

, and
`d`

in the first four columns of `dfF`

) are
measured in every combination of levels, while the two remaining factors (in the
last three columns of `dfF`

) are measured only at levels defined by
the generators `bcd`

and `acd`

, 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 function `fracfactgen`

to find appropriate
generators:

generators = fracfactgen('a b c d e f',4,4) generators = 'a' 'b' 'c' 'd' 'bcd' 'acd'

`a`

through `f`

, using 2^{4}= 16 runs to achieve resolution IV. The

`fracfactgen`

function uses an efficient search algorithm to
find generators that meet the requirements.An optional output from `fracfact`

displays the *confounding 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.