1. Home
2. AFCYCLIC procedure

# AFCYCLIC procedure

Generates block and treatment factors for cyclic designs (R.W. Payne).

### Option

`PRINT` = string token Whether to print the design (`design`); default `*` i.e. no printing

### Parameters

`INITIALBLOCKS` = variates or pointers 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

### Description

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.

The `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 `BLOCKS` and `UNITS` parameters respectively. The design can also be printed, by setting option `PRINT=design`.

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).

Option: `PRINT`.

Parameters: `INITIALBLOCKS`, `INCREMENT`, `LEVELS`, `SEED`, `TREATMENTS`, `BLOCKS`.

### Method

The procedure generates the design using the standard Genstat directives for calculation and manipulation.

### References

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.

Procedure: `AGCYCLIC`.

Commands for: Design of experiments, REML analysis of linear mixed models.

### Example

```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
```
Updated on March 11, 2019