Design of Experiments – Full Factorial Designs

December 1st, 2009

In designs where there are multiple factors, all with a discrete group of level settings, the full enumeration of all combinations of factor levels is referred to as a full factorial design. As the number of factors increases, potentially along with the settings for the factors, the total number of experimental units increases rapidly.

In many cases each factor takes only two levels, often referred to as the low and high levels, the design is known as a 2^k experiment. Given a three factor setup where each factor takes two levels we can create the full factorial design using the expand.grid function:

expand.grid(Factor1 = c("Low", "High"), Factor2 = c("Low", "High"),
  Factor3 = c("Low", "High"))

which creates the following design:

  Factor1 Factor2 Factor3
1     Low     Low     Low
2    High     Low     Low
3     Low    High     Low
4    High    High     Low
5     Low     Low    High
6    High     Low    High
7     Low    High    High
8    High    High    High

We could also make use of the gen.factorial function from the AlgDesign package. In this function we use a vector to specify the number of levels for each of the variables, the number of variables and possibly the names of the variables.

To create the full factorial design for an experiment with three factors with 3, 2, and 3 levels respectively the following code would be used:

gen.factorial(c(3,2,3), 3, center=TRUE,
  varNames=c("F1", "F2", "F3"))

The center option makes the level settings symmetric which is a common way of representing the design. The full design is:

   F1 F2 F3
1  -1 -1 -1
2   0 -1 -1
3   1 -1 -1
4  -1  1 -1
5   0  1 -1
6   1  1 -1
7  -1 -1  0
8   0 -1  0
9   1 -1  0
10 -1  1  0
11  0  1  0
12  1  1  0
13 -1 -1  1
14  0 -1  1
15  1 -1  1
16 -1  1  1
17  0  1  1
18  1  1  1

Leave a Reply