aboutsummaryrefslogtreecommitdiff
path: root/man/multistart.Rd
diff options
context:
space:
mode:
Diffstat (limited to 'man/multistart.Rd')
-rw-r--r--man/multistart.Rd103
1 files changed, 103 insertions, 0 deletions
diff --git a/man/multistart.Rd b/man/multistart.Rd
new file mode 100644
index 00000000..5a5f7b44
--- /dev/null
+++ b/man/multistart.Rd
@@ -0,0 +1,103 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/multistart.R
+\name{multistart}
+\alias{multistart}
+\alias{multistart.saem.mmkin}
+\alias{print.multistart}
+\alias{best}
+\alias{best.default}
+\alias{which.best}
+\alias{which.best.default}
+\title{Perform a hierarchical model fit with multiple starting values}
+\usage{
+multistart(
+ object,
+ n = 50,
+ cores = if (Sys.info()["sysname"] == "Windows") 1 else parallel::detectCores(),
+ cluster = NULL,
+ ...
+)
+
+\method{multistart}{saem.mmkin}(object, n = 50, cores = 1, cluster = NULL, ...)
+
+\method{print}{multistart}(x, ...)
+
+best(object, ...)
+
+\method{best}{default}(object, ...)
+
+which.best(object, ...)
+
+\method{which.best}{default}(object, ...)
+}
+\arguments{
+\item{object}{The fit object to work with}
+
+\item{n}{How many different combinations of starting parameters should be
+used?}
+
+\item{cores}{How many fits should be run in parallel (only on posix platforms)?}
+
+\item{cluster}{A cluster as returned by \link[parallel:makeCluster]{parallel::makeCluster} to be used
+for parallel execution.}
+
+\item{\dots}{Passed to the update function.}
+
+\item{x}{The multistart object to print}
+}
+\value{
+A list of \link{saem.mmkin} objects, with class attributes
+'multistart.saem.mmkin' and 'multistart'.
+
+The object with the highest likelihood
+
+The index of the object with the highest likelihood
+}
+\description{
+The purpose of this method is to check if a certain algorithm for fitting
+nonlinear hierarchical models (also known as nonlinear mixed-effects models)
+will reliably yield results that are sufficiently similar to each other, if
+started with a certain range of reasonable starting parameters. It is
+inspired by the article on practical identifiabiliy in the frame of nonlinear
+mixed-effects models by Duchesne et al (2021).
+}
+\examples{
+\dontrun{
+library(mkin)
+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"]] <- dmta_ds[["Elliot 2"]] <- NULL
+
+f_mmkin <- mmkin("DFOP", dmta_ds, error_model = "tc", cores = 7, quiet = TRUE)
+f_saem_full <- saem(f_mmkin)
+f_saem_full_multi <- multistart(f_saem_full, n = 16, cores = 16)
+parplot(f_saem_full_multi, lpos = "topleft")
+illparms(f_saem_full)
+
+f_saem_reduced <- update(f_saem_full, no_random_effect = "log_k2")
+illparms(f_saem_reduced)
+# On Windows, we need to create a cluster first. When working with
+# such a cluster, we need to export the mmkin object to the cluster
+# nodes, as it is referred to when updating the saem object on the nodes.
+library(parallel)
+cl <- makePSOCKcluster(12)
+f_saem_reduced_multi <- multistart(f_saem_reduced, n = 16, cluster = cl)
+parplot(f_saem_reduced_multi, lpos = "topright")
+stopCluster(cl)
+}
+}
+\references{
+Duchesne R, Guillemin A, Gandrillon O, Crauste F. Practical
+identifiability in the frame of nonlinear mixed effects models: the example
+of the in vitro erythropoiesis. BMC Bioinformatics. 2021 Oct 4;22(1):478.
+doi: 10.1186/s12859-021-04373-4.
+}
+\seealso{
+\link{parplot}, \link{llhist}
+}

Contact - Imprint