From fd205e13061de8abc595d266f3b0c7650773d442 Mon Sep 17 00:00:00 2001
From: Johannes Ranke
Date: Fri, 16 Sep 2022 21:06:54 +0200
Subject: Improve multistart documentation, bugfix
- Split out llhist and parhist documentation
- Add example code for multistart
- Create a multistart vignette, because the example code fails when run
by pkgdown
- Fix multistart for the case of mkin transformations in the saem fit
---
GNUmakefile | 2 +-
R/llhist.R | 30 ++
R/multistart.R | 91 ++---
R/parhist.R | 52 +++
_pkgdown.yml | 6 +-
docs/dev/articles/index.html | 7 +-
docs/dev/articles/web_only/multistart.html | 172 ++++++++
.../accessible-code-block-0.0.1/empty-anchor.js | 15 +
.../figure-html/unnamed-chunk-2-1.png | Bin 0 -> 52067 bytes
.../figure-html/unnamed-chunk-3-1.png | Bin 0 -> 50142 bytes
docs/dev/authors.html | 5 +-
docs/dev/index.html | 5 +-
docs/dev/news/index.html | 5 +-
docs/dev/pkgdown.yml | 3 +-
docs/dev/reference/index.html | 15 +-
docs/dev/reference/llhist.html | 147 +++++++
docs/dev/reference/multistart.html | 64 ++-
docs/dev/reference/parhist.html | 156 ++++++++
docs/dev/sitemap.xml | 9 +
log/check.log | 16 +-
man/llhist.Rd | 27 ++
man/multistart.Rd | 47 ++-
man/parhist.Rd | 34 ++
vignettes/web_only/multistart.R | 23 ++
vignettes/web_only/multistart.html | 441 +++++++++++++++++++++
vignettes/web_only/multistart.rmd | 48 +++
26 files changed, 1319 insertions(+), 101 deletions(-)
create mode 100644 R/llhist.R
create mode 100644 R/parhist.R
create mode 100644 docs/dev/articles/web_only/multistart.html
create mode 100644 docs/dev/articles/web_only/multistart_files/accessible-code-block-0.0.1/empty-anchor.js
create mode 100644 docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-2-1.png
create mode 100644 docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png
create mode 100644 docs/dev/reference/llhist.html
create mode 100644 docs/dev/reference/parhist.html
create mode 100644 man/llhist.Rd
create mode 100644 man/parhist.Rd
create mode 100644 vignettes/web_only/multistart.R
create mode 100644 vignettes/web_only/multistart.html
create mode 100644 vignettes/web_only/multistart.rmd
diff --git a/GNUmakefile b/GNUmakefile
index ee276f89..114f7eef 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -105,7 +105,7 @@ vignettes: vignettes/mkin.html vignettes/FOCUS_D.html vignettes/FOCUS_L.html vig
vignettes/web_only/%.html: vignettes/references.bib vignettes/web_only/%.rmd
"$(RBIN)/Rscript" -e "tools::buildVignette(file = 'vignettes/web_only/$*.rmd', dir = 'vignettes/web_only', keep='mkin_benchmarks.rda')"
-articles: vignettes/web_only/FOCUS_Z.html vignettes/web_only/compiled_models.html vignettes/web_only/benchmarks.html vignettes/web_only/dimethenamid_2018.html
+articles: vignettes/web_only/FOCUS_Z.html vignettes/web_only/compiled_models.html vignettes/web_only/benchmarks.html vignettes/web_only/dimethenamid_2018.html vignettes/web_only/multistart.html
pd: roxygen
"$(RBIN)/Rscript" -e "pkgdown::build_site(run_dont_run = TRUE, lazy = TRUE)"
diff --git a/R/llhist.R b/R/llhist.R
new file mode 100644
index 00000000..6a6d93cd
--- /dev/null
+++ b/R/llhist.R
@@ -0,0 +1,30 @@
+#' Plot the distribution of log likelihoods from multistart objects
+#'
+#' Produces a histogram of log-likelihoods, and an overlayed kernel density
+#' estimate. In addition, the likelihood of the original fit is shown as
+#' a red vertical line.
+#'
+#' @param object The [multistart] object
+#' @param breaks Passed to [hist]
+#' @param lpos Positioning of the legend.
+#' @param main Title of the plot
+#' @param \dots Passed to [hist]
+#' @seealso [multistart]
+#' @importFrom KernSmooth bkde
+#' @export
+llhist <- function(object, breaks = "Sturges", lpos = "topleft", main = "", ...) {
+ ll <- sapply(object, logLik)
+ kde <- KernSmooth::bkde(ll)
+ h <- hist(ll, freq = TRUE,
+ xlim = range(kde$x),
+ xlab = "", main = main,
+ ylab = "Frequency of log likelihoods", breaks = breaks, ...)
+
+ freq_factor <- h$counts[1] / h$density[1]
+ lines(kde$x, freq_factor * kde$y)
+ abline(v = logLik(attr(object, "orig")), col = 2)
+ legend(lpos, inset = c(0.05, 0.05), bty = "n",
+ lty = 1, col = c(2, 1),
+ legend = c("original log likelihood",
+ "kernel density estimate"))
+}
diff --git a/R/multistart.R b/R/multistart.R
index 52f279f0..6fd98522 100644
--- a/R/multistart.R
+++ b/R/multistart.R
@@ -10,24 +10,49 @@
#' Currently, parallel execution of the fits is only supported using
#' [parallel::mclapply], i.e. not available on Windows.
#'
+#' In case the online version of this help page contains error messages
+#' in the example code and no plots, this is due to the multistart method
+#' not working when called by pkgdown. Please refer to the
+#' [online vignette](https://pkgdown.jrwb.de/mkin/dev/articles/web_only/multistart.html)
+#' in this case.
+#'
#' @param object The fit object to work with
#' @param n How many different combinations of starting parameters should be
#' used?
#' @param cores How many fits should be run in parallel?
-#' @param \dots Passed to the update function, or to the basic plotting
-#' function in the case of the graphical functions.
+#' @param \dots Passed to the update function.
#' @param x The multistart object to print
-#' @param breaks Passed to [hist]
-#' @param main title of the plot
-#' @param lpos Positioning of the legend.
#' @return A list of [saem.mmkin] objects, with class attributes
#' 'multistart.saem.mmkin' and 'multistart'.
+#' @seealso [parhist], [llhist]
#'
#' @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.
#' @export
+#' @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)
+#' parhist(f_saem_full_multi, lpos = "bottomright")
+#'
+#' f_saem_reduced <- update(f_saem_full, covariance.model = diag(c(1, 1, 0, 1)))
+#' f_saem_reduced_multi <- multistart(f_saem_reduced, n = 16, cores = 16)
+#' parhist(f_saem_reduced_multi, lpos = "bottomright")
+#' }
multistart <- function(object, n = 50, cores = 1, ...)
{
UseMethod("multistart", object)
@@ -36,10 +61,13 @@ multistart <- function(object, n = 50, cores = 1, ...)
#' @rdname multistart
#' @export
multistart.saem.mmkin <- function(object, n = 50, cores = 1, ...) {
+
+ mmkin_parms <- parms(object$mmkin, errparms = FALSE,
+ transformed = object$transformations == "mkin")
start_parms <- apply(
- parms(object$mmkin, errparms = FALSE), 1,
- function(x) stats::runif(n, min(x), max(x))
- )
+ mmkin_parms, 1,
+ function(x) stats::runif(n, min(x), max(x)))
+ if (n == 1) dim(start_parms) <- c(1, length(start_parms))
res <- parallel::mclapply(1:n, function(x) {
update(object, degparms_start = start_parms[x, ], ...)
@@ -62,50 +90,3 @@ print.multistart <- function(x, ...) {
parms.multistart <- function(object, ...) {
t(sapply(object, parms))
}
-
-#' @rdname multistart
-#' @importFrom stats median
-#' @export
-parhist <- function(object, lpos = "topleft", main = "", ...) {
- orig <- attr(object, "orig")
- orig_parms <- parms(orig)
- start_parms <- orig$mean_dp_start
- all_parms <- parms(object)
- median_parms <- apply(all_parms, 2, median)
- all_scaled_parms <- t(apply(all_parms, 1, function(x) x / median_parms))
- orig_scaled_parms <- orig_parms / median_parms
- start_scaled_parms <- rep(NA_real_, length(orig_parms))
- names(start_scaled_parms) <- names(orig_parms)
- start_scaled_parms[names(start_parms)] <-
- start_parms / median_parms[names(start_parms)]
-
- boxplot(all_scaled_parms, log = "y", main = main, ...)
- points(orig_scaled_parms, col = 2, cex = 2)
- points(start_scaled_parms, col = 3, cex = 3)
- legend(lpos, inset = c(0.05, 0.05), bty = "n",
- pch = 1, col = 3:1, lty = c(NA, NA, 1),
- legend = c(
- "Starting parameters",
- "Converged parameters",
- "Multistart runs"))
-}
-
-#' @rdname multistart
-#' @importFrom KernSmooth bkde
-#' @export
-llhist <- function(object, breaks = "Sturges", lpos = "topleft", main = "", ...) {
- ll <- sapply(object, logLik)
- kde <- KernSmooth::bkde(ll)
- h <- hist(ll, freq = TRUE,
- xlim = range(kde$x),
- xlab = "", main = main,
- ylab = "Frequency of log likelihoods", breaks = breaks, ...)
-
- freq_factor <- h$counts[1] / h$density[1]
- lines(kde$x, freq_factor * kde$y)
- abline(v = logLik(attr(object, "orig")), col = 2)
- legend(lpos, inset = c(0.05, 0.05), bty = "n",
- lty = 1, col = c(2, 1),
- legend = c("original log likelihood",
- "kernel density estimate"))
-}
diff --git a/R/parhist.R b/R/parhist.R
new file mode 100644
index 00000000..62f67249
--- /dev/null
+++ b/R/parhist.R
@@ -0,0 +1,52 @@
+#' Plot parameter distributions from multistart objects
+#'
+#' Produces a boxplot with all parameters from the multiple runs, scaled using
+#' their medians. If parameter transformations were done by mkin (default in
+#' [saem]), then the parameters found by saem are on the transformed scale, and
+#' scaling is simply done by subtracting the median. If parameter
+#' transformations were done by saemix, scaling is done by dividing by the
+#' median, as in the paper by Duchesne et al. (2021).
+#'
+#' @param object The [multistart] object
+#' @param \dots Passed to [boxplot]
+#' @param main Title of the plot
+#' @param lpos Positioning of the legend.
+#' @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 [multistart]
+#' @importFrom stats median
+#' @export
+parhist <- function(object, lpos = "topleft", main = "", ...) {
+ orig <- attr(object, "orig")
+ orig_parms <- parms(orig)
+ start_parms <- orig$mean_dp_start
+ all_parms <- parms(object)
+ median_parms <- apply(all_parms, 2, median)
+ start_scaled_parms <- rep(NA_real_, length(orig_parms))
+ names(start_scaled_parms) <- names(orig_parms)
+
+ if (orig$transformations == "saemix") {
+ orig_scaled_parms <- orig_parms / median_parms
+ all_scaled_parms <- t(apply(all_parms, 1, function(x) x / median_parms))
+ start_scaled_parms[names(start_parms)] <-
+ start_parms / median_parms[names(start_parms)]
+ boxplot(all_scaled_parms, log = "y", main = main, ...)
+ } else {
+ orig_scaled_parms <- orig_parms - median_parms
+ all_scaled_parms <- t(apply(all_parms, 1, function(x) x - median_parms))
+ start_scaled_parms[names(start_parms)] <-
+ start_parms - median_parms[names(start_parms)]
+ boxplot(all_scaled_parms, main = main, ...)
+ }
+
+ points(orig_scaled_parms, col = 2, cex = 2)
+ points(start_scaled_parms, col = 3, cex = 3)
+ legend(lpos, inset = c(0.05, 0.05), bty = "n",
+ pch = 1, col = 3:1, lty = c(NA, NA, 1),
+ legend = c(
+ "Starting parameters",
+ "Converged parameters",
+ "Multistart runs"))
+}
diff --git a/_pkgdown.yml b/_pkgdown.yml
index 51743488..0b7dbb0e 100644
--- a/_pkgdown.yml
+++ b/_pkgdown.yml
@@ -140,10 +140,12 @@ navbar:
href: articles/FOCUS_L.html
- text: Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
href: articles/web_only/dimethenamid_2018.html
- - text: Example evaluation of FOCUS Example Dataset Z
- href: articles/web_only/FOCUS_Z.html
+ - text: Short demo of the multistart method
+ href: articles/web_only/multistart.html
- text: Performance benefit by using compiled model definitions in mkin
href: articles/web_only/compiled_models.html
+ - text: Example evaluation of FOCUS Example Dataset Z
+ href: articles/web_only/FOCUS_Z.html
- text: Calculation of time weighted average concentrations with mkin
href: articles/twa.html
- text: Example evaluation of NAFTA SOP Attachment examples
diff --git a/docs/dev/articles/index.html b/docs/dev/articles/index.html
index 526708a4..551e9c98 100644
--- a/docs/dev/articles/index.html
+++ b/docs/dev/articles/index.html
@@ -44,11 +44,14 @@
Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
- Example evaluation of FOCUS Example Dataset Z
+ Short demo of the multistart method
Performance benefit by using compiled model definitions in mkin
+
+ Example evaluation of FOCUS Example Dataset Z
+
Calculation of time weighted average concentrations with mkin
@@ -102,6 +105,8 @@
Example evaluations of the dimethenamid data from 2018
+ Short demo of the multistart method
+
diff --git a/docs/dev/articles/web_only/multistart.html b/docs/dev/articles/web_only/multistart.html
new file mode 100644
index 00000000..a119a0d6
--- /dev/null
+++ b/docs/dev/articles/web_only/multistart.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+Short demo of the multistart method • mkin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is a vignette, because the multistart method does not seem to work in pkgdown example code and I wanted to show the plots in the online docs. The dimethenamid data from 2018 from seven soils is used as example data.
+
+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
+
First, we check the DFOP model with the two-component error model and random effects for all degradation parameters.
+
+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 )
+parhist ( f_saem_full_multi , lpos = "bottomright" )
+
+
We see that not all variability parameters are identifiable, most problematic is the variance of k2. So we reduce the parameter distribution model by removing the intersoil variability for this parameter.
+
+f_saem_reduced <- update ( f_saem_full , covariance.model = diag ( c ( 1 , 1 , 0 , 1 ) ) )
+f_saem_reduced_multi <- multistart ( f_saem_reduced , n = 16 , cores = 16 )
+parhist ( f_saem_reduced_multi , lpos = "bottomright" )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/dev/articles/web_only/multistart_files/accessible-code-block-0.0.1/empty-anchor.js b/docs/dev/articles/web_only/multistart_files/accessible-code-block-0.0.1/empty-anchor.js
new file mode 100644
index 00000000..ca349fd6
--- /dev/null
+++ b/docs/dev/articles/web_only/multistart_files/accessible-code-block-0.0.1/empty-anchor.js
@@ -0,0 +1,15 @@
+// Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) -->
+// v0.0.1
+// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020.
+
+document.addEventListener('DOMContentLoaded', function() {
+ const codeList = document.getElementsByClassName("sourceCode");
+ for (var i = 0; i < codeList.length; i++) {
+ var linkList = codeList[i].getElementsByTagName('a');
+ for (var j = 0; j < linkList.length; j++) {
+ if (linkList[j].innerHTML === "") {
+ linkList[j].setAttribute('aria-hidden', 'true');
+ }
+ }
+ }
+});
diff --git a/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-2-1.png b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-2-1.png
new file mode 100644
index 00000000..e30e56f0
Binary files /dev/null and b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-2-1.png differ
diff --git a/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png
new file mode 100644
index 00000000..3ed0d546
Binary files /dev/null and b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png differ
diff --git a/docs/dev/authors.html b/docs/dev/authors.html
index 60053796..35ae54bd 100644
--- a/docs/dev/authors.html
+++ b/docs/dev/authors.html
@@ -44,11 +44,14 @@
Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
- Example evaluation of FOCUS Example Dataset Z
+ Short demo of the multistart method
Performance benefit by using compiled model definitions in mkin
+
+ Example evaluation of FOCUS Example Dataset Z
+
Calculation of time weighted average concentrations with mkin
diff --git a/docs/dev/index.html b/docs/dev/index.html
index 7d3abbb2..5257b590 100644
--- a/docs/dev/index.html
+++ b/docs/dev/index.html
@@ -74,11 +74,14 @@
Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
- Example evaluation of FOCUS Example Dataset Z
+ Short demo of the multistart method
Performance benefit by using compiled model definitions in mkin
+
+ Example evaluation of FOCUS Example Dataset Z
+
Calculation of time weighted average concentrations with mkin
diff --git a/docs/dev/news/index.html b/docs/dev/news/index.html
index c8863ec6..029b6999 100644
--- a/docs/dev/news/index.html
+++ b/docs/dev/news/index.html
@@ -44,11 +44,14 @@
Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
- Example evaluation of FOCUS Example Dataset Z
+ Short demo of the multistart method
Performance benefit by using compiled model definitions in mkin
+
+ Example evaluation of FOCUS Example Dataset Z
+
Calculation of time weighted average concentrations with mkin
diff --git a/docs/dev/pkgdown.yml b/docs/dev/pkgdown.yml
index 1fee5d96..6cd0f89b 100644
--- a/docs/dev/pkgdown.yml
+++ b/docs/dev/pkgdown.yml
@@ -11,7 +11,8 @@ articles:
benchmarks: web_only/benchmarks.html
compiled_models: web_only/compiled_models.html
dimethenamid_2018: web_only/dimethenamid_2018.html
-last_built: 2022-09-16T08:50Z
+ multistart: web_only/multistart.html
+last_built: 2022-09-16T19:00Z
urls:
reference: https://pkgdown.jrwb.de/mkin/reference
article: https://pkgdown.jrwb.de/mkin/articles
diff --git a/docs/dev/reference/index.html b/docs/dev/reference/index.html
index 3372a69a..b7a5de92 100644
--- a/docs/dev/reference/index.html
+++ b/docs/dev/reference/index.html
@@ -44,11 +44,14 @@
Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
- Example evaluation of FOCUS Example Dataset Z
+ Short demo of the multistart method
Performance benefit by using compiled model definitions in mkin
+
+ Example evaluation of FOCUS Example Dataset Z
+
Calculation of time weighted average concentrations with mkin
@@ -234,9 +237,17 @@ degradation models and one or more error models
Confidence intervals for parameters in saem.mmkin objects
- multistart()
print(<multistart> )
parms(<multistart> )
parhist()
llhist()
+ multistart()
print(<multistart> )
parms(<multistart> )
Perform a hierarchical model fit with multiple starting values
+
+ llhist()
+
+ Plot the distribution of log likelihoods from multistart objects
+
+ parhist()
+
+ Plot parameter distributions from multistart objects
Datasets and known results
diff --git a/docs/dev/reference/llhist.html b/docs/dev/reference/llhist.html
new file mode 100644
index 00000000..2eb77a82
--- /dev/null
+++ b/docs/dev/reference/llhist.html
@@ -0,0 +1,147 @@
+
+Plot the distribution of log likelihoods from multistart objects — llhist • mkin
+
+
+
+
+
+
+
+
+
Produces a histogram of log-likelihoods, and an overlayed kernel density
+estimate. In addition, the likelihood of the original fit is shown as
+a red vertical line.
+
+
+
+
llhist ( object , breaks = "Sturges" , lpos = "topleft" , main = "" , ... )
+
+
+
+
Arguments
+
object
+The multistart object
+
+
+breaks
+Passed to hist
+
+
+lpos
+Positioning of the legend.
+
+
+main
+Title of the plot
+
+
+...
+Passed to hist
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/dev/reference/multistart.html b/docs/dev/reference/multistart.html
index 9f2d297e..c85e6d1e 100644
--- a/docs/dev/reference/multistart.html
+++ b/docs/dev/reference/multistart.html
@@ -49,11 +49,14 @@ mixed-effects models by Duchesne et al (2021)."> Example evaluations of dimethenamid data from 2018 with nonlinear mixed-effects models
- Example evaluation of FOCUS Example Dataset Z
+ Short demo of the multistart method
Performance benefit by using compiled model definitions in mkin
+
+ Example evaluation of FOCUS Example Dataset Z
+
Calculation of time weighted average concentrations with mkin
@@ -106,11 +109,7 @@ mixed-effects models by Duchesne et al (2021).
print ( x , ... )
# S3 method for multistart
-parms ( object , ... )
-
-parhist ( object , lpos = "topleft" , main = "" , ... )
-
-llhist ( object , breaks = "Sturges" , lpos = "topleft" , main = "" , ... )
+parms ( object , ... )
@@ -129,25 +128,12 @@ used?
...
-
Passed to the update function, or to the basic plotting
-function in the case of the graphical functions.
+
Passed to the update function.
x
The multistart object to print
-
-
lpos
-
Positioning of the legend.
-
-
-
main
-
title of the plot
-
-
-
breaks
-
Passed to hist
-
Value
@@ -160,6 +146,11 @@ function in the case of the graphical functions.
Details
Currently, parallel execution of the fits is only supported using
parallel::mclapply , i.e. not available on Windows.
+
In case the online version of this help page contains error messages
+in the example code and no plots, this is due to the multistart method
+not working when called by pkgdown. Please refer to the
+online vignette
+in this case.
References
@@ -168,7 +159,40 @@ 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.
+
+
+
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 )
+#> Warning: all scheduled cores encountered errors in user code
+parhist ( f_saem_full_multi , lpos = "bottomright" )
+#> Error in UseMethod("parms", object): no applicable method for 'parms' applied to an object of class "try-error"
+
+f_saem_reduced <- update ( f_saem_full , covariance.model = diag ( c ( 1 , 1 , 0 , 1 ) ) )
+f_saem_reduced_multi <- multistart ( f_saem_reduced , n = 16 , cores = 16 )
+#> Warning: all scheduled cores encountered errors in user code
+parhist ( f_saem_reduced_multi , lpos = "bottomright" )
+#> Error in UseMethod("parms", object): no applicable method for 'parms' applied to an object of class "try-error"
+# }
+
+