## 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 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

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/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 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 Rn 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'```
These are generators for a six-factor design with factors `a` through `f`, using 24 = 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.