1. Home
2. BLOCKSTRUCTURE directive

# BLOCKSTRUCTURE directive

Defines the blocking structure of the design and hence the strata and the error terms.

### Parameter

    formula Block model (defines the strata or error terms for subsequent `ANOVA` statements)

### Description

The `BLOCKSTRUCTURE` directive specifies the underlying (or blocking) structure of a design that is to be analysed by `ANOVA`. However, this can be omitted for unstructured designs with a single error term.

In many designs, the units are nested. The simplest is the randomized block design. Here the units are grouped into sets, known as blocks, the aim being that units in the same block should be more similar than those in different blocks. The allocation of the treatments is randomized independently within each block. The design thus has two sources of random variation: differences between blocks as a whole, and differences between the units within each block. For example if the units are plots of land and the blocks are groupings of nearby plots we would have two factors: `Blocks` to indicate the block to which each plot belonged, and `Plot` to identify the plots within each block. The block model would then be

`Blocks/Plots`

indicating that the plots are nested within blocks, and thus that there is no special similarity, for example, between the plot numbered 3 in block 1 and plot 3 of the other blocks. The formula is expanded by Genstat to become

`Blocks + Blocks.Plots`

giving terms for the differences between blocks as a whole, and the differences between the units within each block, as required.

In the simplest form of the randomized block design, there is a single treatment factor, each of whose levels occurs once in every block. More complicated arrangements are possible, but each treatment combination must still occur exactly the same number of times in every block. This means that any differences found between the blocks cannot be caused by differences between treatments. Thus the treatment terms are all estimated between the plots within the blocks. If the blocks have been chosen successfully, the variation within the blocks should be less than that between blocks, and so the treatment estimates will be less variable than if a completely randomized design had been used. The analysis of variance will be split into two components called strata. The `Blocks` stratum will contain the sums of squares between blocks; this all arises from the variability between the blocks. The `Blocks.Plots` stratum will contain the sum of squares for the plots within the blocks; this is partitioned into the sums of squares due to each of the treatment terms, and a residual against which these can be assessed.

Thus, you can deduce the block model from the structure of the units, which should correspond to the way in which the randomization has been done. Genstat expands the block model to form the list of block (or error) terms, each of which defines a stratum corresponding to one of the sources of variability in the design. Alternatively, if you prefer to deduce the error terms by some other means, as for example if you follow the philosophy of fixed and random effects, you can specify the block model to be the sum of these terms.

In the analysis, Genstat initially partitions the sums of squares according to the block model alone. This gives the total sum of squares for each of the strata. Then it partitions each stratum sum of squares into sums of squares for those treatment terms estimated in that stratum, and a residual which provides an estimate of variability against which these treatment sums of squares should be compared.

In the randomized block design, the treatments are estimated only in the final (bottom) stratum. You would thus get the same sums of squares if you omitted the `BLOCKSTRUCTURE` statement and put Blocks at the start of the treatment model. However the use of `BLOCKSTRUCTURE` better reflects the structure of the design, as it correctly identifies Blocks as an error term. It also allows for the possibility of treatments being estimated between blocks, as in a balanced incomplete-blocks design.

The simplest design in which the treatments are not all estimated in one stratum is the split-plot design. This again has a nested structure and was devised originally for agricultural experiments where some of the factors can be applied to smaller plots of land than others. However, it also occurs in industrial experiments, in medical experiments and even in the study of cake mixtures. An example is shown in Section 6 of the Genstat for Windows Introduction. Here there are two treatment factors: three different varieties of oats, and four levels of nitrogen. Because of limitations on the machines for sowing seed, different varieties cannot conveniently be applied to plots as small as those that can be used for the different rates of fertilizer. So the design was set up in two stages. First of all, the blocks were each divided into three plots of the size required for the varieties, and the three varieties were randomly allocated to the plots within each block (exactly as in the randomized blocks design). Then each of these plots, or whole-plots as they are usually known, was split into four sub-plots (one for each rate of nitrogen), and the allocation of nitrogen was randomized independently within each whole-plot. The design has sub-plots nested within whole-plots, which are themselves nested within the blocks: that is,

`BLOCKSTRUCTURE Blocks / Wplots / Subplots`

This expands to

`Blocks + Blocks.Wplots + Blocks.Wplots.Subplots`

giving strata for variation between blocks, between whole-plots within the blocks, and for sub-plots within the whole-plots (within blocks). Just as in the randomized block design, the blocks all contain the same sets of treatments, and so no treatments are estimated in the `Blocks` stratum. But varieties, which were applied to whole-plots, are estimated in the `Blocks.Wplots` stratum; in conventional terminology this is called the stratum for whole-plots within blocks. The variance ratio for varieties is calculated by dividing the `Variety` mean square by the `Blocks.Wplots` residual mean square. It is easy to see that this is the correct thing to do. When we look to see whether the varieties differ we are really trying to answer the question: “Do the yields from the three sets of whole-plots, on the first of which the variety Victory was grown, on the second Golden rain and on the third Marvellous, differ by more than the amount that we would expect for any three randomly chosen sets of whole-plots?”. Technically, variety is said to be confounded with whole plots. The terms for `Nitrogen`, which was applied to sub-plots, and for the `Variety.Nitrogen` interaction are both estimated in the stratum for sub-plots within whole-plots (`Blocks.Wplots.Subplots`).

Because Genstat knows the structure of the design it is thus able to present appropriate variance ratios for the treatment terms. It is also able, for example, to produce correct standard errors and LSDs for tables of means.

There are some designs where the units have a crossed instead of a nested structure. A simple example is the Latin square. This was devised for agricultural experiments to cater for situations where there are fertility trends both along and across the field, but it can be used whenever there are two independent ways of grouping the units: for example time of testing and batch of material, or the litter of the rat and its order by weight within the litter. In field experiments, the plots are arranged in a square, with blocking factors called `Rows` and `Columns`. These each have the same number of levels as there are treatments. Values of the single treatment factor are arranged so that each level occurs once in each row and once in each column. The block structure has rows crossed with columns: that is,

`BLOCKSTRUCTURE Rows*Columns`

which expands to

`Rows + Columns + Rows.Columns`

The treatments are estimated only in the `Rows.Columns` stratum. Removing variation between rows and between columns should make these estimates less variable.

More complicated designs may involve both crossing and nesting. For example nested Latin squares have the structure

`BLOCKSTRUCTURE Squares / (Rows * Columns)`

which gives strata for squares, rows within squares, columns within squares and rows.columns within squares:

`Squares +Squares.Rows +Squares.Columns +Squares.Rows.Columns`

Alternatively, a Latin square with split plots for which the structure is defined by

`BLOCKSTRUCTURE (Rows * Colums) / Subplots`

giving the strata of an ordinary Latin square plus an additional stratum for subplots within rows and columns:

`Rows + Colums + Rows.Colums + Rows.Colums.Subplots`

If the factors in the block formula do not provide a unique index for every unit of the experiment, the terms in the block model will not account for all the variation. Genstat must then define a final stratum to contain the variation between the sets of units whose levels are the same for each block factor. At the end of the block model, Genstat therefore sets up an extra term containing all the block factors, together with an extra “factor”, denoted `*units*`, which numbers the units within each set. So, for the randomized block design, you could put just

`BLOCKSTRUCTURE Blocks`

which would then become

`BLOCKSTRUCTURE Blocks + Blocks.*units*`

Likewise, for the split-plot design,

`BLOCKSTRUCTURE Blocks/Wplots`

would become

`BLOCKSTRUCTURE Blocks/Wplots + Blocks.Wplots.*units*`

Consequently, if you define no block structure at all, Genstat assumes

`BLOCKSTRUCTURE *units*`

giving a single source of variation representing random differences between the units (this defines a completely randomized design). However, you may prefer to define a more meaningful labelling of the units, for example

`BLOCKSTRUCTURE Unitcode`

The factor `Unitcode` would be very easy to set up. To produce a factor equivalent to `*units*` in more complicated situations, you can use procedure `AFUNITS`. For example

`AFUNITS [BLOCKSTRUCTURE=Blocks/Wplots] Splot`

to generate a factor `Splots` to index the units within `Blocks` and `Wplots`.

Options: none.

Parameter: unnamed.

Directives: `ANOVA`, `COVARIATE`, `TREATMENTSTRUCTURE`, `ADISPLAY`, `AKEEP`.

Procedures: `AFCOVARIATES`, `ASTATUS`, `AUNBALANCED`.

Commands for: Analysis of variance.

### Example

```" Example ANOV-4: randomized block design (one treatment factor)

This design (from Snedecor,G.W., Statistical Methods, page 209) is a
field experiment with 5 blocks to study 4 strains of wheat (A,B,C,D)."
UNITS [NVALUES=20]
FACTOR [LEVELS=5; VALUES=(1...5)4] Blocks
FACTOR [LEVELS=4; LABELS=!t(A,B,C,D)] Strains
VARIATE Yield
D 29.3   B 33.0   D 29.8   B 36.8   D 28.8
B 33.3   A 34.0   A 34.3   A 35.0   C 35.8
C 30.8   C 34.3   B 36.3   D 28.0   B 34.5
A 32.3   D 26.0   C 35.3   C 32.3   A 36.5 :

" The simple way of analysing the design is to have just a treatment
formula with terms for first blocks and then the treatments."
TREATMENTSTRUCTURE Blocks + Strains
ANOVA [PRINT=aov] Yield

" This method of including the block factor in the treatment model works
well for straightforward designs like the randomized-block design (and
if this is as complicated as your designs are likely to become, you can
omit the rest of this example).
However, it is not satisfactory in more complicated situations (like the
balanced-incomplete-block or split-plot designs). Moreover, the analysis
that is obtained does not reflect the real structure of the design - for
example that Blocks is a random term and not a fixed term like the
treatment main effects and interaction. Consequently, the BLOCKSTRUCTURE
directive allows you to define the underlying structure of the design
- and thus the random (or error) terms for the analysis."

" Define a factor, Plots, to number the plots within each block."
FACTOR [LEVELS=4; VALUES=5(1...4)] Plots
BLOCKSTRUCTURE Blocks / Plots
" The randomized-block design has an underlying structure of units (here
the factor Plots) nested within blocks. The formula Blocks / Plots
expands to give two model terms
Blocks  +  Blocks.Plots
each of these defines a stratum in the analysis-of-variance table.
The Blocks stratum contains the variation between blocks, and the
Blocks.Plots stratum contains the variation between the plots within
each block."

" The TREATMENTSTRUCTURE directive now defines just the treatments."
TREATMENTSTRUCTURE Strains

" Now the between-block sum of squares is put into the Blocks stratum,
and the treatments are estimated in the Blocks.Plots (plot-within-block
stratum. For the randomized-block design it may seem that the change has
involved no more than a relabelling of the analysis-of-variance table,
as here all the treatment terms are estimated in the bottom stratum
(Blocks.Plots). The advantage of the use of the BLOCKSTRUCTURE directive
becomes clearer when there are treatments that are estimated in one of
the higher strata, as can be seen in later ANOV examples."
ANOVA Yield
```
Updated on June 20, 2019