| multiple {ICAOD} | R Documentation |
Locally Multiple Objective Optimal Designs for the 4-Parameter Hill Model
Description
The 4-parameter Hill model is of the form
f(D) = c + \frac{(d-c)(\frac{D}{a})^b}{1+(\frac{D}{a})^b} + \epsilon,
where \epsilon \sim N(0, \sigma^2),
D is the dose level and the predictor,
a is the ED50,
d is the upper limit of response,
c is the lower limit of response and
b denotes the Hill constant that
control the flexibility in the slope of the response curve.
Sometimes, the Hill model is re-parameterized and written as
f(x) = \frac{\theta_1}{1 + exp(\theta_2 x + \theta_3)} + \theta_4,
where \theta_1 = d - c, \theta_2 = - b,
\theta_3 = b\log(a), \theta_4 = c, \theta_1 > 0,
\theta_2 \neq 0, and -\infty < ED50 < \infty,
where x = log(D) \in [-M, M]
for some sufficiently large value of M.
The new form is sometimes called 4-parameter logistic model.
The function multiple finds locally multiple-objective optimal designs for estimating the model parameters, the ED50, and the MED, simultaneously.
For more details, see Hyun and Wong (2015).
Usage
multiple(
minDose,
maxDose,
iter,
k,
inipars,
Hill_par = TRUE,
delta,
lambda,
fimfunc = NULL,
ICA.control = list(),
sens.control = list(),
initial = NULL,
tol = sqrt(.Machine$double.xmin),
x = NULL
)
Arguments
minDose |
Minimum dose |
maxDose |
Maximum dose |
iter |
Maximum number of iterations. |
k |
Number of design points. Must be at least equal to the number of model parameters to avoid singularity of the FIM. |
inipars |
A vector of initial estimates for the vector of parameters |
Hill_par |
Hill model parameterization? Defaults to |
delta |
Predetermined meaningful value of the minimum effective dose MED.
When |
lambda |
A vector of relative importance of each of the three criteria,
i.e. |
fimfunc |
A function. Returns the FIM as a |
ICA.control |
ICA control parameters. For details, see |
sens.control |
Control Parameters for Calculating the ELB. For details, see |
initial |
A matrix of the initial design points and weights that will be inserted into the initial solutions (countries) of the algorithm.
Every row is a design, i.e. a concatenation of |
tol |
Tolerance for finding the general inverse of the Fisher information matrix. Defaults to |
x |
A vector of candidate design (support) points.
When is not set to |
Details
When \lambda_1 > 0, then the number of support points k
must at least be four to avoid singularity of the Fisher information matrix.
One can adjust the tuning parameters in ICA.control to set a stopping rule
based on the general equivalence theorem. See 'Examples' below.
Value
an object of class minimax that is a list including three sub-lists:
argA list of design and algorithm parameters.
evolA list of length equal to the number of iterations that stores the information about the best design (design with least criterion value) of each iteration.
evol[[iter]]contains:iterIteration number. xDesign points. wDesign weights. min_costValue of the criterion for the best imperialist (design). mean_costMean of the criterion values of all the imperialists. sensAn object of class 'sensminimax'. See below.paramVector of parameters. empiresA list of all the empires of the last iteration.
algA list with following information:
nfevalNumber of function evaluations. It does not count the function evaluations from checking the general equivalence theorem. nlocalNumber of successful local searches. nrevolNumber of successful revolutions. nimproveNumber of successful movements toward the imperialists in the assimilation step. convergenceStopped by 'maxiter'or'equivalence'?methodA type of optimal designs used.
designDesign points and weights at the final iteration.
outA data frame of design points, weights, value of the criterion for the best imperialist (min_cost), and Mean of the criterion values of all the imperialistsat each iteration (mean_cost).
The list sens contains information about the design verification by the general equivalence theorem. See sensminimax for more details.
It is given every ICA.control$checkfreq iterations
and also the last iteration if ICA.control$checkfreq >= 0. Otherwise, NULL.
param is a vector of parameters that is the global minimum of
the minimax criterion or the global maximum of the standardized maximin criterion over the parameter space, given the current x, w.
Note
This function is NOT appropriate for finding c-optimal designs for estimating 'MED' or 'ED50' (single objective optimal designs)
and the results may not be stable.
The reason is that for the c-optimal criterion
the generalized inverse of the Fisher information matrix
is not stable and depends
on the tolerance value (tol).
References
Hyun, S. W., and Wong, W. K. (2015). Multiple-Objective Optimal Designs for Studying the Dose Response Function and Interesting Dose Levels. The international journal of biostatistics, 11(2), 253-271.
See Also
Examples
# All the examples are available in Hyun and Wong (2015)
#################################
# 4-parameter logistic model
# Example 1, Table 3
#################################
lam <- c(0.05, 0.05, .90)
# Initial estimates are derived from Table 1
# See how the stopping rules are set via 'stop_rul', checkfreq' and 'stoptol'
Theta1 <- c(1.563, 1.790, 8.442, 0.137)
res1 <- multiple(minDose = log(.001), maxDose = log(1000),
inipars = Theta1, k = 4, lambda = lam, delta = -1,
Hill_par = FALSE,
iter = 1,
ICA.control = list(rseed = 1366, ncount = 100,
stop_rule = "equivalence",
checkfreq = 100, stoptol = .95))
## Not run:
res1 <- update(res1, 1000)
# stops at iteration 101
## End(Not run)
#################################
# 4-parameter Hill model
#################################
## initial estimates for the parameters of Hill model:
a <- 0.008949 # ED50
b <- -1.79 # Hill constant
c <- 0.137 # lower limit
d <- 1.7 # upper limit
# D belongs to c(.001, 1000) ## dose in mg
## the vector of Hill parameters are now c(a, b, c, d)
## Not run:
res2 <- multiple(minDose = .001, maxDose = 1000,
inipars = c(a, b, c, d),
Hill_par = TRUE, k = 4, lambda = lam,
delta = -1, iter = 1000,
ICA.control = list(rseed = 1366, ncount = 100,
stop_rule = "equivalence",
checkfreq = 100, stoptol = .95))
# stops at iteration 100
## End(Not run)
# use x argument to provide fix number of dose levels.
# In this case, the optimization is only over weights
## Not run:
res3 <- multiple(minDose = log(.001), maxDose = log(1000),
inipars = Theta1, k = 4, lambda = lam, delta = -1,
iter = 300,
Hill_par = FALSE,
x = c(-6.90, -4.66, -3.93, 3.61),
ICA.control = list(rseed = 1366))
res3$evol[[300]]$w
# if the user provide the desugn points via x, there is no guarantee
# that the resulted design is optimal. It only provides the optimal weights given
# the x points of the design.
plot(res3)
## End(Not run)