From 9a1136dc5550663b352239502a39a07601959644 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 2 Dec 2022 08:00:40 +0100 Subject: Update online docs --- docs/dev/reference/mhmkin.html | 103 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 91 insertions(+), 12 deletions(-) (limited to 'docs/dev/reference/mhmkin.html') diff --git a/docs/dev/reference/mhmkin.html b/docs/dev/reference/mhmkin.html index e72d17f9..1328aa48 100644 --- a/docs/dev/reference/mhmkin.html +++ b/docs/dev/reference/mhmkin.html @@ -113,7 +113,6 @@ mhmkin( backend = "saemix", algorithm = "saem", no_random_effect = NULL, - auto_ranef_threshold = 3, ..., cores = if (Sys.info()["sysname"] == "Windows") 1 else parallel::detectCores(), cluster = NULL @@ -150,16 +149,14 @@ supported

no_random_effect
-

Default is NULL and will be passed to saem. If -you specify "auto", random effects are only included if the number -of datasets in which the parameter passed the t-test is at least 'auto_ranef_threshold'. -Beware that while this may make for convenient model reduction or even -numerical stability of the algorithm, it will likely lead to -underparameterised models.

- - -
auto_ranef_threshold
-

See 'no_random_effect.

+

Default is NULL and will be passed to saem. If a +character vector is supplied, it will be passed to all calls to saem, +which will exclude random effects for all matching parameters. Alternatively, +a list of character vectors or an object of class illparms.mhmkin can be +specified. They have to have the same dimensions that the return object of +the current call will have, i.e. the number of rows must match the number +of degradation models in the mmkin object(s), and the number of columns must +match the number of error models used in the mmkin object(s).

cores
@@ -203,7 +200,7 @@ and the error model names for the second index (column index), with class attribute 'mhmkin'.

-

An object of class mhmkin.

+

An object inheriting from mhmkin.

See also

@@ -214,6 +211,88 @@ attribute 'mhmkin'.

Johannes Ranke

+
+

Examples

+
# \dontrun{
+# We start with separate evaluations of all the first six datasets with two
+# degradation models and two error models
+f_sep_const <- mmkin(c("SFO", "FOMC"), ds_fomc[1:6], cores = 2, quiet = TRUE)
+f_sep_tc <- update(f_sep_const, error_model = "tc")
+# The mhmkin function sets up hierarchical degradation models aka
+# nonlinear mixed-effects models for all four combinations, specifying
+# uncorrelated random effects for all degradation parameters
+f_saem_1 <- mhmkin(list(f_sep_const, f_sep_tc), cores = 2)
+status(f_saem_1)
+#>            error
+#> degradation const tc
+#>        SFO  OK    OK
+#>        FOMC OK    OK
+#> 
+#> OK: Fit terminated successfully
+# The 'illparms' function shows that in all hierarchical fits, at least
+# one random effect is ill-defined (the confidence interval for the
+# random effect expressed as standard deviation includes zero)
+illparms(f_saem_1)
+#>            error
+#> degradation const        tc                        
+#>        SFO  sd(parent_0) sd(parent_0)              
+#>        FOMC sd(log_beta) sd(parent_0), sd(log_beta)
+# Therefore we repeat the fits, excluding the ill-defined random effects
+f_saem_2 <- update(f_saem_1, no_random_effect = illparms(f_saem_1))
+status(f_saem_2)
+#>            error
+#> degradation const tc
+#>        SFO  OK    OK
+#>        FOMC OK    OK
+#> 
+#> OK: Fit terminated successfully
+illparms(f_saem_2)
+#>            error
+#> degradation const tc
+#>        SFO          
+#>        FOMC         
+# Model comparisons show that FOMC with two-component error is preferable,
+# and confirms our reduction of the default parameter model
+anova(f_saem_1)
+#> Data: 95 observations of 1 variable(s) grouped in 6 datasets
+#> 
+#>            npar    AIC    BIC     Lik
+#> SFO const     5 574.40 573.35 -282.20
+#> SFO tc        6 543.72 542.47 -265.86
+#> FOMC const    7 489.67 488.22 -237.84
+#> FOMC tc       8 406.11 404.44 -195.05
+anova(f_saem_2)
+#> Data: 95 observations of 1 variable(s) grouped in 6 datasets
+#> 
+#>            npar    AIC    BIC     Lik
+#> SFO const     4 572.22 571.39 -282.11
+#> SFO tc        5 541.63 540.59 -265.81
+#> FOMC const    6 487.38 486.13 -237.69
+#> FOMC tc       6 402.12 400.88 -195.06
+# The convergence plot for the selected model looks fine
+saemix::plot(f_saem_2[["FOMC", "tc"]]$so, plot.type = "convergence")
+
+# The plot of predictions versus data shows that we have a pretty data-rich
+# situation with homogeneous distribution of residuals, because we used the
+# same degradation model, error model and parameter distribution model that
+# was used in the data generation.
+plot(f_saem_2[["FOMC", "tc"]])
+
+# We can specify the same parameter model reductions manually
+no_ranef <- list("parent_0", "log_beta", "parent_0", c("parent_0", "log_beta"))
+dim(no_ranef) <- c(2, 2)
+f_saem_2m <- update(f_saem_1, no_random_effect = no_ranef)
+anova(f_saem_2m)
+#> Data: 95 observations of 1 variable(s) grouped in 6 datasets
+#> 
+#>            npar    AIC    BIC     Lik
+#> SFO const     4 572.22 571.39 -282.11
+#> SFO tc        5 541.63 540.59 -265.81
+#> FOMC const    6 487.38 486.13 -237.69
+#> FOMC tc       6 402.12 400.88 -195.06
+# }
+
+