From fd205e13061de8abc595d266f3b0c7650773d442 Mon Sep 17 00:00:00 2001
From: Johannes Ranke 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. First, we check the DFOP model with the two-component error model and random effects for all degradation parameters. 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.Short demo of the multistart method
+ Johannes Ranke
+
+ Last change 16 September 2022 (rebuilt 2022-09-16)
+
+ Source: vignettes/web_only/multistart.rmd
+ multistart.rmd
+
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")
Confidence intervals for parameters in saem.mmkin objects
multistart()
print(<multistart>)
parms(<multistart>)
parhist()
llhist()
Perform a hierarchical model fit with multiple starting values
Plot the distribution of log likelihoods from multistart objects
Plot parameter distributions from multistart objects
R/llhist.R
+ llhist.Rd
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 = "", ...)
The multistart object
Passed to hist
Positioning of the legend.
Title of the plot
Passed to hist
Passed to the update function, or to the basic plotting -function in the case of the graphical functions.
Passed to the update function.
The multistart object to print
Positioning of the legend.
title of the plot
Passed to hist
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.
# \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"
+# }
+