blocksdesign
package provides functionality for the construction of nested or crossed block designs for factorial or
unstructured treatment sets with arbitrary levels of replication and arbitrary depth of nesting.
Complete randomized block designs give fully efficient 'within-blocks' treatment estimates and are usually the best choice for small experiments. For large experiments, however, the average variability within blocks may be too large for good precision of estimation and then it may be desirable to sub-divide large complete blocks into smaller incomplete blocks. Sometimes it is advantageous to use a double blocking system in which one set of blocks, usually called row blocks, is crossed with a second set of blocks, usually called column blocks. Double blocking systems can be valuable for controlling trends in two dimensions simultaneously.
The analysis of incomplete block designs is complex
and requires the combination of treatment information from different strata using appropriately weighted treatment estimates. Before the
advent of modern electronic computing, the computational complexity of the analysis meant that only a single level of nesting was feasible for
a practicable incomplete block designs. Nowadays, however, the availability of modern computers and modern software such as the lme4
mixed model
package (Bates et al 2014) have largely eliminated such restrictions and the analysis of nested block designs with any feasible depth of
nesting is now routine.
The blocksdesign
package provides for the construction of general block designs with simple or crossed blocks that can be nested repeatedly
to any feasible depth of nesting. The advantage of block designs with more
than a single level of nesting is that random variability can be controlled by a range of block sizes that provide control of
positional effects or correlated plot effects over a range of different scales of variability. The design algorithm optimizes the nested blocks of each
stratum hierarchically with each successive set of nested blocks optimized within the blocks of the preceding stratum. Block sizes within
each stratum are as equal as possible and never differ by more than a single plot.
The main design function is blocks
which is used to generate the actual required design. The output from
blocks
includes a data frame of the block and treatment factors for each plot and a table showing the achieved D- and A-efficiency factors
for each blocks stratum together with A-efficiency upper bounds, where available. For unstructured treatmnet designs, a plan showing the allocation of
treatments to block factors in the bottom stratum of the design is also included in the output.
The subsidiary function upper_bounds
estimates A-efficiency upper bounds for regular block designs with equally replicated
treatments and equal block sizes.
Further discussion of designs with repeatedly nested strata can be found in the package vignette at: vignette("blocksdesign")