gnlmm: Fit a generalized nonlinear mixed-effect model

Description Usage Arguments Details Author(s) Examples

View source: R/gnlmm.R

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)

Author(s)

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.