od_AQUA: Efficient exact design using a quadratic approximation

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/od_AQUA.R

Description

Computes an efficient exact design under general linear constraints via a quadratic approximation of the optimality criterion.

Usage

1
2
3
od_AQUA(Fx, b1=NULL, A1=NULL, b2=NULL, A2=NULL, b3=NULL, A3=NULL, w0=NULL,
      bin=FALSE, crit="D", h=NULL, M.anchor=NULL, ver.qa="+", conic=TRUE,
      t.max=120, echo=TRUE)

Arguments

Fx

the n times m (where m>=2, m<=n) matrix containing all candidate regressors (as rows), i.e., n is the number of design points, and m (where m>=2) is the number of parameters

b1,A1, b2,A2, b3,A3

the real vectors and matrices that define the constraints on permissible designs w as follows: A1 %*% w <= b1, A2 %*% w >= b2, A3 %*% w == b3. Each of the arguments can be NULL, but at least one of b1, b2, b3 must be non-NULL. If some bi is non-NULL and Ai is NULL, then Ai is set to be matrix(1, nrow =1, ncol = n).

w0

a non-negative vector of length n representing the design to be augmented (i.e., the function adds the constraint w >= w0 for permissible designs w). This argument can also be NULL; in that case, w0 is set to the vector of zeros.

bin

Should each design point be used at most once?

crit

The optimality criterion. Possible values are "D", "A", "I", "C".

h

a non-zero vector of length m corresponding to the coefficients of the linear parameter combination of interest. If crit is not "C" then h is ignored. If crit is "C" and h=NULL then h is assumed to be c(0,...,0,1).

M.anchor

the m times m information matrix of the optimal or nearly-optimal approximate design for the design problem (for the non-normalized version of the problem and including the design constraints). The argument M.anchor can also be NULL. In that case the procedure computes M.anchor using an appropriate approximate design procedure from the package.

ver.qa

version of the criterion; possible values are "+" and "-".

conic

Should the conic reformulation be used?

t.max

the time limit for the computation.

echo

Print the call of the function?

Details

At least one of b1, b2, b3 must be non-NULL. If bi is non-NULL and Ai is NULL for some i then Ai is set to be the vector of ones. If bi is NULL for some i then Ai is ignored.

Value

A list with the following components:

call

The call of the function.

w.best

The permissible design found, or NULL. The value NULL indicates a failed computation.

supp

The indices of the support of w.best.

w.supp

The weights of w.best on the support.

M.best

The information matrix of w.best or NULL if w.best is NULL.

Phi.best

The value of the criterion of optimality of the design w.best. If w.best has a singular information matrix or if the computation fails, the value of Phi.best is 0.

status

The status variable of the gurobi optimization procedure; see the gurobi solver documentation for details.

t.act

The actual time of the computation.

Note

The function does not support the classical c-optimality, but it includes its regularized version referred to as C-optimality. The computation is generally stable, but it may fail for instance if the model is numerically singular, there is no exact design satisfying the constraints, no permissible exact design was found within the time limit, the set of feasible exact designs is unbounded and so on; see the status variable for more details. Note, however, that status = "OPTIMAL" indicates that the auxiliary integer programming problem was completely solved, which for this procedure does not guarantee that the result is a globally optimal design.

Author(s)

Radoslav Harman, Lenka Filova

References

Harman R., Filova L. (2014): Computing efficient exact designs of experiments using integer quadratic programming, Computational Statistics & Data Analysis, Volume 71, pp. 1159-1167

Filova L., Harman R. (2018). Ascent with Quadratic Assistance for the Construction of Exact Experimental Designs. arXiv preprint arXiv:1801.09124. (Submitted to Computational Statistics)

See Also

od_KL, od_RC, od_MISOCP

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## Not run: 
# Compute an I-efficient non-replicated exact design of size 51
# for the "special cubic" model with 3 mixture components

# Each factor has 11 levels:
form.sc <- ~x1 + x2 + x3 + I(x1*x2) + I(x1*x3) + I(x2*x3) + I(x1*x2*x3) - 1
Fx <- Fx_simplex(form.sc, 11)
w <- od_AQUA(Fx, b3 = 51, crit = "I", bin = TRUE)$w.best
od_plot(Fx, w, Fx[, 1:3])

# Each factor has 101 levels (memory intensive without the conic trick)
Fx <- Fx_simplex(form.sc, 101)
w <- od_AQUA(Fx, b3 = 51, crit = "I", bin = TRUE, t.max = 10)$w.best
od_plot(Fx, w, Fx[, 1:3])

# Find an A-efficient exact design for the spring balance model
# with 5 items and 10 weighings
Fx <- Fx_cube(~x1 + x2 + x3 + x4 + x5 - 1, lower = rep(0, 5))
w <- od_AQUA(Fx, b3 = 10, crit = "A", t.max = 10)$w.best
od_print(Fx, w)


## End(Not run)

OptimalDesign documentation built on March 26, 2020, 9:35 p.m.