1. Home
  2. AGNEIGHBOUR procedure


Generates neighbour-balanced designs (R.W. Payne).


PRINT = string token Controls printed output (catalogue, design); if unset in an interactive run AGNEIGHBOUR will ask whether the design is to be printed, in a batch run the default is not to print anything
METHOD = string token Type of design, n-1 blocks of n plots, or n blocks of n-1 plots (N_1BLOCKS, NBLOCKS); if unset in an interactive run AGNEIGHBOUR will ask about the type of design, in a batch the default is assumed to be n blocks of n-1 plots


LEVELS = scalars Number of treatments
SEED = scalars Seed for randomization; in batch there is a default of 12345
TREATMENTS = factors Identifier for the treatment factor
BLOCKS = factors Identifier for the factor to index the blocks within replicates
UNITS = factors Identifier for the factor to index the units within each block, or the periods of a cyclic change-over design
LEFTNEIGHBOUR = factors To save the treatment on the left neighbouring unit
RIGHTNEIGHBOUR = factors To save the treatment on the right neighbouring unit
STATEMENT = texts Saves a command to recreate each design (useful if the design information has been specified in response to questions from AGNEIGHBOUR)


In experiment designs it is often necessary to allow for the possibility that a treatment may have an effect on neighbouring plots, as well as on its own plot. For example, in variety trials, tall varieties may shade their neighbours. Likewise, in experiments on insecticides and fungicides, there may be cross infection from plots receiving control or ineffective treatments to neighbouring plots. In both of these examples the neighbour effect may depend on direction (for example of prevailing wind or of sunlight), so it is usual to distinguish between left and right neighbours. To avoid bias when comparing the effects of treatments in these situations, it is important to ensure that no treatment is unduly disadvantaged by its neighbours. This is best done by using a neighbour-balanced design. Here the allocation of treatments is such that every treatment occurs equally often with each other treatment as a right neighbour, and as a left neighbour.

The table below shows a design for five treatments in 5 blocks of size 4. Notice that in addition to the experimental plots, the design also needs a line of treated border plots on each side. These provide the neighbouring treatments for plots 1 and 4, but do not provide yields or other response variables. The border plots are not included in the generated factor values.

   Plot border 1 2 3 4 border


     1 5 | 2 3 1 5 | 2

     2 3 | 5 4 1 3 | 5

     3 4 | 2 5 3 4 | 2

     4 1 | 4 3 2 1 | 4

     5 4 | 5 1 2 4 | 5

Methods of constructing and randomizing neighbour-balanced designs for n treatments in either n blocks of n-1 plots or in n-1 blocks of n plots are described by Azais, Bailey & Monod (1993) together with generators for 3≤n≤16 (other than for n=4 or 6 with n-1 blocks of size n, for which no designs are available). AGNEIGHBOUR uses these methods and generators, together with some further generators for blocks of n-1 plots formed using the method of Azais (1987).

AGNEIGHBOUR is easiest to use interactively. It then asks questions to determine the necessary information to form the design, and indicates the numbers of treatments for which designs are available. The options and parameters allow you to anticipate questions, or to define all the necessary information if you want to use AGNEIGHBOUR in batch. If, however, you wish to recreate the same design later, the STATEMENT parameter allows you to save a Genstat text structure containing a command specifying the same information.

The first question, which can be anticipated by setting the METHOD option, determines the type of design: n blocks of n-1 plots (METHOD=nblocks) or in n-1 blocks of n plots (METHOD=n_1blocks). The default in batch is n_1block. The PRINT option controls printed output, with setting design to print a plan of the design, and catalogue to print a list of the available designs. By default, if you are running Genstat in batch, nothing is printed. If you do not set PRINT when running interactively, AGNEIGHBOUR will ask whether or not you wish to print the design, after it has been generated.

The number of treatments can be defined using the LEVELS parameter. This can be set to zero to avoid constructing a design, as may be required if you merely wish to print the catalogue. The SEED parameter allows you to specify a seed to be used to randomize the design. If you do not set SEED when running interactively AGNEIGHBOUR will ask for a seed. In batch there is a default of 12345. Setting a negative seed suppresses any randomization. Parameters TREATMENTS, BLOCKS and UNITS, allow you to specify identifiers to save the treatment, the block and unit-within-block factors. If these are not specified in a batch run, AGNEIGHBOUR will use identifiers that are local within the procedure and thus lost at the end of the procedure. If you are running interactively, AGNEIGHBOUR will ask you to provide identifiers and these will remain available after AGNEIGHBOUR has finished running. There are also parameters LEFTNEIGHBOUR and RIGHTNEIGHBOUR to allow you to save the treatments on the left and right neighbouring plots.

Some of the designs are such that each ordered pair of treatments occurs the same number of times as the left and right neighbours of some other treatment, the design is then said to be neighbour-balanced at distance 2. These designs have the further advantage that they are balanced if analysed with ANOVA with






The generation methods are described by Azais, Bailey & Monod (1993). The QUESTION procedure is used to obtain the necessary details of the design and this is then generated by the standard Genstat manipulation directives.


Azais, J.M-. (1987). Design of experiments for studying intergenotypic competition. Journal of the Royal Statistical Society Series B, 49, 334-345.

Azais, J.M-., Bailey, R.A. & Monod, H. (1993). A catalogue of efficient neighbour designs with border plots. Biometrics, 49, 1252-1261.

See also


Commands for: Design of experiments.


            !t('Design for 7 treatments in blocks of size 7.');\ 
AGNEIGHBOUR [PRINT=catalogue,design; METHOD=n_1block] LEVELS=7;\
            SEED=2041996; TREATMENTS=treat; BLOCKS=block; UNITS=plot;\
" Check the design using ANOVA (this one is balanced, but some are not) "
TREATMENTSTRUCTURE treat + left + right
Updated on June 20, 2019

Was this article helpful?