Learn R Programming

ICAOD (version 0.9.2)

multica_4pl: Imperialist Competitive Algorithm to find multiple-objective optimal designs for the 4-parameter logistic model

Description

The 4-parameter Hill model is \(Y_i = f(D_i, a, b, c, d) + \epsilon_i\) where \(\epsilon_i \sim N(0, \sigma^2)\) and $$f(D_i, a,b, c, d) = c + \frac{(d-c)(\frac{D_i}{a})^b}{1+(\frac{D_i}{a})^b}$$ is the mean response at dose \(D_i\), \(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. Let \(\bold{\theta} = (\theta_1, \theta_2, \theta_3, \theta_4)\). The Hill model may be re-parameterized as $$f(x, \bold{\theta}) = \frac{\theta_1}{1 + exp(\theta_2 x + \theta_3)} + \theta_4,$$ which is sometimes referred to as 4-parameter logistic model. This form is equivalent to the Hill model with \(\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_i = log(D_i) \in [-M, M]\) for some sufficiently large value of \(M\).

Usage

multica_4pl(lx, ux, param, iter, k, delta, lambda, control = list(),
  initial = NULL)

Arguments

lx

lower bound of the design space \(\chi\).

ux

upper bound of the design space \(\chi\).

param

a vector of parameters \(\bold{\theta} = (\theta_1, \theta_2, \theta_3, \theta_4)\).

iter

maximum number of iterations.

k

number of design (support) points. Must be larger than the number of \(4\) to avoid the singularity of the FIM.

delta

predetermined meaningful value of the minimum effective dose MED. When the dose-response relationship (slop \(\theta_2\)) is decreasing (increasing), the value of delta is negative (positive).

lambda

the relative importance of each of the 3 criteria, i.e. \(\lambda = (\lambda_1, \lambda_2, \lambda_3)\). Here \(0 < \lambda_i < 1\) and the sum of \(\lambda_1\), \(\lambda_2\) and \(\lambda_3\) must be one.

control

a list of contains the tuning parameters of ICA and the design problem. See "Details" of mica.

initial

a matrix of the initial designs that will be used as initial countries in ICA. Every row is a design and concatenation of x and w. Default is NULL. See "Details" of mica.

Value

an object of class "ICA". See "Value" in mica.

Details

This function is not suitable for finding the c-optimal designs for estimating 'MED' or 'ED50' 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 unstable and depends on the tolerance (probably because the matrix is exactly singular).

The tolerance for finding the general inverse of Fisher information matrix is set to .Machine$double.xmin.

References

Hyun, S. W., & 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.

Examples

Run this code
# NOT RUN {
## An example on how to create the design in Hyun and Wong (2015)
## An initial guess from Table 1:

Theta1 <- c(1.563, 1.790, 8.442, 0.137)

#########################################################
## Table 2 first row
# creating optimal design for estimating parameters: xi_D
res <- multica_4pl(lx = log(.001),
                   ux = log(1000),
                   param = Theta1,
                   k = 4,
                   lambda = c(1, 0, 0),
                   delta = -1,
                   iter = 150,
                   control = list(seed = 1366, plot_cost = TRUE))
# }
# NOT RUN {
#######################################################
## finding multiple objective optimal design: example 1, Table 3
res1 <- multica_4pl(lx = log(.001),
                   ux = log(1000),
                   param = Theta1,
                   k = 4, lambda = c(0.05, 0.05, .90),
                   delta = -1, iter = 400,
                   control = list(seed = 1366))

plot(res1)

#######################################################
## finding multiple objective optimal design: example 2, Table 3
res2 <- multica_4pl(lx = log(.001),
                   ux = log(1000),
                   param = c(16.8, -1, 4.248, 22),
                   k = 4, lambda = c(0, 0.1, .9),
                   delta = 5, iter = 200,
                   control = list(seed = 1366))
plot(res2)

##########################################################
## how to transfer from Hill model to 4-parameter logistic model
## parameters for 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
## Hill parameters are c(a, b, c, d)
res2 <- multica_4pl(lx = log(.001),
                   ux = log(1000),
                   param =  c(d - c, -b, b * log(a), c),
                   k = 4, lambda = c(0.05, 0.05, .90),
                   delta = -1, iter = 400,
                   control = list(seed = 1366))
exp(res2$evol[[length(res2$evol)]]$x) # dose level in mg
# }

Run the code above in your browser using DataLab