| laplaceControl | 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.
laplaceControl(sigdig = 3, ..., nAGQ = 1)
sigdig |
Optimization significant digits. One value drives, with a single
consistent formula, the inner/outer optimizer convergence tolerance
( |
... |
Parameters used in the default 'foceiControl()' |
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. |
This method can be made to more closely matches NONMEM-style Laplace estimation by requesting the log-likelihood from STAN as well as numerically calculated Hessian matrix. This is done with adding '+dnorm()' to the model for any normal end-points.
laplaceControl object
Matthew L. Fidler
laplaceControl()
# 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="laplace")
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="laplace")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.