lme で IV 1-コンパートメントモデル
- k は正規分布
- V は対数正規分布
- 個体内誤差は対数正規分布
- 両辺を対数変換すると線形モデルになる
require(nlme)
set.seed(2801)
n <- 50
m <- 5
k <- 0.1 + rnorm(n, mean=0, sd=0.1*0.2)
k[k<=0] # check
v <- 1 * exp(rnorm(n, mean=0, sd=0.2))
ds <- data.frame(
ID=rep(seq(n), each=m),
TIME=runif(n*m, min=5/60, max=24),
k=rep(k, each=m),
v=rep(v, each=m)
)
iv1 <- function(TIME, k, v, Dose=1) {
Dose / v * exp(-k * TIME)
}
ds$PRED <- with(ds, iv1(TIME, k, v))
ds$DV <- ds$PRED * exp(rnorm(n*m, sd=0.1))
ds.g <- groupedData(DV ~ TIME | ID, ds, order.groups=F)
(fm1 <- lm(log(DV) ~ TIME, ds))
(fm2 <- lme(log(DV) ~ TIME, ds.g, random=pdDiag(form=~1)))
(fm3 <- lme(log(DV) ~ TIME, ds.g,
random=pdDiag(form=~1+TIME)
))
参照