Forms D-optimal designs to estimate the parameters of a nonlinear or generalized linear model (W. van den Berg).
Options
PRINT = string token |
Controls printed output (results , monitoring ); default resu , moni |
---|---|
PLOT = string token |
Controls whether to plot the design (design ); default desi |
YARGUMENT = identifier |
Data structure that stores the results of the function when it is calculated by expressions supplied by the FUNCTION option; must be set |
XARGUMENT = identifier |
Data structure representing the x-variate in the expressions supplied by the FUNCTION option; must be set |
FUNCTION = expression structures |
Specifies the function whose parameters are to be estimated; must be set |
FNDERIVATIVES = expression structures |
Specifies expressions to calculate derivative of the function with respect to each parameter; must be set |
ITERATIVEWEIGHTS = identifier |
Data structure that stores the iterative weights in the expressions supplied by the FNITERATIVEWEIGHTS option |
FNITERATIVEWEIGHTS = expression structures |
Specifies expressions to calculate the iterative weights when estimating the parameters of a generalized linear model |
XSUPPORT = variate |
Supplies the support points for the initial design, and saves those of the final design; if no initial values are supplied, an initial design is formed at random |
XWEIGHTS = variate |
Supplies the weights for the support points for the initial design, and saves those of the final design; if no initial values are supplied, equal weights are used initially |
GRID = variate |
Specifies the grid points where the design will be evaluated |
A0 = scalar |
Initial update weight; default 0.1 |
SEED = scalar |
Seed for the random numbers used to select the initial design when not supplied by XSUPPORT and XWEIGHTS |
NCYCLE = scalar |
Number of iterations to make between at each value of A0 , before halving it for the next batch of iterations; default 100 |
MAXCYCLE = scalar |
Maximum number of iterations; default 2500 |
TOLERANCES = variate |
Variate with two values specifying the convergence criterion and the tolerance for zero weights; default !(1.E-6 , 1.E-5) |
Parameters
PARAMETER = scalars |
Parameters of the nonlinear or generalized linear model (with values giving an indication of their likely estimated values) |
---|---|
DERIVATIVE = identifiers |
Data structures that store the results of the calculation of the derivative for each parameter, in the expressions specified by the FNDERIVATIVES option |
Description
AFNONLINEAR
constructs a design for estimating the parameters of a nonlinear or generalized linear model involving a single continuous variable x. The aim is to find the best values of x (i.e. the best support points) at which to observe the model, and a weight for each one. The design should then contain replicate observations at each of the support points, with the numbers of replicates in the same proportions as their weights. Suppose, for example, we have support points 1, 2 and 4, with weights 0.25, 0.25 and 0.5. A suitable design might then consist of observations at x-values 1, 2, 4 and 4 (i.e. 4 should have twice the replication of either 1 or 2). The designs that are produced are known as continuous designs, as the weights are not constrained to give an exact integer partitioning of the available points for any specific design size N. Instead you need to round N multiplied by each weight to the nearest feasible integer.
The model is specified in one, or more, expression structures by the FUNCTION
option. The YARGUMENT
gives the identifier of the data structure that receives the result of the function in the expressions, and the XARGUMENT
gives the identifier of the data structure that provides the x-values. For example, we could define the negative exponential model
y = e(-b × x) + c
by
EXPRESSION Func; VALUE=!e( Y = EXP(-1*B*X) + C)
AFNONLINEAR [FUNCTION=Func; YARGUMENT=Y; XARGUMENT=X; ...
Notice that the data structures X and Y do not need to be declared. AFNONLINEAR
simply needs to know which they are within the expression, so that it can replace them by the sets of x– and y-values that it really needs (using the REFORMULATE
directive).
The parameters of the model (here B
and C
) must be specified by the PARAMETER
parameter. These must be scalars, with values that give an indication of their likely estimated values. AFNONLINEAR
also needs to be able to calculate the derivative of the function with respect to each parameter. You must specify expressions to do this using the FNDERIVATIVES
option, and indicate the data structures that will receive the results of the calculations using the DERIVATIVE
parameter. So, for the negative exponential above, we need
EXPRESSION Gfunc[1,2]; VALUE=!e( GradB = -1*X*EXP(-1*B*X) ),\
!e( GradC = 1 )
AFNONLINEAR [FUNCTION=Function; YARGUMENT=Y; XARGUMENT=X;\
FNDERIVATIVE=Gfunc[]; XSUPPORT=X; XWEIGHTS=W;\
GRID=Grid] PARAMETER=B,C; DERIVATIVE=GradB,GradC
The GRID
option defines the x-values at which the design is evaluated. These should cover the range of feasible x-values.
The XSUPPORT
option saves the support points of the design, in a variate. If the variate has values already defined on entry to AFNONLINEAR
, these are used to provide the support points for the initial design where AFNONLINEAR
begins its search. Otherwise AFNONLINEAR
chooses an initial design at random by selecting m points at random from the grid points, where m is twice the number of parameters in the model. The SEED
option specifies a seed for the random numbers that are used to make the selection. The default value of zero continues an existing sequence of random numbers if any have already been used in the current Genstat job, or obtains a random seed using system clock if none have been used already.
The XWEIGHTS
option saves the weights of the support points, in a variate, and can supply weights for an initial design. Otherwise AFNONLINEAR
starts with equal weights.
To form designs for generalized linear models, you also need to supply expressions to calculate the iterative weights at various x-values. The FNITERATIVEWEIGHTS
option supplies the expressions, and the ITERATIVEWEIGHTS
option indicate the data structure that will receive the results of the calculations.
By default AFNONLINEAR
produces a plot showing the function and prediction variance at the selected grid points, but you can suppress this by setting option PLOT=*
.
AFNONLINEAR
uses the algorithm of Federov (1972). This involves a sequence of iterations in which a new support point may be added, or the weight of an existing point may be increased. The A0
option specifies the weights to be given to a new point, or to be added to an existing point. (The weights of the other support points are then decreased, proportionally, so that the weights still add up to one.) The NCYCLE
option controls how many iterations are made with each value of AO
(default 100); so, at the end of each set of NCYCLE
iterations, AO
is divided by two in order for the weights to converge to a stable solution.
The TOLERANCES
option can be set to a variate of length two, to specify the convergence criterion and the tolerance for zero weights (defaults 10-6 and 10-5, respectively). The algorithm stops when the number of support points equals the number of parameters, and the prediction variance minus the number of parameters is less than the first TOLERANCES
value. Weights less than the second TOLERANCES
value are set to zero at each iteration (so that the corresponding points leave the design).
Options: PRINT
, PLOT
, YARGUMENT
, XARGUMENT
, FUNCTION
, FNDERIVATIVES
, ITERATIVEWEIGHTS
, FNITERATIVEWEIGHTS
, XSUPPORT
, XWEIGHTS
, GRID
, A0
, SEED
, NCYCLE
, MAXCYCLE
, TOLERANCES
.
Parameters: PARAMETER
, DERIVATIVE
.
Method
For a D-optimal design the number of support points is equal to the number of parameters, and the determinant of the information matrix is at its maximum. Instead of maximizing the information matrix, AFNONLINEAR
uses the General Equivalence Theorem. By minimizing the maximum prediction variance of the response a G-optimal design is obtained, with the maximum prediction variance of the response equal to the number of parameters and occurring at the support points. According to the General Equivalence Theorem the design will also be D-optimal.
Fedorov (1972) proposes starting with a value for A0
of e.g. 0.1, and dividing A0
by two after each iteration so that the determinant of the information matrix is lower than the determinant of the information matrix of the preceding iteration. AFNONLINEAR
allows you to set the initial value of A0
(option A0
default 0.1), and the number of iterations to make before dividing it by two (option NCYCLE
, default 100).
Sometimes the weight of a support point may be divided over two neighbouring points of the grid, and the algorithm may fail to converge. In that case you could replace the two support points by a new point with a weight equal to the total of their two weights, and located at their average. Alternatively, you could change the SEED
option to run AFNONLINEAR
again from a different starting design.
Reference
Fedorov, V.V. (1972). Theory of Optimal Experiments. Academic Press, New York & London.
See also
Directive: AFRESPONSESURFACE
.
Commands for: Design of experiments.
Example
CAPTION 'AFNONLINEAR example'; STYLE=meta VARIATE [VALUES=3,4] X VARIATE [VALUES=0.6,0.4] W VARIATE [VALUES=0,0.1... 5] Grid SCALAR B,C; VALUE=1,5 EXPRESSION Function; VALUE=!e( Y = EXP(-1*B*X) + C ) EXPRESSION Gfunction[1,2]; VALUE=!e( GradB = -1*X*EXP(-1*B*X) ),\ !e( GradC = 1 ) AFNONLINEAR [FUNCTION=Function; YARGUMENT=Y; XARGUMENT=X;\ FNDERIVATIVE=Gfunction[]; XSUPPORT=X; XWEIGHTS=W; GRID=Grid]\ PARAMETER=B,C; DERIVATIVE=GradB,GradC