nlmControl  R Documentation 
nlmixr2 defaults controls for nlm
nlmControl(
typsize = NULL,
fscale = 1,
print.level = 0,
ndigit = NULL,
gradtol = 1e06,
stepmax = NULL,
steptol = 1e06,
iterlim = 10000,
check.analyticals = FALSE,
returnNlm = FALSE,
solveType = c("hessian", "grad", "fun"),
stickyRecalcN = 4,
maxOdeRecalc = 5,
odeRecalcFactor = 10^(0.5),
eventType = c("central", "forward"),
shiErr = (.Machine$double.eps)^(1/3),
shi21maxFD = 20L,
optimHessType = c("central", "forward"),
hessErr = (.Machine$double.eps)^(1/3),
shi21maxHess = 20L,
useColor = crayon::has_color(),
printNcol = floor((getOption("width")  23)/12),
print = 1L,
normType = c("rescale2", "mean", "rescale", "std", "len", "constant"),
scaleType = c("nlmixr2", "norm", "mult", "multAdd"),
scaleCmax = 1e+05,
scaleCmin = 1e05,
scaleC = NULL,
scaleTo = 1,
gradTo = 1,
rxControl = NULL,
optExpression = TRUE,
sumProd = FALSE,
literalFix = TRUE,
addProp = c("combined2", "combined1"),
calcTables = TRUE,
compress = TRUE,
covMethod = c("r", "nlm", ""),
adjObf = TRUE,
ci = 0.95,
sigdig = 4,
sigdigTable = NULL,
...
)
typsize 
an estimate of the size of each parameter at the minimum. 
fscale 
an estimate of the size of 
print.level 
this argument determines the level of printing
which is done during the minimization process. The default
value of 
ndigit 
the number of significant digits in the function 
gradtol 
a positive scalar giving the tolerance at which the
scaled gradient is considered close enough to zero to
terminate the algorithm. The scaled gradient is a
measure of the relative change in 
stepmax 
a positive scalar which gives the maximum allowable
scaled step length. 
steptol 
A positive scalar providing the minimum allowable relative step length. 
iterlim 
a positive integer specifying the maximum number of iterations to be performed before the program is terminated. 
check.analyticals 
a logical scalar specifying whether the analytic gradients and Hessians, if they are supplied, should be checked against numerical derivatives at the initial parameter values. This can help detect incorrectly formulated gradients or Hessians. 
returnNlm 
is a logical that allows a return of the 'nlm' object 
solveType 
tells if ‘nlm' will use nlmixr2’s analytical gradients when available (finite differences will be used for eventrelated parameters like parameters controlling lag time, duration/rate of infusion, and modeled bioavailability). This can be:  '"hessian"' which will use the analytical gradients to create a Hessian with finite differences.  '"gradient"' which will use the gradient and let 'nlm' calculate the finite difference hessian  '"fun"' where nlm will calculate both the finite difference gradient and the finite difference Hessian When using nlmixr2's finite differences, the "ideal" step size for either central or forward differences are optimized for with the Shi2021 method which may give more accurate derivatives 
stickyRecalcN 
The number of bad ODE solves before reducing the atol/rtol for the rest of the problem. 
maxOdeRecalc 
Maximum number of times to reduce the ODE tolerances and try to resolve the system if there was a bad ODE solve. 
odeRecalcFactor 
The ODE recalculation factor when ODE solving goes bad, this is the factor the rtol/atol is reduced 
eventType 
Event gradient type for dosing events; Can be "central" or "forward" 
shiErr 
This represents the epsilon when optimizing the ideal step size for numeric differentiation using the Shi2021 method 
shi21maxFD 
The maximum number of steps for the optimization of the forward difference step size when using dosing events (lag time, modeled duration/rate and bioavailability) 
optimHessType 
The hessian type for when calculating the individual hessian by numeric differences (in generalized loglikelihood estimation). The options are "central", and "forward". The central differences is what R's 'optimHess()' uses and is the default for this method. (Though the "forward" is faster and still reasonable for most cases). The Shi21 cannot be changed for the Gill83 algorithm with the optimHess in a generalized likelihood problem. 
hessErr 
This represents the epsilon when optimizing the Hessian step size using the Shi2021 method. 
shi21maxHess 
Maximum number of times to optimize the best step size for the hessian calculation 
useColor 
Boolean indicating if focei can use ASCII color codes 
printNcol 
Number of columns to printout before wrapping parameter estimates/gradient 
print 
Integer representing when the outer step is printed. When this is 0 or do not print the iterations. 1 is print every function evaluation (default), 5 is print every 5 evaluations. 
normType 
This is the type of parameter
normalization/scaling used to get the scaled initial values
for nlmixr2. These are used with With the exception of In general, all all scaling formula can be described by:
= (
)/
Where The other data normalization approaches follow the following formula
= (
)/

scaleType 
The scaling scheme for nlmixr2. The supported types are:

scaleCmax 
Maximum value of the scaleC to prevent overflow. 
scaleCmin 
Minimum value of the scaleC to prevent underflow. 
scaleC 
The scaling constant used with
These parameter scaling coefficients are chose to try to keep similar slopes among parameters. That is they all follow the slopes approximately on a logscale. While these are chosen in a logical manner, they may not always apply. You can specify each parameters scaling factor by this parameter if you wish. 
scaleTo 
Scale the initial parameter estimate to this value. By default this is 1. When zero or below, no scaling is performed. 
gradTo 
this is the factor that the gradient is scaled to before optimizing. This only works with scaleType="nlmixr2". 
rxControl 
'rxode2' ODE solving options during fitting, created with 'rxControl()' 
optExpression 
Optimize the rxode2 expression to speed up calculation. By default this is turned on. 
sumProd 
Is a boolean indicating if the model should change
multiplication to high precision multiplication and sums to
high precision sums using the PreciseSums package. By default
this is 
literalFix 
boolean, substitute fixed population values as literals and readjust ui and parameter estimates after optimization; Default is 'TRUE'. 
addProp 
specifies the type of additive plus proportional errors, the one where standard deviations add (combined1) or the type where the variances add (combined2). The combined1 error type can be described by the following equation:
The combined2 error model can be described by the following equation:
Where:  y represents the observed value  f represents the predicted value  a is the additive standard deviation  b is the proportional/power standard deviation  c is the power exponent (in the proportional case c=1) 
calcTables 
This boolean is to determine if the foceiFit
will calculate tables. By default this is 
compress 
Should the object have compressed items 
covMethod 
allows selection of "r", which uses nlmixr2's 'nlmixr2Hess()' for the hessian calculation or "nlm" which uses the hessian from 'stats::nlm(.., hessian=TRUE)'. When using ‘nlmixr2’s‘ hessian for optimization or 'nlmixr2’s' gradient for solving this defaults to "nlm" since 'stats::optimHess()' assumes an accurate gradient and is faster than 'nlmixr2Hess' 
adjObf 
is a boolean to indicate if the objective function
should be adjusted to be closer to NONMEM's default objective
function. By default this is 
ci 
Confidence level for some tables. By default this is 0.95 or 95% confidence. 
sigdig 
Optimization significant digits. This controls:

sigdigTable 
Significant digits in the final output table. If not specified, then it matches the significant digits in the 'sigdig' optimization algorithm. If 'sigdig' is NULL, use 3. 
... 
additional arguments to be passed to 
nlm control object
Matthew L. Fidler
# A logit regression example with emax model
dsn < data.frame(i=1:1000)
dsn$time < exp(rnorm(1000))
dsn$DV=rbinom(1000,1,exp(1+dsn$time)/(1+exp(1+dsn$time)))
mod < function() {
ini({
E0 < 0.5
Em < 0.5
E50 < 2
g < fix(2)
})
model({
v < E0+Em*time^g/(E50^g+time^g)
ll(bin) ~ DV * v  log(1 + exp(v))
})
}
fit2 < nlmixr(mod, dsn, est="nlm")
print(fit2)
# you can also get the nlm output with fit2$nlm
fit2$nlm
# The nlm control has been modified slightly to include
# extra components and name the parameters
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.