Learn R Programming

LDOD (version 1.0)

eff: Calculation of D-efficiency with arbitrary precision

Description

Calculates the D-effficiency of design $\xi_1$ respect to design $\xi_2$ with arbitrary precision.

Usage

eff(ymean, yvar, param, points1, points2, weights1, weights2, prec = 53)

Arguments

ymean
a character string, formula of $E(y)$ with specific satndard: characters b1, b2, b3, ...symbolize model parameters and x1, x2, x3, ...symbolize explanatory variables. See 'Exa
yvar
a character string, formula of $Var(y)$ with specific standard as ymean. See 'Details' and 'Examples'.
param
a vector of values of parameters which must correspond to b1, b2, b3, ...in ymean. The number of parameters can not be more than $4$.
points1
a vector of $\xi_1$ points. See 'Details'.
points2
a vector of $\xi_2$ points. See 'Details'.
weights1
a vector of $\xi_1$ points weights. The sum of weights should be $1$; otherwise they will be normalized.
weights2
a vector of $\xi_2$ points weights. The sum of weights should be $1$; otherwise they will be normalized.
prec
(optional) a number, the maximal precision to be used for D-efficiency calculation, in bite. Must be at least $2$ (default $53$).

Value

  • D-efficiency as an 'mpfr' number.

Details

If response variables have the same constant variance, for example $\sigma^2$, then yvar must be $1$. Consider design $\xi$ with $n$ $m$-dimensional points. Then, the vector of $\xi$ points is $$(x_1, x_2, \ldots, x_i, \ldots, x_n),$$ where $x_i = (x_{i1}, x_{i2}, \ldots, x_{im})$. Hence the length of vector points is $mn$.

References

Masoudi, E., Sarmad, M. and Talebi, H. 2012, An Almost General Code in R to Find Optimal Design, In Proceedings of the 1st ISM International Statistical Conference 2012, 292-297.

Examples

Run this code
## Logistic dose-response model
ymean <- "(1/(exp(-b2*(x1-b1))+1))"
yvar <- "(1/(exp(-b2*(x1-b1))+1))*(1-(1/(exp(-b2*(x1-b1))+1)))"
eff (ymean, yvar,  param = c(.9, .8), points1 = c(-3, 1, 2), 
     points2 = c(-1.029256,  2.829256), weights1 = rep(.33, 3), weights2 = c(.5, .5),
     prec = 54)
## or
ldlogistic(a = .9 , b = .8, form = 2, lb = -5, ub = 5, user.points = c(-3, 1, 2),
           user.weights = c(.33, .33, .33))$user.eff


## Poisson model:
ymean <- yvar <-  "exp(b1 + b2 * x1)"
eff (ymean, yvar,  param = c(.9, .8), points1 = c(-3, 1, 2), points2 = c(2.5, 5.0),
     weights1 = rep(.33, 3), weights2 = c(.5, .5), prec = 54)

#####################################################################
## In the following, ymean and yvar for some famous models are given:

## Logistic model:
ymean <- "1/(exp(-b1 - b2 * x1) + 1)"
yvar <- "(1/(exp(-b1 - b2 * x1) + 1))*(1 - (1/(exp(-b1 - b2 * x1) + 1)))"

## Poisson dose response model:
ymean <- yvar <- "b1 * exp(-b2 * x1)"

## Inverse Quadratic model:
ymean <- "(b1 * x1)/(b2 + x1 + b3 * (x1)^2)"
yvar <- "1"
#
ymean <- "x1/(b1 + b2 * x1 + b3 * (x1)^2)"
yvar <- "1"

## Weibull model:
ymean <- "b1 - b2 * exp(-b3 * x1^b4)"
yvar <- "1"

## Richards model:
ymean <- "b1/(1 + b2 * exp(-b3 * x1))^b4"
yvar <- "1"

## Michaelis-Menten model:
ymean <- "(b1 * x1)/(1 + b2 * x1)"
yvar <- "1"
#
ymean <- "(b1 * x1)/(b2 + x1)"
yvar <- "1"
#
ymean <- "x1/(b1 + b2 * x1)"
yvar <- "1"

## log-linear model:
ymean <- "b1 + b2 * log(x1 + b3)"
yvar <- "1"

## Exponential model:
ymean <- "b1 + b2 * exp(x1/b3)"
yvar <- "1"

## Emax model:
ymean  <- "b1 + (b2 * x1)/(x1 + b3)"
yvar <- "1"

## Negative binomial model Y ~ NB(E(Y), theta) where E(Y) = b1 * exp(-b2 * x1):
theta <- 5
ymean <- "b1 * exp(-b2 * x1)"
yvar <- paste ("b1 * exp(-b2 * x1)*(1 + (1/", theta, ") * b1 * exp(-b2 * x1))", sep = "")

## Linear regression model:
ymean <- "b1 + b2 * x1 + b3 * x2 + b4 * x1 * x2"
yvar = "1"

Run the code above in your browser using DataLab