Rensselaer Polytechnic Institute

Date: October 19, 2016

Version 1.0

Problem statement

One application of incomplete block designs is to marketing studies in which \(v\) versions of a commodity are to be compared and each shop is to hold \(k<v\) versions. The design ensures that each version is seen in comparison with each pair of other possibilities the same number of times. Give such a design for \(v=6\), \(k=4\) and suggest how the responses might be analyzed.

Determining an appropriate response variable

For this marketing study, we can use the response variable “units sold” to compare the popularity of a given version of a commodity compared to alternative versions. Because some shops will push more inventory than others (e.g. due to good location), it makes sense to block by shop.

Selecting a design meeting the requirements

We are given v = 6 versions of a commodity, where each shop holds k = 4 versions at a time. In a balanced incomplete block design (BIBD), each treatment (v) shows up r times in the design, and the design contains b blocks of size k, so the total number of treatments is: \[N = vr = bk\] In our case, N = 6r = 4b, so: \[b = 3r/2\]

Furthermore, “each version must be seen in comparison with each pair of possibilities the same number of times.” This parameter for the number of times each version shows up with each pair of other possibilities may be called \(\lambda\). Similar to the derivation of \(\lambda\) for the requirement that each pair of treatments occurs in the same block a fixed number of times (Montgomery p.169):

The parameter \(\lambda\) must be a whole number, therefore r must be a multiple of 10. In the simplest case of r = 10, a BIBD exists that meets the requirement for the number of blocks (b = 3r/2 = 30/2 = 15 blocks). This confirms that the smallest BIBD for v = 6 treatments in blocks of size k = 4 is the unreduced version (Oehlert Appendix C.2, p. 610). The unreduced BIBD represents all combinations of 4 treatments selected from a population of 6 treatments without replacement (b = 6C4 = 15 blocks), with N = kb = 60 treatments.

Generating the experimental design using R

An R script was developed to generate an unreduced BIBD for a given number of treatments (v) and block size (k). First, the values for treatments and block size were defined:

# define number of versions (v) and number of units per block (k) (NOTE: k must be less than v)
v <- 6
k <- 4

Using the nifty combn() function, an array with all possible combinations for an unreduced BIBD was generated. Capital letters were assigned as treatment labels using the LETTERS() function. Here, we have represented blocks as columns.

# generate and show all possible combinations of blocks
print(blocks <- combn(LETTERS[1:v], k))
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## [1,] "A"  "A"  "A"  "A"  "A"  "A"  "A"  "A"  "A"  "A"   "B"   "B"   "B"  
## [2,] "B"  "B"  "B"  "B"  "B"  "B"  "C"  "C"  "C"  "D"   "C"   "C"   "C"  
## [3,] "C"  "C"  "C"  "D"  "D"  "E"  "D"  "D"  "E"  "E"   "D"   "D"   "E"  
## [4,] "D"  "E"  "F"  "E"  "F"  "F"  "E"  "F"  "F"  "F"   "E"   "F"   "F"  
##      [,14] [,15]
## [1,] "B"   "C"  
## [2,] "D"   "D"  
## [3,] "E"   "E"  
## [4,] "F"   "F"

The above output shows all combinations, but has not yet been randomized. The randomization of the BIBD occurs in three steps (Oehlert p.360):

  1. Subgroups are randomly assigned to blocks (columns 1-15)
  2. Treatment position is randomly assigned within each block (row 1-4)
  3. Treatments are randomly assigned to treatment labels (letters A-F)
# randomize the columns (blocks) to which each sub-group is assigned
blocks <- blocks[,sample(ncol(blocks))]

# in each column (block), shuffle by row so that treatments are assigned to random positions in a given block
for (i in 1:ncol(blocks)) {
  blocks[,i] <- blocks[sample(nrow(blocks)),i]
}

The third step of randomization is not implemented in the code (because we are not given treatment names to attach to the labels), but this step must be performed before conducting the actual experiment.

A randomized unreduced BIBD for the given parameters (v = 6, k = 4) is given below:

# show the randomized block design
blocks
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## [1,] "A"  "F"  "F"  "B"  "D"  "D"  "C"  "A"  "B"  "F"   "F"   "F"   "D"  
## [2,] "C"  "D"  "C"  "A"  "E"  "B"  "A"  "D"  "D"  "A"   "E"   "D"   "E"  
## [3,] "E"  "C"  "E"  "E"  "F"  "F"  "E"  "C"  "E"  "B"   "C"   "A"   "C"  
## [4,] "F"  "A"  "D"  "F"  "A"  "C"  "B"  "E"  "F"  "C"   "B"   "B"   "B"  
##      [,14] [,15]
## [1,] "A"   "B"  
## [2,] "D"   "A"  
## [3,] "E"   "D"  
## [4,] "B"   "C"

Statistical analysis of the experiment

After running the experiment and recording the number of units sold of each version in each shop, we can use the statistical model for the BIBD (Montgomery p.169): \[y_{ij} = \mu + \tau_{ij} + \beta_i + \epsilon_{ij}\]

Where the variability is partitioned into: \[SS_T = SS_{Treatments(adjusted)} + SS_{Blocks} + SS_E\]

The F-statistic becomes: \[F_0 = \frac{MS_{Treatments(adjusted)}}{MS_E}\]

With degrees of freedom for treatment and errors as (v - 1) and (N - v - b + 1) respectively, the p-value of \(F_0\) can be computed from the appropriate F-distribution to determine whether there is sufficient statistical evidence against the null hypothesis. By blocking based on shop, we have reduced the noise in the error variance that would have otherwise occurred without blocking due to the differences in shops, ideally leading us to a more robust conclusion.

Alternative to the unreduced BIBD

In some cases, 60 treatments in an unreduced BIBD might be too expensive to conduct. An alternative is to use an efficient cyclic design where m is an integer and there are b = mv blocks and each treatment appears r = mk times in the design. In the smallest cyclic design (m = 1) there are b = 1*6 blocks and each treatment is used r = 1*4 times, for a total of N = kb = 24 treatments. Applying the table for generating the most efficient cyclic design for k = 4, r = 4, v = 6 (Oehlert Appendix C.3 p. 615) gives the following pre-randomized design:

\[ \begin{pmatrix} A & B & C & D & E & F \\ B & C & D & E & F & A \\ D & E & F & A & B & C \\ C & D & E & F & A & B \end{pmatrix}\]

While this method requires far fewer treatments, it violates the stated requirement that “each version is seen in comparison with each pair of other possibilities the same number of times.” For example, treatment A appears in the same block with the pair C,D only once (Col I), while treatment B appears in the same block with the pair C,D twice (Cols I & II).

References

Montgomery, Douglas C. Design and analysis of experiments. John Wiley & Sons, 2008.
Oehlert, Gary W. “A first course in design and analysis of experiments.” 2010.

Appendix

Annotated R code:

# Focus On #10: Incomplete Block Designs
# M. Deagen
# 10/19/2016

# the following code generate the *unreduced* balanced incomplete block design (BIBD) for a given number of treatment versions (v) and block size (k)

# define number of versions (v) and number of units per block (k) (NOTE: k must be less than v)
v <- 6
k <- 4

# generate and show all possible combinations of blocks
print(blocks <- combn(LETTERS[1:v], k))

# randomize the columns (blocks) to which each sub-group is assigned
blocks <- blocks[,sample(ncol(blocks))]

# in each column (block), shuffle by row so that treatments are assigned to random positions in a given block
for (i in 1:ncol(blocks)) {
  blocks[,i] <- blocks[sample(nrow(blocks)),i]
}

# show the randomized block design
blocks