# gnlmm: Fit a generalized nonlinear mixed-effect model In nlmixr: Nonlinear Mixed Effects Models in Population Pharmacokinetics and Pharmacodynamics

## Description

Fit a generalized nonlinear mixed-effect model by adapative Gaussian quadrature (AQD)

## Usage

 ```1 2 3 4 5``` ```gnlmm(llik, data, inits, syspar = NULL, system = NULL, diag.xform = c("sqrt", "log", "identity"), ..., control = list()) gnlmm2(llik, data, inits, syspar = NULL, system = NULL, diag.xform = c("sqrt", "log", "identity"), ..., control = list()) ```

## Arguments

 `llik` log-likelihood function `data` data to be fitted `inits` initial values `syspar` function: calculation of PK parameters `system` an optional (compiled) RxODE object `diag.xform` transformation to diagonal elements of OMEGA during fitting `...` additional options `control` additional optimization options

## Details

Fit a generalized nonlinear mixed-effect model by adapative Gaussian quadrature (AGQ)

Wenping Wang

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62``` ```llik <- function() { lp = THETA[1]*x1+THETA[2]*x2+(x1+x2*THETA[3])*ETA[1] p = pnorm(lp) dbinom(x, m, p, log=TRUE) } inits = list(THTA=c(1,1,1), OMGA=list(ETA[1]~1)) gnlmm(llik, rats, inits, control=list(nAQD=3)) ## Not run: llik <- function() { if (group==1) lp = THETA[1]+THETA[2]*logtstd+ETA[1] else lp = THETA[3]+THETA[4]*logtstd+ETA[1] lam = exp(lp) dpois(y, lam, log=TRUE) } inits = list(THTA=c(1,1,1,1), OMGA=list(ETA[1]~1)) fit = gnlmm(llik, pump, inits, control=list( reltol.outer=1e-4, optim.outer="nmsimplex", nAQD=5 ) ) ode <- " d/dt(depot) =-KA*depot; d/dt(centr) = KA*depot - KE*centr; " sys1 = RxODE(ode) pars <- function() { CL = exp(THETA[1] + ETA[1])#; if (CL>100) CL=100 KA = exp(THETA[2] + ETA[2])#; if (KA>20) KA=20 KE = exp(THETA[3]) V = CL/KE sig2 = exp(THETA[4]) } llik <- function() { pred = centr/V dnorm(DV, pred, sd=sqrt(sig2), log=TRUE) } inits = list(THTA=c(-3.22, 0.47, -2.45, 0)) inits\$OMGA=list(ETA[1]~.027, ETA[2]~.37) #inits\$OMGA=list(ETA[1]+ETA[2]~c(.027, .01, .37)) theo <- read.table("theo_md.txt", head=TRUE) fit = gnlmm(llik, theo, inits, pars, sys1, control=list(trace=TRUE, nAQD=5)) cv = calcCov(fit) cbind(fit\$par[fit\$nsplt==1], sqrt(diag(cv))) ## End(Not run) ```

nlmixr documentation built on Sept. 23, 2018, 5:04 p.m.