vignettes/web_only/dimethenamid_2018.R

## ---- include = FALSE---------------------------------------------------------
require(knitr)
require(mkin)
require(nlme)
options(digits = 5)
opts_chunk$set(
  comment = "",
  tidy = FALSE,
  cache = TRUE
)

## ----dimethenamid_data--------------------------------------------------------
library(mkin, quietly = TRUE)
dmta_ds <- lapply(1:7, function(i) {
  ds_i <- dimethenamid_2018$ds[[i]]$data
  ds_i[ds_i$name == "DMTAP", "name"] <-  "DMTA"
  ds_i$time <- ds_i$time * dimethenamid_2018$f_time_norm[i]
  ds_i
})
names(dmta_ds) <- sapply(dimethenamid_2018$ds, function(ds) ds$title)
dmta_ds[["Elliot"]] <- rbind(dmta_ds[["Elliot 1"]], dmta_ds[["Elliot 2"]])
dmta_ds[["Elliot 1"]] <- NULL
dmta_ds[["Elliot 2"]] <- NULL

## ----f_parent_mkin------------------------------------------------------------
f_parent_mkin_const <- mmkin(c("SFO", "DFOP"), dmta_ds,
  error_model = "const", quiet = TRUE)
f_parent_mkin_tc <- mmkin(c("SFO", "DFOP"), dmta_ds,
  error_model = "tc", quiet = TRUE)

## ----f_parent_mkin_sfo_const--------------------------------------------------
plot(mixed(f_parent_mkin_const["SFO", ]))

## ----f_parent_mkin_dfop_const-------------------------------------------------
plot(mixed(f_parent_mkin_const["DFOP", ]))

## ----f_parent_mkin_dfop_const_test--------------------------------------------
plot(mixed(f_parent_mkin_const["DFOP", ]), test_log_parms = TRUE)

## ----f_parent_mkin_dfop_tc_test-----------------------------------------------
plot(mixed(f_parent_mkin_tc["DFOP", ]), test_log_parms = TRUE)

## ----f_parent_mkin_dfop_tc_print----------------------------------------------
print(f_parent_mkin_tc["DFOP", ])

## ----f_parent_nlme, warning = FALSE-------------------------------------------
library(nlme)
f_parent_nlme_sfo_const <- nlme(f_parent_mkin_const["SFO", ])
# f_parent_nlme_dfop_const <- nlme(f_parent_mkin_const["DFOP", ])
f_parent_nlme_sfo_tc <- nlme(f_parent_mkin_tc["SFO", ])
f_parent_nlme_dfop_tc <- nlme(f_parent_mkin_tc["DFOP", ])

## ----AIC_parent_nlme----------------------------------------------------------
anova(
  f_parent_nlme_sfo_const, f_parent_nlme_sfo_tc, f_parent_nlme_dfop_tc
)

## ----f_parent_nlme_logchol, warning = FALSE, eval = FALSE---------------------
#  f_parent_nlme_sfo_const_logchol <- nlme(f_parent_mkin_const["SFO", ],
#    random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k_DMTA ~ 1)))
#  anova(f_parent_nlme_sfo_const, f_parent_nlme_sfo_const_logchol)
#  f_parent_nlme_sfo_tc_logchol <- nlme(f_parent_mkin_tc["SFO", ],
#    random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k_DMTA ~ 1)))
#  anova(f_parent_nlme_sfo_tc, f_parent_nlme_sfo_tc_logchol)
#  f_parent_nlme_dfop_tc_logchol <- nlme(f_parent_mkin_const["DFOP", ],
#    random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k1 ~ 1, log_k2 ~ 1, g_qlogis ~ 1)))
#  anova(f_parent_nlme_dfop_tc, f_parent_nlme_dfop_tc_logchol)

## ----plot_parent_nlme---------------------------------------------------------
plot(f_parent_nlme_dfop_tc)

## ----saemix_control, results='hide'-------------------------------------------
library(saemix)
saemix_control <- saemixControl(nbiter.saemix = c(800, 300), nb.chains = 15,
    print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
saemix_control_moreiter <- saemixControl(nbiter.saemix = c(1600, 300), nb.chains = 15,
    print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
saemix_control_10k <- saemixControl(nbiter.saemix = c(10000, 300), nb.chains = 15,
    print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)

## ----f_parent_saemix_sfo_const, results = 'hide', dependson = "saemix_control"----
f_parent_saemix_sfo_const <- mkin::saem(f_parent_mkin_const["SFO", ], quiet = TRUE,
  control = saemix_control, transformations = "saemix")
plot(f_parent_saemix_sfo_const$so, plot.type = "convergence")

## ----f_parent_saemix_sfo_tc, results = 'hide', dependson = "saemix_control"----
f_parent_saemix_sfo_tc <- mkin::saem(f_parent_mkin_tc["SFO", ], quiet = TRUE,
  control = saemix_control, transformations = "saemix")
plot(f_parent_saemix_sfo_tc$so, plot.type = "convergence")

## ----f_parent_saemix_dfop_const, results = 'show', dependson = "saemix_control"----
f_parent_saemix_dfop_const <- mkin::saem(f_parent_mkin_const["DFOP", ], quiet = TRUE,
  control = saemix_control, transformations = "saemix")
plot(f_parent_saemix_dfop_const$so, plot.type = "convergence")
print(f_parent_saemix_dfop_const)

## ----f_parent_saemix_dfop_tc, results = 'show', dependson = "saemix_control"----
f_parent_saemix_dfop_tc <- mkin::saem(f_parent_mkin_tc["DFOP", ], quiet = TRUE,
  control = saemix_control, transformations = "saemix")
f_parent_saemix_dfop_tc_moreiter <- mkin::saem(f_parent_mkin_tc["DFOP", ], quiet = TRUE,
  control = saemix_control_moreiter, transformations = "saemix")
plot(f_parent_saemix_dfop_tc$so, plot.type = "convergence")
print(f_parent_saemix_dfop_tc)

## ----AIC_parent_saemix, cache = FALSE-----------------------------------------
AIC_parent_saemix <- saemix::compare.saemix(
  f_parent_saemix_sfo_const$so,
  f_parent_saemix_sfo_tc$so,
  f_parent_saemix_dfop_const$so,
  f_parent_saemix_dfop_tc$so,
  f_parent_saemix_dfop_tc_moreiter$so)
rownames(AIC_parent_saemix) <- c(
  "SFO const", "SFO tc", "DFOP const", "DFOP tc", "DFOP tc more iterations")
print(AIC_parent_saemix)

## ----AIC_parent_saemix_methods, cache = FALSE---------------------------------
f_parent_saemix_dfop_tc$so <-
  saemix::llgq.saemix(f_parent_saemix_dfop_tc$so)
AIC_parent_saemix_methods <- c(
  is = AIC(f_parent_saemix_dfop_tc$so, method = "is"),
  gq = AIC(f_parent_saemix_dfop_tc$so, method = "gq"),
  lin = AIC(f_parent_saemix_dfop_tc$so, method = "lin")
)
print(AIC_parent_saemix_methods)

## ----AIC_parent_saemix_methods_defaults, cache = FALSE------------------------
f_parent_saemix_dfop_tc_defaults <- mkin::saem(f_parent_mkin_tc["DFOP", ])
f_parent_saemix_dfop_tc_defaults$so <-
  saemix::llgq.saemix(f_parent_saemix_dfop_tc_defaults$so)
AIC_parent_saemix_methods_defaults <- c(
  is = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "is"),
  gq = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "gq"),
  lin = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "lin")
)
print(AIC_parent_saemix_methods_defaults)

## ----AIC_all, cache = FALSE---------------------------------------------------
AIC_all <- data.frame(
  check.names = FALSE,
  "Degradation model" = c("SFO", "SFO", "DFOP", "DFOP"),
  "Error model" = c("const", "tc", "const", "tc"),
  nlme = c(AIC(f_parent_nlme_sfo_const), AIC(f_parent_nlme_sfo_tc), NA, AIC(f_parent_nlme_dfop_tc)),
  saemix_lin = sapply(list(f_parent_saemix_sfo_const$so, f_parent_saemix_sfo_tc$so,
    f_parent_saemix_dfop_const$so, f_parent_saemix_dfop_tc$so), AIC, method = "lin"),
  saemix_is = sapply(list(f_parent_saemix_sfo_const$so, f_parent_saemix_sfo_tc$so,
    f_parent_saemix_dfop_const$so, f_parent_saemix_dfop_tc$so), AIC, method = "is")
)
kable(AIC_all)

## ----sessionInfo, cache = FALSE-----------------------------------------------
sessionInfo()
jranke/mkin documentation built on April 29, 2024, 7:33 a.m.