blockpick {FrF2}R Documentation

Function to show potential block assignments

Description

Functions to investigate potential assignments of blocks and show alias information of resulting designs, meant for expert users

Usage

blockpick(k, gen, k.block, design = NULL, show = 10, 
                       alias.block.2fis = FALSE, select.catlg = catlg)
blockpick.big(k, gen, k.block, design = NULL, show = 10, 
                       alias.block.2fis = FALSE, select.catlg = catlg)

Arguments

k the number of base factors (designs have 2^k runs)
gen vector of generating columns from Yates matrix; for a full factorial, choose gen = 0 or gen=numeric(0) for no generating columns.
For function blockpick, gen refers to the generators of the base design only, and block columns are automatically added by blockpick.
For function blockpick.big, gen refers to the generators for treatment factors and block generators. In fact, blockpick.big will always use the first k.block (base) factors for block generation. Hence, for example for generating a design in 64 runs and 7 factors with 32 blocks, gen must have 6 entries in order to accomodate the 7 treatment factors together with the 5 block generators.
k.block number of base factors needed for constructing blocks; there will be 2^k.block blocks in the design
design design name (character string) of a specific design from the catalogue given in select.catlg
show numeric integer indicating how many results are to be shown; the search for possible allocations stops, once show variants have been found. Note that the best designs may not be found early in the process, especially if a large number of eligible columns is available and many blocks are needed (e.g. full factorial in 64 runs with 16 blocks). In such cases, increasing show may lead to finding a better design (but may also increase calculation time from long to unbearable).
alias.block.2fis logical, indicates whether 2fis may be aliased with blocks
select.catlg design catalogue of class catlg

Details

Function blockpick is used per default by function FrF2 for problems with choose(nruns-1-nfactors,k.block) < 100000, otherwise blockpick.big is used. blockpick is preferrable for smaller problems, because it will find a design, if it exists. However, it may take a long time and/or much storage space in problems with large numbers of runs and blocks.

Both functions investigate the potential assignment of blocks such that main effects of treatment factors are not aliased with block main effects. It is left to the user whether or not 2fis amoong treatment effects may be aliased with block main effects (option alias.block.2fis).

Following Sun, Wu and Chen (1997), there is no single best block assignment. blockpick uses their catalogue for full factorials (implemented up to 256 runs). For fractional factorials, it develops designs according to a principle similar to that underlying the Sun Wu Chen catalogue that works also in uncatalogued situations.

Function blockpick.big uses a strategy similar to splitpick and leftadjust and often finds a solution quickly where blockpick does not work with the given ressources. However, it is not guaranteed to find existing solutions or a best solution.

Value

The function blockpick outputs a list of entries with information on at most show suitable assignments. It ends with an error, if no suitable solution can be found.

gen generator column numbers of the base design (w.r.t. the Yates matrix)
basics named vector with number of runs (nruns), number of blocks (nblocks), number of treatment factors (ntreat) and resolution of base design (res.base); the vector is numeric or character, depending on whether resolution is known exactly or as “5+” only
blockcols matrix with at most show rows; each row contains the k.block column numbers (w.r.t. the Yates matrix) of the block generators for the current assignment (the 2^k.block-1 columns for block main effects can be obtained from these).
alias.2fis.block list of character vectors, which contain the 2fis aliased with block main effects for the respective rows of blockcols
nblock.2fis vector with number of 2fis aliased with block main effects for the respective rows of blockcols
nclear.2fis vector with number of 2fis clear (of aliasing with block main effects and treatment main effects or 2fis) for the respective rows of blockcols
clear.2fis list of character vectors, which contain the 2fis that are counted in nclear.2fis for the respective rows of blockcols

Author(s)

Ulrike Groemping

References

Chen, J., Sun, D.X. and Wu, C.F.J. (1993) A catalogue of 2-level and 3-level orthogonal arrays. International Statistical Review 61, 131-145.

Sun, D.X., Wu, C.F.J. and Chen, Y.Y. (1997). Optimal blocking schemes for 2^p and 2^(n-p) designs. Technometrics 39, 298-307.

See Also

See Also FrF2

Examples

## look at possibilities for running a 32 run full factorial in 8 blocks
## running this without alias.block.2fis=TRUE throws an error: not possible
## Not run: blockpick(5,0,3)
## the 10th design with block generators 3,12,21 has the most clear 2fis
blockpick(5,0,3,alias.block.2fis=TRUE)
## function FrF2 can be used to manually accomodate this design
des32.5fac.8blocks.MaxC2 <- FrF2(32,5,blocks=c(3,12,21))
design.info(des32.5fac.8blocks.MaxC2)

## look at possibilities for blocking design 7-3.1 from Chen, Sun, Wu catalogue
blockpick(4,design="7-3.1",k.block=2,alias.block.2fis=TRUE)

## big design
## running this throws an error on many machines because of too little memory
## Not run: blockpick(6,design="7-1.2",k.block=5,alias.block.2fis=TRUE)
## for obtaining a design for this scenario with blockpick.big, 
## the number of factors must be increased to 7+k.block=12
## designs 12-6.1 and 12-6.2 dont do it, 12-6.3 does
bpb <- blockpick.big(6,design="12-6.3",k.block=5,alias.block.2fis=TRUE)
bpb
## based on the result of blockpick.big, a blocked design can be obtained as follows:
des64.7fac.32blocks <- FrF2(64,gen=bpb$gen[1,], blocks = as.list(1:5), 
   alias.block.2fis=TRUE)
str(des64.7fac.32blocks)
## if the seven factors are to be named A,...,G:
des64.7fac.32blocks <- FrF2(64,gen=bpb$gen[1,], blocks = as.list(1:5), 
   alias.block.2fis=TRUE, factor.names=c(paste("b",1:5,sep=""),Letters[1:7]))
str(des64.7fac.32blocks)


[Package FrF2 version 0.93 Index]