From 37cb2b4b793fa699d033632158e3604c37678c20 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Sat, 7 Nov 2020 13:31:57 +0100 Subject: Update static docs for dev version --- docs/dev/reference/saem.html | 316 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 docs/dev/reference/saem.html (limited to 'docs/dev/reference/saem.html') diff --git a/docs/dev/reference/saem.html b/docs/dev/reference/saem.html new file mode 100644 index 00000000..f883eb11 --- /dev/null +++ b/docs/dev/reference/saem.html @@ -0,0 +1,316 @@ + + + + + + + + +Fit nonlinear mixed models with SAEM — saem • mkin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + +
+

This function uses saemix::saemix() as a backend for fitting nonlinear mixed +effects models created from mmkin row objects using the stochastic approximation +to the expectation maximisation algorithm (SAEM).

+
+ +
saem(object, control, ...)
+
+# S3 method for mmkin
+saem(
+  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

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
object

An mmkin row object containing several fits of the same +mkinmod model to different datasets

control

Passed to saemix::saemix

...

Further parameters passed to saemix::saemixData +and saemix::saemixModel.

cores

The number of cores to be used for multicore processing using +parallel::mclapply(). Using more than 1 core is experimental and may +lead to uncontrolled forking, apparently depending on the BLAS version +used.

verbose

Should we print information about created objects?

suppressPlot

Should we suppress any plotting that is done +by the saemix function?

+ +

Value

+ +

An saemix::SaemixObject.

+

An saemix::SaemixModel object.

+

An saemix::SaemixData object.

+

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 mkinfit.

+

Starting values for the fixed effects (population mean parameters, argument +psi0 of saemix::saemixModel() are the mean values of the parameters found +using 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) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:14:50 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:14:52 2020"
+f_mmkin_parent <- mmkin(c("SFO", "FOMC", "DFOP"), ds, quiet = TRUE) +f_saem_sfo <- saem(f_mmkin_parent["SFO", ]) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:14:53 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:14:55 2020"
f_saem_fomc <- saem(f_mmkin_parent["FOMC", ]) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:14:55 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:14:57 2020"
f_saem_dfop <- saem(f_mmkin_parent["DFOP", ]) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:14:57 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:15:00 2020"
+# The returned saem.mmkin object contains an SaemixObject, we can use +# functions from saemix +library(saemix) +
#> Package saemix, version 3.1.9000 +#> please direct bugs, questions and feedback to emmanuelle.comets@inserm.fr
compare.saemix(list(f_saem_sfo$so, f_saem_fomc$so, f_saem_dfop$so)) +
#> Likelihoods computed by importance sampling
#> AIC BIC +#> 1 624.2428 622.2900 +#> 2 467.7644 465.0305 +#> 3 491.3541 487.8391
+f_mmkin_parent_tc <- update(f_mmkin_parent, error_model = "tc") +f_saem_fomc_tc <- saem(f_mmkin_parent_tc["FOMC", ]) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:15:02 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:15:07 2020"
compare.saemix(list(f_saem_fomc$so, f_saem_fomc_tc$so)) +
#> Likelihoods computed by importance sampling
#> AIC BIC +#> 1 467.7644 465.0305 +#> 2 469.4862 466.3617
+dfop_sfo <- mkinmod(parent = mkinsub("DFOP", "A1"), + A1 = mkinsub("SFO")) +
#> Successfully compiled differential equation model from auto-generated C code.
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) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:15:08 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:19:07 2020"
+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) +
#> Running main SAEM algorithm +#> [1] "Sat Nov 7 13:19:26 2020" +#> .... +#> Minimisation finished +#> [1] "Sat Nov 7 13:27:33 2020"
compare.saemix(list(f_saemix$so, f_saemix_des$so)) +
#> Error in compare.saemix(list(f_saemix$so, f_saemix_des$so)): object 'f_saemix' not found
# } +
+
+ +
+ + + +
+ + + + + + + + -- cgit v1.2.1