configsaem | R Documentation |
Configure an SAEM model by generating an input list to the SAEM model function
configsaem(
model,
data,
inits,
mcmc = list(niter = c(200, 300), nmc = 3, nu = c(2, 2, 2)),
ODEopt = list(atol = 1e-06, rtol = 1e-04, method = "lsoda", transitAbs = FALSE,
maxeval = 1e+05),
distribution = c("normal", "poisson", "binomial"),
addProp = c("combined2", "combined1"),
seed = 99,
fixed = NULL,
DEBUG = 0,
tol = 1e-04,
itmax = 100L,
type = c("nelder-mead", "newuoa"),
lambdaRange = 3,
powRange = 10,
odeRecalcFactor = 10^(0.5),
maxOdeRecalc = 5L
)
model |
a compiled saem model by gen_saem_user_fn() |
data |
input data |
inits |
initial values |
mcmc |
a list of various mcmc options |
ODEopt |
optional ODE solving options |
distribution |
one of c("normal","poisson","binomial") |
addProp |
one of "combined1" and "combined2"; These are the two forms of additive+proportional errors supported by monolix/nonmem: combined1: transform(y)=transform(f)+(a+b*f^c)*eps combined2: transform(y)=transform(f)+(a^2+b^2*f^(2c))*eps |
seed |
seed for random number generator |
fixed |
a character vector of fixed effect only parameters (no random effects attached) to be fixed |
DEBUG |
Integer determining if debugging is enabled |
tol |
This is the tolerance for the regression models used for complex residual errors (ie add+prop etc) |
itmax |
This is the maximum number of iterations for the regression models used for complex residual errors. The number of iterations is itmax*number of parameters |
type |
indicates the type of optimization for the residuals; Can be one of c("nelder-mead", "newuoa") |
lambdaRange |
This indicates the range that Box-Cox and Yeo-Johnson parameters are constrained to be; The default is 3 indicating the range (-3,3) |
powRange |
This indicates the range that powers can take for residual errors; By default this is 10 indicating the range is c(1/10, 10) or c(0.1,10) |
odeRecalcFactor |
The factor to increase the rtol/atol with bad ODE solving. |
maxOdeRecalc |
Maximum number of times to reduce the ODE tolerances and try to resolve the system if there was a bad ODE solve. |
Fit a generalized nonlinear mixed-effect model by he Stochastic Approximation Expectation-Maximization (SAEM) algorithm
Returns a list neede for the saem fit procedure
Wenping Wang & Matthew Fidler
# In this ODE system we simply specify the ODEs
ode <- "d/dt(depot) =-KA*depot;
d/dt(centr) = KA*depot - KE*centr;"
m1 <- RxODE(ode)
# In this ode System, we also specify the concentration as C2 = centr/V
ode <- "C2 = centr/V;
d/dt(depot) =-KA*depot;
d/dt(centr) = KA*depot - KE*centr;"
m2 = RxODE(ode)
PKpars <- function() {
CL <- exp(lCL)
V <- exp(lV)
KA <- exp(lKA)
KE <- CL / V
}
PRED <- function() centr / V
PRED2 <- function() C2
saem_fit <- gen_saem_user_fn(model = m1, PKpars, pred = PRED)
# Can also use PRED2
saem_fit <- gen_saem_user_fn(model=m2, PKpars, pred=PRED2)
# You can also use the nlmixr UI to run this model and call the lower level functions
one.compartment <- function() {
ini({
tka <- 0.45 # Log Ka
tcl <- 1 # Log Cl
tv <- 3.45 # Log V
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
wt.est <- 0.0
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v + wt.est * WT)
d/dt(depot) = -ka * depot
d/dt(center) = ka * depot - cl / v * center
cp = center / v
cp ~ add(add.sd)
})
}
fit <- nlmixr(one.compartment, theo_sd, "saem")
fit
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.