Generating Balanced Incomplete Block Designs (BIBD)

July 16th, 2010

The Balanced Incomplete Block Design (BIBD) is a well studied experimental design that has various desirable features from a statistical perspective. The crossdes package in R provides a way to generate a block design for some given parameters and test wheter this design satisfies the BIBD conditions.

For a BIBD there are v treatments repeated r times in b blocks of k observations. There is a fifth parameter lambda that records the number of blocks where every pair of treatment occurs in the design.

We first load the crossdes package in our sessions:

require(crossdes)

The function find.BIB is used to generate a block design with specific number of treatments, blocks (rows of the design) and elements per block (columns of the design).

Consider an example with five treatments in four blocks of three elements. We can create a block design via:

> find.BIB(5, 4, 3)
     [,1] [,2] [,3]
[1,]    1    3    4
[2,]    2    4    5
[3,]    2    3    5
[4,]    1    2    5

This design is not a BIBD because the treatments are not all repeated the same number of times in the design and we can check this with the isGYD function. For this example:

> isGYD(find.BIB(5, 4, 3))
 
[1] The design is neither balanced w.r.t. rows nor w.r.t. columns.

This confirms what we can see from the design.

Let us instead consider a design with seven treatments and seven blocks of three elements to see whether we can create a BIBD with these parameters:

> my.design = find.BIB(7, 7, 3)
> my.design
     [,1] [,2] [,3]
[1,]    1    2    5
[2,]    3    4    5
[3,]    1    3    6
[4,]    2    3    7
[5,]    2    4    6
[6,]    1    4    7
[7,]    5    6    7
> isGYD(my.design)
 
[1] The design is a balanced incomplete block design w.r.t. rows.

In this situation we are able to generate a valid BIBD experiment with the specified parameters.

6 Responses to “Generating Balanced Incomplete Block Designs (BIBD)”

  1. DON GILES says:

    am looking for esign with parameters (81,3240,120,3,3) with no repeated blocks. can you assist me with this.

  2. don giles says:

    With help from Dr Rosa have found constructed this design.

  3. Ralph says:

    That’s good news!

  4. pavlos says:

    anyone knows the coding for comparing treatments with the orthogonal contrast method?

  5. don giles says:

    Have found that (81,81,16,16,3) that is unresolved implies the existence of(81,3240,120,3,3) which I have proved does exist which then implies the existence of(81,81,16,16,3). Am now attempting to reverse engineer (81,3240,120,3,3) to construct (81,81,16,16,3).
    Have also used same theorem to prove the existence of 10 symmetric designs along with the 10 unresolved residual designs.
    If anyone is interested in this topic feel free to contact me.
    gilesdbg@msn.com 519-718-2107

    don b giles MMatg

  6. Aaron says:

    I am new to this package and language but I wondered about how the command find.BIB works, is it an intelligent semi-random search? I think that with a very few small exceptions there is always a BIBD with k=5 and lambda=2 when the parameters are feasible. I used find.BIB(55,297,5) and got a design but not a BIBD
    > badbib=find.BIB(55,297,5)
    > isGYD(badbib)

    [1] The design is neither balanced w.r.t. rows nor w.r.t. columns.
    I think I constructed a solution with 11 disjoint blocks repeated twice each and 275 others repeated once each.

    So just wondering how to find out more.

Leave a Reply