aboutsummaryrefslogblamecommitdiff
path: root/man/saem.Rd
blob: 39b664485cc247e903b8dd7e4927471be3262f67 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                            


                  

                    
                                            
       
                          
 

                     

                                                                                    
            
                  
                      





                                                     

           



                                                                            



                                                                                      



                                                                                                     


                                                                  

                                                                

       

                                                          




                                                               


                                                                                                         

         





                                                                                                           

          
         


                                                        

                                                                       
                                                

                                                                   


                                             
 



                                                                     
 
                                                               

                                                       

                                                   
                      

                                                                                             
                       
 
                                                                                              



                                                                          
 
 
% 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))
}
}

Contact - Imprint