diff options
Diffstat (limited to 'man/saem.Rd')
-rw-r--r-- | man/saem.Rd | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/man/saem.Rd b/man/saem.Rd new file mode 100644 index 00000000..39b66448 --- /dev/null +++ b/man/saem.Rd @@ -0,0 +1,100 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/saemix.R +\name{saem} +\alias{saem} +\alias{saem.mmkin} +\alias{saemix_model} +\alias{saemix_data} +\title{Fit nonlinear mixed models with SAEM} +\usage{ +saem(object, control, ...) + +\method{saem}{mmkin}( + object, + control = list(displayProgress = FALSE, print = FALSE, save = FALSE, save.graphs = + FALSE), + cores = 1, + verbose = FALSE, + suppressPlot = TRUE, + ... +) + +saemix_model(object, cores = 1, verbose = FALSE, ...) + +saemix_data(object, verbose = FALSE, ...) +} +\arguments{ +\item{object}{An \link{mmkin} row object containing several fits of the same +\link{mkinmod} model to different datasets} + +\item{control}{Passed to \link[saemix:saemix]{saemix::saemix}} + +\item{\dots}{Further parameters passed to \link[saemix:saemixData]{saemix::saemixData} +and \link[saemix:saemixModel]{saemix::saemixModel}.} + +\item{cores}{The number of cores to be used for multicore processing using +\code{\link[parallel:mclapply]{parallel::mclapply()}}. Using more than 1 core is experimental and may +lead to uncontrolled forking, apparently depending on the BLAS version +used.} + +\item{verbose}{Should we print information about created objects?} + +\item{suppressPlot}{Should we suppress any plotting that is done +by the saemix function?} +} +\value{ +An \link[saemix:SaemixObject-class]{saemix::SaemixObject}. + +An \link[saemix:SaemixModel-class]{saemix::SaemixModel} object. + +An \link[saemix:SaemixData-class]{saemix::SaemixData} object. +} +\description{ +This function uses \code{\link[saemix:saemix]{saemix::saemix()}} as a backend for fitting nonlinear mixed +effects models created from \link{mmkin} row objects using the stochastic approximation +to the expectation maximisation algorithm (SAEM). +} +\details{ +An mmkin row object is essentially a list of mkinfit objects that have been +obtained by fitting the same model to a list of datasets using \link{mkinfit}. + +Starting values for the fixed effects (population mean parameters, argument +psi0 of \code{\link[saemix:saemixModel]{saemix::saemixModel()}} are the mean values of the parameters found +using \link{mmkin}. +} +\examples{ +\dontrun{ +ds <- lapply(experimental_data_for_UBA_2019[6:10], + function(x) subset(x$data[c("name", "time", "value")])) +names(ds) <- paste("Dataset", 6:10) +f_mmkin_parent_p0_fixed <- mmkin("FOMC", ds, cores = 1, + state.ini = c(parent = 100), fixed_initials = "parent", quiet = TRUE) +f_saem_p0_fixed <- saem(f_mmkin_parent_p0_fixed) + +f_mmkin_parent <- mmkin(c("SFO", "FOMC", "DFOP"), ds, quiet = TRUE) +f_saem_sfo <- saem(f_mmkin_parent["SFO", ]) +f_saem_fomc <- saem(f_mmkin_parent["FOMC", ]) +f_saem_dfop <- saem(f_mmkin_parent["DFOP", ]) + +# The returned saem.mmkin object contains an SaemixObject, we can use +# functions from saemix +library(saemix) +compare.saemix(list(f_saem_sfo$so, f_saem_fomc$so, f_saem_dfop$so)) + +f_mmkin_parent_tc <- update(f_mmkin_parent, error_model = "tc") +f_saem_fomc_tc <- saem(f_mmkin_parent_tc["FOMC", ]) +compare.saemix(list(f_saem_fomc$so, f_saem_fomc_tc$so)) + +dfop_sfo <- mkinmod(parent = mkinsub("DFOP", "A1"), + A1 = mkinsub("SFO")) +f_mmkin <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE, solution_type = "analytical") +# This takes about 4 minutes on my system +f_saem <- saem(f_mmkin) + +f_mmkin_des <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE, solution_type = "deSolve") +# Using a single core, the following takes about 6 minutes, using 10 cores +# it is slower instead of faster +f_saem_des <- saem(f_mmkin_des, cores = 1) +compare.saemix(list(f_saemix$so, f_saemix_des$so)) +} +} |