Generates block and treatment factors for cyclic designs (R.W. Payne).
|Whether to print the design (
||Defines one (variate) or more (pointer to variates) initial blocks for a treatment factor|
||Defines the size of the successive increment (scalar) or increments (pointer to scalars) for each initial block|
||Defines the levels of each treatment factor; this need not be specified if the factor has already been declared|
||Seed to be used to randomize each design, if required|
||Specifies treatment factors|
||Specifies block factors|
||Specifies factors to index the units within each block|
The cyclic method is a powerful way of constructing incomplete block designs. In its simplest form, it starts with an initial block, containing some subset of the treatments. This subset is then represented by the ordinal number in the range 0…m-1 where m is the number of treatment levels. The second and subsequent blocks are then generated by successive addition modulo m of one to the numbers in the subset. Thus, for seven treatments (0…6) and an initial block (0,1,4), the subsequent blocks would contain treatments (1,2,5), (2,3,6), (3,4,0), (4,5,1), (5,6,2) and (6,0,3). As can be seen, if m is a prime number, m blocks are generated with each initial block. However, if m can be expressed as the product of other integers, shorter cycles can occur. For example, for m=8 and initial block (0,1,4,5), four blocks are generated altogether, the others being (1,2,5,6), (2,3,6,7) and (3,4,7,0). The procedure allows for all of this. It is also possible to have more than one initial block, and the increment need not be one.
INITIALBLOCKS parameter specifies the initial blocks. If the design is to be generated from a single initial block,
INITIALBLOCKS should be set to a variate containing the levels corresponding to the treatments concerned; if there are several, the appropriate variates should be placed into a pointer. Similarly the
INCREMENT parameter, which specifies the increment to be used, should be set to a scalar if the same increment is to be used for all the initial blocks, otherwise to a pointer of scalars. The levels of the treatment factor are specified by the
LEVELS parameter and the
SEED parameter allows the design to be randomized. As is customary in Genstat, if
LEVELS is set to a scalar the levels are assumed to be represented by the integers 1 upwards, but
LEVELS can be set to a variate to specify other numbers.
LEVELS can be omitted if the
TREATMENTS parameter is used to supply a factor to store the treatments, provided the levels of that factor have already been defined outside the procedure. The factors for blocks and units within blocks can be saved similarly by the
UNITS parameters respectively. The design can also be printed, by setting option
The properties of the cyclic designs that can be generated for any particular number of treatments or size of block varies according to the choice of initial block and increment. Tables showing the most efficient combinations have been presented for example by John, Wolock & David (1972), John (1981, 1987) and Lamacraft & Hall (1982).
The procedure generates the design using the standard Genstat directives for calculation and manipulation.
John, J.A., Wolock, F.W. & David, H.A. (1972). Cyclic Designs. National Bureau of Standards, Applied Mathematics Series 62.
John, J.A. (1981). Efficient cyclic designs. Journal of the Royal Statistical Society Series B, 43, 76-80.
John, J.A. (1987). Cyclic Designs. Chapman & Hall, London.
Lamacraft, R.R. & Hall, W.B. (1982). Tables of incomplete cyclic block designs: r=k. Australian Journal of Statistics, 24, 350-360.
CAPTION 'AFCYCLIC examples',\ !t('1) 7 treatments (numbered 0...6) in 7 blocks of size 3,',\ 'initial block contains treatments 0, 1 and 4.'); STYLE=meta,plain FACTOR [LEVELS=!(0...6)] Treat AFCYCLIC !(0,1,4); TREATMENTS=Treat; BLOCKS=Block PRINT [ORIENTATION=across; RLWIDTH=6] Block,Treat; FIELD=3; DECIMALS=0 CAPTION !t('2) 8 treatments (now with the standard default numbers 1...8)',\ 'in blocks of size 4; there are 3 initial blocks (1,2,3,4),',\ '(1,2,5,6) and (1,3,5,7). Notice that the 2nd and 3rd ',\ 'initial blocks have cycles of only 2 and 4 respectively.') AFCYCLIC [PRINT=design] !p( !(1...4),!(1,2,5,6),!(1,3,5,7) ); LEVELS=8