| agqControl | R Documentation |
This is the control options for the adaptive Gauss-Hermite quadrature for the likelihood. Note that nAGQ=1 is the same as the Laplace method.
agqControl(
sigdig = 3,
nAGQ = 2,
...,
interaction = TRUE,
agqLow = -Inf,
agqHi = Inf
)
sigdig |
Optimization significant digits. One value drives, with a single
consistent formula, the inner/outer optimizer convergence tolerance
( |
nAGQ |
Number of Gauss-Hermite adaptive quadrature points. '0' disables AGQ; '1' is equivalent to Laplace. Cost grows quickly with ETAs: once the EBE is found, expect 'nAGQ^neta' (even 'nAGQ') or '(nAGQ^neta)-1' (odd 'nAGQ') additional evaluations per subject. |
... |
Parameters used in the default 'foceiControl()' |
interaction |
boolean, Interaction term for the model, in this case the default is 'TRUE'; For adaptive quadrature, with normal distribution the Hessian is calculated with the foce(i) approximation |
agqLow |
The lower bound for adaptive quadrature log-likelihood. By default this is -Inf; in the original nlmixr's gnlmm it was -700. |
agqHi |
The upper bound for adaptive quadrature log-likelihood. By default this is Inf; in the original nlmixr's gnlmm was 400. |
agqControl object
Matthew L. Fidler
agqControl()
# Use adaptive quadrature
# x = Litter size after 21 days, and the modeled value
r <- rats
r$dv <- r$x
# Time is not used in this model, but it is required in nlmixr2
# currently, add a dummy value
r$time <- 0
f <- function() {
ini({
t1 <- 1
t2 <- 1
t3 <- 1
eta1 ~ 1
})
model({
lp <- t1 * x1 + t2 * x2 + (x1 + x2*t3) * eta1
p <- pnorm(lp)
m1 <- m # need to add outside of model specification
x ~ dbinom(m1, p)
})
}
fit <- nlmixr(f, r, est="agq")
p <- pump
p$dv <- p$y
p$time <- 0 # dummy time
f <- function() {
ini({
t1 <- 1
t2 <- 1
t3 <- 1
t4 <- 1
eta1 ~ 1
})
model({
if (group == 1) {
lp <- t1 + t2 * logtstd
} else {
lp <- t3 + t4 * logtstd
}
lp <- lp + eta1
lam <- exp(lp)
y ~ dpois(lam)
})
}
fit <- nlmixr(f, p, est="agq", control=agqControl(nAGQ=5))
one.cmt <- function() {
ini({
## You may label each parameter with a comment
tka <- 0.45 # Log Ka
tcl <- log(c(0, 2.7, 100)) # Log Cl
## This works with interactive models
## You may also label the preceding line with label("label text")
tv <- 3.45; label("log V")
## the label("Label name") works with all models
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
linCmt() ~ add(add.sd)
})
}
fit <- nlmixr(one.cmt, theo_sd, est="agq")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.