1. Home


Generates space filling designs (B.M. Parker).


PRINT = string tokens Controls whether to print the design and its properties (design, properties, monitor); default * i.e. none
METHOD = string token Specifies the method to use (latinhypercube, random, quasirandom); default rand
AUGMENT = string token Indicates whether to augment an existing design (yes, no); default no
CENTRED = string token For the Latin hypercube method, determines whether the design should be centred (yes, no); default no
CRITERION = string token For the Latin hypercube method, determines which criterion should be used to assess space filling; (none, L2, maximin, entropy); default none
QRSEQUENCE = string token Specifies which sequence to use with the quasi-random method; (sobol, niederreiter, faure); default sobol
NUNITS = scalars Specifies the number of design points
NDIMENSIONS = scalars Specifies the number of dimensions of each of the design points
NTIMES = scalars Specifies the number of times to run the ESE algorithm; default 10
DISCREPANCY = scalars Saves the discrepancy of the design
SEED = scalars Seed to be used to randomize each design; default 0


X = pointer to variates A pointer to a set of variates, each variate representing a column of the design matrix


A space filling design is an experimental design for a number of runs, which each have a number of (usually) continuous factors. They are designed to ensure that the experiment is spread over the entire design space, so that large and potentially important regions are not ignored. They are used in computer experiments, or other areas where exploring the whole design space may be useful.

Various criteria are used to assess how well the space is filled, and different methods are used to try to achieve designs that optimize them. The number of design points (i.e. the number of runs) is specified by the NUNITS parameter. Each of these runs has dimensions (i.e. number of continuous factors) specified by NDIMENSIONS.

For simplicity, AGSPACEFILLINGDESIGN produces design points such that the range for each dimension is in the interval [0,1]. These can be scaled to any interval.

The METHOD option specifies how to form the design, with the following settings.

    random is the simplest method, and selects design points uniformly at random for each dimension.
    latinhypercube aims to produce designs with good projection properties for the design on each dimension. For a two-dimensional design, the design space is divided into a regular grid of size NUNITS × NUNITS. A design is a Latin square if (and only if) there is only one design point in each row and each column. A Latin hypercube generalises this to an arbitrary number of dimensions.
    quasirandom Quasi-Random sequences are deterministic (i.e. non-random) space-filling sequences, which aim to fill the multidimensional design space. For designed experiments the aim is to ensure that all areas of the design space are explored. However, unlike the random setting, more points can readily be added to the design, using the same sequence, with the property that the augmented design is also space-filling. Three different random sequences are available; these can be selected by the QRSEQUENCE option, with settings sobol, niederreiter or faure.

If the CENTRED option is set to yes, the points of the Latin hypercube design are centred within each area of the grid. If set to no (default), the design points are chosen uniformly at random from any point in the grid. (Note: a centred Latin hypercube could be used to generate designs with discrete factors.)

The AUGMENT option allows extra runs to be added to an existing design, according to the method selected. Currently, the added runs form a separate space filling design, which is returned with the original design.

For Latin hypercube designs, the CRITERION option allows you to request that a stochastic algorithm is run to try to improve the space filling properties of the design, while retaining the desired Latin hypercube properties. The available settings differ according to the way in which they measure the difference between the empirical cumulative distribution function of a design and the uniform cumulative distribution function.

    L2 uses Euclidean distance,
    maximin uses the maximum distance, and
    entropy uses the entropy function.

This process is effective, but will not always produce the same design (except when the same SEED is set), and the result will not always be the best possible design within the class of Latin hypercube designs. The NTIMES option may be used to specify how many loops of the Enhanced Stochastic Evolutionary (ESE) algorithm are carried out, with each loop looking for a potential improvement.

The SEED parameter allows you to specify a seed to randomize the design. The default is 0, to continue an existing sequence of random numbers.

The PRINT option controls printed output, with the following settings:

    design prints the design,
    properties prints the space filling discrepancy criterion for the design, and
    monitor when a criterion has been selected, this prints the best discrepancy criterion found after each ESE loop.

By default, nothing is printed.

The discrepancy can be saved, in a scalar, using the DISCREPANCY option.


Parameter: X.


When the CRITERION option is set with a Latin hypercube design, AGSPACEFILLINGDESIGN uses the Enhanced Stochastic Evolutionary (ESE) algorithm described by Jin et al. (2005) in order to minimize the discrepancy of designs. This makes use of the AFDISCREPANCY procedure. The quasi-random sequences are formed using the NAG directive, with option NAME=G05YAF.


Jin, R., Wei C. & Agus S. (2005). An efficient algorithm for constructing optimal design of computer experiments. Journal of Statistical Planning and Inference, 134, 268-287.

See also

Directive: NAG.


Commands for: Design of experiments, Analysis of variance.


CAPTION              'AGSPACEFILLINGDESIGN examples',\
                     '1) Random design of size 12 in 4 dimensions.';\
                     SEED=184851] x
CAPTION              'Augment the design to 16 units'
                     AUGMENT=yes] x
CAPTION              !t('2) Low discrepancy Latin hypercube design,',\
                     'in 5 dimensions with 32 runs.')
                     CRITERION=l2; NDIMENSIONS=5; NUNITS=32; SEED=32898] X
Updated on June 20, 2019

Was this article helpful?