Nothing
test_that("profileNlmixr2FitDataEstInitial", {
# Must have one-row input
expect_error(
profileNlmixr2FitDataEstInitial(estimates = data.frame(A = 1:2))
)
expect_equal(
profileNlmixr2FitDataEstInitial(
estimates = data.frame(A = 1),
which = "A",
ofvIncrease = 1.92,
rseTheta = c(A=100),
lower = -100, upper = 200
),
c(-0.92, 2.92)
)
# Bounds are respected
expect_equal(
profileNlmixr2FitDataEstInitial(
estimates = data.frame(A = 1),
which = "A",
ofvIncrease = 1.92,
rseTheta = c(A=100),
lower = 0, upper = 200
),
c(sqrt(.Machine$double.eps), 2.92)
)
})
test_that("profileNlmixr2FitCoreRet", {
# Variance and covariance is correctly captured
one.compartment <- function() {
ini({
tka <- log(1.57)
tcl <- log(2.72)
tv <- fixed(log(31.5))
eta.ka ~ 0.6
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl)
v <- exp(tv)
cp <- linCmt()
cp ~ add(add.sd)
})
}
fit <-
suppressMessages(nlmixr2(
one.compartment, data = nlmixr2data::theo_sd, est="focei", control = list(print=0)
))
withoutCov <- profileNlmixr2FitCoreRet(fit, which = "tka")
expect_s3_class(withoutCov, "data.frame")
expect_named(withoutCov, expected = c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka"))
one.compartment <- function() {
ini({
tka <- log(1.57)
tcl <- log(2.72)
tv <- fixed(log(31.5))
eta.ka + eta.cl ~ c(0.6, 0.1, 0.2)
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv)
cp <- linCmt()
cp ~ add(add.sd)
})
}
fit <-
suppressMessages(nlmixr2(
one.compartment, data = nlmixr2data::theo_sd, est="focei", control = list(print=0)
))
withCov <- profileNlmixr2FitCoreRet(fit, which = "tka")
expect_s3_class(withCov, "data.frame")
expect_named(withCov, expected = c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka", "eta.cl", "cov(eta.cl,eta.ka)"))
})
test_that("profileFixed", {
# fix most of the parameters so that it estimates faster
one.compartment <- function() {
ini({
tka <- log(1.57)
tcl <- log(2.72)
tv <- fixed(log(31.5))
eta.ka ~ 0.6
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl)
v <- exp(tv)
cp <- linCmt()
cp ~ add(add.sd)
})
}
fit <-
suppressMessages(nlmixr2(
one.compartment, data = nlmixr2data::theo_sd, est="focei", control = list(print=0)
))
testFixed <-
suppressMessages(
profile(fit, which = data.frame(tka = log(c(1.4, 1.6, 1.8))), method = "fixed")
)
expect_s3_class(testFixed, "data.frame")
expect_named(testFixed, expected = c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka"))
expect_equal(nrow(testFixed), 3)
# Fix multiple parameters simultaneously
testFixedMulti <-
suppressMessages(
profile(
fit,
which =
data.frame(
tka = log(c(1.4, 1.6, 1.8)),
tcl = log(c(2.6, 2.7, 2.8))
),
method = "fixed"
)
)
expect_s3_class(testFixedMulti, "data.frame")
expect_named(testFixedMulti, expected = c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka"))
expect_equal(nrow(testFixedMulti), 3)
expect_equal(testFixedMulti$Parameter, rep("tka,tcl", 3))
})
test_that("profile a standard model", {
# fix most of the parameters so that it estimates faster
one.compartment <- function() {
ini({
tka <- log(1.57)
tcl <- log(2.72)
tv <- fixed(log(31.5))
eta.ka ~ 0.6
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl)
v <- exp(tv)
cp <- linCmt()
cp ~ add(add.sd)
})
}
fit <-
suppressMessages(nlmixr2(
one.compartment, data = nlmixr2data::theo_sd, est="focei", control = list(print=0)
))
# All parameters
profall <- suppressMessages(profile(fit))
expect_s3_class(profall, "data.frame")
expect_named(profall, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "profileBound"))
# A single parameter
proftka <- suppressMessages(profile(fit, which = "tka"))
expect_s3_class(proftka, "data.frame")
expect_named(proftka, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "profileBound"))
# A fixed parameter
expect_warning(
proftv <- profile(fit, which = "tv"),
regexp = "OFV decreased while profiling"
)
expect_s3_class(proftv, "data.frame")
expect_named(proftv, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "profileBound"))
# Residual error
profadd.sd <- profile(fit, which = "add.sd")
expect_s3_class(profadd.sd, "data.frame")
expect_named(profadd.sd, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "profileBound"))
})
test_that("profile a standard model with correlated etas", {
# fix most of the parameters so that it estimates faster
one.compartment <- function() {
ini({
tka <- log(1.57)
tcl <- log(2.72)
tv <- fixed(log(31.5))
eta.ka ~ 0.6
eta.cl ~ 0.1
eta.v ~ 0.2
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
cp <- linCmt()
cp ~ add(add.sd)
})
}
fit <-
suppressMessages(nlmixr2(
one.compartment, data = nlmixr2data::theo_sd, est="focei", control = list(print=0)
))
# All parameters
profall <- suppressMessages(profile(fit))
expect_s3_class(profall, "data.frame")
expect_named(profall, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka", "profileBound"))
# A single parameter
proftka <- suppressMessages(profile(fit, which = "tka"))
expect_s3_class(proftka, "data.frame")
expect_named(proftka, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka", "profileBound"))
# A fixed parameter
expect_warning(
proftv <- profile(fit, which = "tv"),
regexp = "OFV decreased while profiling"
)
expect_s3_class(proftv, "data.frame")
expect_named(proftv, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka", "profileBound"))
# Residual error
profadd.sd <- profile(fit, which = "add.sd")
expect_s3_class(profadd.sd, "data.frame")
expect_named(profadd.sd, c("Parameter", "OFV", "tka", "tcl", "tv", "add.sd", "eta.ka", "profileBound"))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.