aboutsummaryrefslogtreecommitdiff
path: root/vignettes
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2022-07-08 17:39:44 +0200
committerJohannes Ranke <jranke@uni-bremen.de>2022-07-08 17:39:44 +0200
commitf35e0b3d3b9f41bee2f5cc357afcb69e3aadad15 (patch)
tree675d90c517a0e8a32c7c3af8ef631a5c588503d4 /vignettes
parent16a7ed9548b37fe3c68c993651226fdc2dda6402 (diff)
Store DLL info in mkinmod objects for performance
Thanks to Tomas Kalibera for his analysis of the problem on the r-package-devel mailing list and for the suggestion on how to fix it. See the current benchmark vignette for the new data on mkin 1.1.1 with R 4.2.1, with unprecedented performance.
Diffstat (limited to 'vignettes')
-rw-r--r--vignettes/FOCUS_D.html24
-rw-r--r--vignettes/FOCUS_L.html56
-rw-r--r--vignettes/web_only/benchmarks.R112
-rw-r--r--vignettes/web_only/benchmarks.html53
-rw-r--r--vignettes/web_only/dimethenamid_2018.R152
-rw-r--r--vignettes/web_only/mkin_benchmarks.rdabin1359 -> 1419 bytes
6 files changed, 83 insertions, 314 deletions
diff --git a/vignettes/FOCUS_D.html b/vignettes/FOCUS_D.html
index 1b9d2e23..9f768b06 100644
--- a/vignettes/FOCUS_D.html
+++ b/vignettes/FOCUS_D.html
@@ -255,6 +255,7 @@ if (window.hljs) {
+
<style type="text/css">
.main-container {
max-width: 940px;
@@ -276,6 +277,9 @@ button.code-folding-btn:focus {
summary {
display: list-item;
}
+details > summary > p:only-child {
+ display: inline;
+}
pre code {
padding: 0;
}
@@ -360,7 +364,7 @@ pre code {
<h1 class="title toc-ignore">Example evaluation of FOCUS Example Dataset D</h1>
<h4 class="author">Johannes Ranke</h4>
-<h4 class="date">Last change 31 January 2019 (rebuilt 2022-03-02)</h4>
+<h4 class="date">Last change 31 January 2019 (rebuilt 2022-07-08)</h4>
</div>
@@ -435,9 +439,9 @@ print(FOCUS_2006_D)</code></pre>
<p>A comprehensive report of the results is obtained using the <code>summary</code> method for <code>mkinfit</code> objects.</p>
<pre class="r"><code>summary(fit)</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.1.2
-## Date of fit: Wed Mar 2 16:28:06 2022
-## Date of summary: Wed Mar 2 16:28:07 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:37 2022
+## Date of summary: Fri Jul 8 15:44:38 2022
##
## Equations:
## d_parent/dt = - k_parent * parent
@@ -445,7 +449,7 @@ print(FOCUS_2006_D)</code></pre>
##
## Model predictions using solution type analytical
##
-## Fitted using 401 model solutions performed in 0.149 s
+## Fitted using 401 model solutions performed in 0.13 s
##
## Error model: Constant variance
##
@@ -488,11 +492,11 @@ print(FOCUS_2006_D)</code></pre>
##
## Parameter correlation:
## parent_0 log_k_parent log_k_m1 f_parent_qlogis sigma
-## parent_0 1.000e+00 5.174e-01 -1.688e-01 -5.471e-01 -1.172e-06
-## log_k_parent 5.174e-01 1.000e+00 -3.263e-01 -5.426e-01 -8.483e-07
-## log_k_m1 -1.688e-01 -3.263e-01 1.000e+00 7.478e-01 8.205e-07
-## f_parent_qlogis -5.471e-01 -5.426e-01 7.478e-01 1.000e+00 1.305e-06
-## sigma -1.172e-06 -8.483e-07 8.205e-07 1.305e-06 1.000e+00
+## parent_0 1.000e+00 5.174e-01 -1.688e-01 -5.471e-01 -1.174e-06
+## log_k_parent 5.174e-01 1.000e+00 -3.263e-01 -5.426e-01 -8.492e-07
+## log_k_m1 -1.688e-01 -3.263e-01 1.000e+00 7.478e-01 8.220e-07
+## f_parent_qlogis -5.471e-01 -5.426e-01 7.478e-01 1.000e+00 1.307e-06
+## sigma -1.174e-06 -8.492e-07 8.220e-07 1.307e-06 1.000e+00
##
## Backtransformed parameters:
## Confidence intervals for internally transformed parameters are asymmetric.
diff --git a/vignettes/FOCUS_L.html b/vignettes/FOCUS_L.html
index 45d264b4..13d0d9eb 100644
--- a/vignettes/FOCUS_L.html
+++ b/vignettes/FOCUS_L.html
@@ -1517,7 +1517,7 @@ div.tocify {
<h1 class="title toc-ignore">Example evaluation of FOCUS Laboratory Data L1 to L3</h1>
<h4 class="author">Johannes Ranke</h4>
-<h4 class="date">Last change 17 November 2016 (rebuilt 2022-05-18)</h4>
+<h4 class="date">Last change 18 May 2022 (rebuilt 2022-07-08)</h4>
</div>
@@ -1537,16 +1537,16 @@ FOCUS_2006_L1_mkin &lt;- mkin_wide_to_long(FOCUS_2006_L1)</code></pre>
<pre class="r"><code>m.L1.SFO &lt;- mkinfit(&quot;SFO&quot;, FOCUS_2006_L1_mkin, quiet = TRUE)
summary(m.L1.SFO)</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:22 2022
-## Date of summary: Wed May 18 20:03:22 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:39 2022
+## Date of summary: Fri Jul 8 15:44:39 2022
##
## Equations:
## d_parent/dt = - k_parent * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 133 model solutions performed in 0.032 s
+## Fitted using 133 model solutions performed in 0.029 s
##
## Error model: Constant variance
##
@@ -1636,16 +1636,16 @@ plot(m.L1.FOMC, show_errmin = TRUE, main = &quot;FOCUS L1 - FOMC&quot;)</code></
<pre><code>## Warning in cov2cor(ans$covar): diag(.) had 0 or NA entries; non-finite result is
## doubtful</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:22 2022
-## Date of summary: Wed May 18 20:03:22 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:39 2022
+## Date of summary: Fri Jul 8 15:44:40 2022
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 357 model solutions performed in 0.07 s
+## Fitted using 357 model solutions performed in 0.071 s
##
## Error model: Constant variance
##
@@ -1736,16 +1736,16 @@ plot(m.L2.FOMC, show_residuals = TRUE,
<p><img src="data:image/png;base64,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" /><!-- --></p>
<pre class="r"><code>summary(m.L2.FOMC, data = FALSE)</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:22 2022
-## Date of summary: Wed May 18 20:03:22 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:40 2022
+## Date of summary: Fri Jul 8 15:44:40 2022
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 239 model solutions performed in 0.043 s
+## Fitted using 239 model solutions performed in 0.045 s
##
## Error model: Constant variance
##
@@ -1814,9 +1814,9 @@ plot(m.L2.DFOP, show_residuals = TRUE, show_errmin = TRUE,
<p><img src="data:image/png;base64,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" /><!-- --></p>
<pre class="r"><code>summary(m.L2.DFOP, data = FALSE)</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:23 2022
-## Date of summary: Wed May 18 20:03:23 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:40 2022
+## Date of summary: Fri Jul 8 15:44:40 2022
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
@@ -1825,7 +1825,7 @@ plot(m.L2.DFOP, show_residuals = TRUE, show_errmin = TRUE,
##
## Model predictions using solution type analytical
##
-## Fitted using 581 model solutions performed in 0.118 s
+## Fitted using 581 model solutions performed in 0.119 s
##
## Error model: Constant variance
##
@@ -1914,9 +1914,9 @@ plot(mm.L3)</code></pre>
<p>We can extract the summary and plot for <em>e.g.</em> the DFOP fit, using square brackets for indexing which will result in the use of the summary and plot functions working on mkinfit objects.</p>
<pre class="r"><code>summary(mm.L3[[&quot;DFOP&quot;, 1]])</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:23 2022
-## Date of summary: Wed May 18 20:03:23 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:40 2022
+## Date of summary: Fri Jul 8 15:44:41 2022
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
@@ -1925,7 +1925,7 @@ plot(mm.L3)</code></pre>
##
## Model predictions using solution type analytical
##
-## Fitted using 376 model solutions performed in 0.073 s
+## Fitted using 376 model solutions performed in 0.072 s
##
## Error model: Constant variance
##
@@ -2022,9 +2022,9 @@ plot(mm.L4)</code></pre>
<p>The <span class="math inline"><em>χ</em><sup>2</sup></span> error level of 3.3% as well as the plot suggest that the SFO model fits very well. The error level at which the <span class="math inline"><em>χ</em><sup>2</sup></span> test passes is slightly lower for the FOMC model. However, the difference appears negligible.</p>
<pre class="r"><code>summary(mm.L4[[&quot;SFO&quot;, 1]], data = FALSE)</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:23 2022
-## Date of summary: Wed May 18 20:03:23 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:41 2022
+## Date of summary: Fri Jul 8 15:44:41 2022
##
## Equations:
## d_parent/dt = - k_parent * parent
@@ -2086,16 +2086,16 @@ plot(mm.L4)</code></pre>
## parent 106 352</code></pre>
<pre class="r"><code>summary(mm.L4[[&quot;FOMC&quot;, 1]], data = FALSE)</code></pre>
<pre><code>## mkin version used for fitting: 1.1.0
-## R version used for fitting: 4.2.0
-## Date of fit: Wed May 18 20:03:23 2022
-## Date of summary: Wed May 18 20:03:23 2022
+## R version used for fitting: 4.2.1
+## Date of fit: Fri Jul 8 15:44:41 2022
+## Date of summary: Fri Jul 8 15:44:41 2022
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 224 model solutions performed in 0.04 s
+## Fitted using 224 model solutions performed in 0.041 s
##
## Error model: Constant variance
##
diff --git a/vignettes/web_only/benchmarks.R b/vignettes/web_only/benchmarks.R
deleted file mode 100644
index c9ba5be3..00000000
--- a/vignettes/web_only/benchmarks.R
+++ /dev/null
@@ -1,112 +0,0 @@
-## ---- include = FALSE---------------------------------------------------------
-library(knitr)
-opts_chunk$set(tidy = FALSE, cache = FALSE)
-library("mkin")
-
-## ----include = FALSE----------------------------------------------------------
-cpu_model <- benchmarkme::get_cpu()$model_name
-# Abbreviate CPU identifiers
-cpu_model <- gsub("AMD ", "", cpu_model)
-cpu_model <- gsub("Intel\\(R\\) Core\\(TM\\) ", "", cpu_model)
-cpu_model <- gsub(" Eight-Core Processor", "", cpu_model)
-cpu_model <- gsub(" CPU @ 2.50GHz", "", cpu_model)
-
-operating_system <- Sys.info()[["sysname"]]
-mkin_version <- as.character(packageVersion("mkin"))
-R_version <- paste0(R.version$major, ".", R.version$minor)
-system_string <- paste0(operating_system, ", ", cpu_model, ", mkin ", mkin_version, ", R ", R_version)
-
-benchmark_path = normalizePath("~/git/mkin/vignettes/web_only/mkin_benchmarks.rda")
-load(benchmark_path)
-
-# Used for reformatting the data on 2022-06-30
-# mkin_benchmarks[, "R"] <- NA
-# mkin_benchmarks <- mkin_benchmarks[c(2, 1, 15, 3, 4:14)]
-# mkin_benchmarks[, "CPU"] <- gsub("AMD.*", "Ryzen 7 1700", mkin_benchmarks[, "CPU"])
-# mkin_benchmarks[, "CPU"] <- gsub("Intel.*", "i7-4710MQ", mkin_benchmarks[, "CPU"])
-# rownames(mkin_benchmarks) <- gsub("AMD Ryzen 7 1700 Eight-Core Processor", "Ryzen 7 1700", rownames(mkin_benchmarks))
-# rownames(mkin_benchmarks) <- gsub("Intel\\(R\\) Core\\(TM\\) i7-4710MQ CPU @ 2.50GHz", "i7-4710MQ", rownames(mkin_benchmarks))
-# rownames(mkin_benchmarks) <- gsub(" version", "", rownames(mkin_benchmarks))
-
-mkin_benchmarks[system_string, c("CPU", "OS", "mkin", "R")] <-
- c(cpu_model, operating_system, mkin_version, R_version)
-
-if (mkin_version > "0.9.48.1") {
- mmkin_bench <- function(models, datasets, error_model = "const") {
- mmkin(models, datasets, error_model = error_model, cores = 1, quiet = TRUE)
- }
-} else {
- mmkin_bench <- function(models, datasets, error_model = NULL) {
- mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)
- }
-}
-
-## ----parent_only, warning = FALSE---------------------------------------------
-FOCUS_C <- FOCUS_2006_C
-FOCUS_D <- subset(FOCUS_2006_D, value != 0)
-parent_datasets <- list(FOCUS_C, FOCUS_D)
-
-t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), parent_datasets))[["elapsed"]]
-t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), parent_datasets,
- error_model = "tc"))[["elapsed"]]
-
-## ----one_metabolite, message = FALSE------------------------------------------
-SFO_SFO <- mkinmod(
- parent = mkinsub("SFO", "m1"),
- m1 = mkinsub("SFO"))
-FOMC_SFO <- mkinmod(
- parent = mkinsub("FOMC", "m1"),
- m1 = mkinsub("SFO"))
-DFOP_SFO <- mkinmod(
- parent = mkinsub("FOMC", "m1"),
- m1 = mkinsub("SFO"))
-t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D)))[["elapsed"]]
-t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D),
- error_model = "tc"))[["elapsed"]]
-t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D),
- error_model = "obs"))[["elapsed"]]
-
-## ----two_metabolites, message = FALSE-----------------------------------------
-m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),
- M1 = mkinsub("SFO", "M2"),
- M2 = mkinsub("SFO"),
- use_of_ff = "max", quiet = TRUE)
-
-m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")),
- M1 = mkinsub("SFO"),
- M2 = mkinsub("SFO"),
- use_of_ff = "max", quiet = TRUE)
-
-SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data
-
-DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data
-
-t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))[["elapsed"]]
-t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))[["elapsed"]]
-
-t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a),
- error_model = "tc"))[["elapsed"]]
-t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c),
- error_model = "tc"))[["elapsed"]]
-
-t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a),
- error_model = "obs"))[["elapsed"]]
-t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c),
- error_model = "obs"))[["elapsed"]]
-
-## ----results------------------------------------------------------------------
-mkin_benchmarks[system_string, paste0("t", 1:11)] <-
- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
-save(mkin_benchmarks, file = benchmark_path)
-# Hide rownames from kable for results section
-rownames(mkin_benchmarks) <- NULL
-
-## ---- echo = FALSE------------------------------------------------------------
-kable(mkin_benchmarks[, c(1:4, 5:6)])
-
-## ---- echo = FALSE------------------------------------------------------------
-kable(mkin_benchmarks[, c(1:4, 7:9)])
-
-## ---- echo = FALSE------------------------------------------------------------
-kable(mkin_benchmarks[, c(1:4, 10:15)])
-
diff --git a/vignettes/web_only/benchmarks.html b/vignettes/web_only/benchmarks.html
index a127a7b4..9923a8fa 100644
--- a/vignettes/web_only/benchmarks.html
+++ b/vignettes/web_only/benchmarks.html
@@ -1599,7 +1599,7 @@ div.tocify {
<h1 class="title toc-ignore">Benchmark timings for mkin</h1>
<h4 class="author">Johannes Ranke</h4>
-<h4 class="date">Last change 1 July 2022 (rebuilt 2022-07-01)</h4>
+<h4 class="date">Last change 1 July 2022 (rebuilt 2022-07-08)</h4>
</div>
@@ -1775,8 +1775,8 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="left">Ryzen 7 1700</td>
<td align="left">4.2.1</td>
<td align="left">1.1.0</td>
-<td align="right">1.807</td>
-<td align="right">3.488</td>
+<td align="right">1.842</td>
+<td align="right">3.453</td>
</tr>
<tr class="odd">
<td align="left">Linux</td>
@@ -1794,6 +1794,14 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="right">1.877</td>
<td align="right">3.906</td>
</tr>
+<tr class="odd">
+<td align="left">Linux</td>
+<td align="left">i7-4710MQ</td>
+<td align="left">4.2.1</td>
+<td align="left">1.1.1</td>
+<td align="right">1.592</td>
+<td align="right">3.101</td>
+</tr>
</tbody>
</table>
</div>
@@ -1917,9 +1925,9 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="left">Ryzen 7 1700</td>
<td align="left">4.2.1</td>
<td align="left">1.1.0</td>
-<td align="right">3.788</td>
-<td align="right">19.727</td>
-<td align="right">8.846</td>
+<td align="right">3.802</td>
+<td align="right">21.247</td>
+<td align="right">8.461</td>
</tr>
<tr class="odd">
<td align="left">Linux</td>
@@ -1939,6 +1947,15 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="right">8.058</td>
<td align="right">3.339</td>
</tr>
+<tr class="odd">
+<td align="left">Linux</td>
+<td align="left">i7-4710MQ</td>
+<td align="left">4.2.1</td>
+<td align="left">1.1.1</td>
+<td align="right">1.198</td>
+<td align="right">5.740</td>
+<td align="right">2.388</td>
+</tr>
</tbody>
</table>
</div>
@@ -2098,12 +2115,12 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="left">Ryzen 7 1700</td>
<td align="left">4.2.1</td>
<td align="left">1.1.0</td>
-<td align="right">2.828</td>
-<td align="right">4.286</td>
-<td align="right">5.475</td>
-<td align="right">11.054</td>
-<td align="right">6.704</td>
-<td align="right">9.085</td>
+<td align="right">3.018</td>
+<td align="right">4.165</td>
+<td align="right">5.036</td>
+<td align="right">10.844</td>
+<td align="right">6.623</td>
+<td align="right">9.722</td>
</tr>
<tr class="odd">
<td align="left">Linux</td>
@@ -2129,6 +2146,18 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="right">2.302</td>
<td align="right">3.463</td>
</tr>
+<tr class="odd">
+<td align="left">Linux</td>
+<td align="left">i7-4710MQ</td>
+<td align="left">4.2.1</td>
+<td align="left">1.1.1</td>
+<td align="right">0.652</td>
+<td align="right">1.089</td>
+<td align="right">1.149</td>
+<td align="right">3.205</td>
+<td align="right">1.635</td>
+<td align="right">2.444</td>
+</tr>
</tbody>
</table>
</div>
diff --git a/vignettes/web_only/dimethenamid_2018.R b/vignettes/web_only/dimethenamid_2018.R
deleted file mode 100644
index 2554cd13..00000000
--- a/vignettes/web_only/dimethenamid_2018.R
+++ /dev/null
@@ -1,152 +0,0 @@
-## ---- include = FALSE---------------------------------------------------------
-require(knitr)
-require(mkin)
-require(nlme)
-options(digits = 5)
-opts_chunk$set(
- comment = "",
- tidy = FALSE,
- cache = TRUE
-)
-
-## ----dimethenamid_data--------------------------------------------------------
-library(mkin, quietly = TRUE)
-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"]] <- NULL
-dmta_ds[["Elliot 2"]] <- NULL
-
-## ----f_parent_mkin------------------------------------------------------------
-f_parent_mkin_const <- mmkin(c("SFO", "DFOP"), dmta_ds,
- error_model = "const", quiet = TRUE)
-f_parent_mkin_tc <- mmkin(c("SFO", "DFOP"), dmta_ds,
- error_model = "tc", quiet = TRUE)
-
-## ----f_parent_mkin_sfo_const--------------------------------------------------
-plot(mixed(f_parent_mkin_const["SFO", ]))
-
-## ----f_parent_mkin_dfop_const-------------------------------------------------
-plot(mixed(f_parent_mkin_const["DFOP", ]))
-
-## ----f_parent_mkin_dfop_const_test--------------------------------------------
-plot(mixed(f_parent_mkin_const["DFOP", ]), test_log_parms = TRUE)
-
-## ----f_parent_mkin_dfop_tc_test-----------------------------------------------
-plot(mixed(f_parent_mkin_tc["DFOP", ]), test_log_parms = TRUE)
-
-## ----f_parent_mkin_dfop_tc_print----------------------------------------------
-print(f_parent_mkin_tc["DFOP", ])
-
-## ----f_parent_nlme, warning = FALSE-------------------------------------------
-library(nlme)
-f_parent_nlme_sfo_const <- nlme(f_parent_mkin_const["SFO", ])
-# f_parent_nlme_dfop_const <- nlme(f_parent_mkin_const["DFOP", ])
-f_parent_nlme_sfo_tc <- nlme(f_parent_mkin_tc["SFO", ])
-f_parent_nlme_dfop_tc <- nlme(f_parent_mkin_tc["DFOP", ])
-
-## ----AIC_parent_nlme----------------------------------------------------------
-anova(
- f_parent_nlme_sfo_const, f_parent_nlme_sfo_tc, f_parent_nlme_dfop_tc
-)
-
-## ----f_parent_nlme_logchol, warning = FALSE, eval = FALSE---------------------
-# f_parent_nlme_sfo_const_logchol <- nlme(f_parent_mkin_const["SFO", ],
-# random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k_DMTA ~ 1)))
-# anova(f_parent_nlme_sfo_const, f_parent_nlme_sfo_const_logchol)
-# f_parent_nlme_sfo_tc_logchol <- nlme(f_parent_mkin_tc["SFO", ],
-# random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k_DMTA ~ 1)))
-# anova(f_parent_nlme_sfo_tc, f_parent_nlme_sfo_tc_logchol)
-# f_parent_nlme_dfop_tc_logchol <- nlme(f_parent_mkin_const["DFOP", ],
-# random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k1 ~ 1, log_k2 ~ 1, g_qlogis ~ 1)))
-# anova(f_parent_nlme_dfop_tc, f_parent_nlme_dfop_tc_logchol)
-
-## ----plot_parent_nlme---------------------------------------------------------
-plot(f_parent_nlme_dfop_tc)
-
-## ----saemix_control, results='hide'-------------------------------------------
-library(saemix)
-saemix_control <- saemixControl(nbiter.saemix = c(800, 300), nb.chains = 15,
- print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
-saemix_control_moreiter <- saemixControl(nbiter.saemix = c(1600, 300), nb.chains = 15,
- print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
-saemix_control_10k <- saemixControl(nbiter.saemix = c(10000, 300), nb.chains = 15,
- print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
-
-## ----f_parent_saemix_sfo_const, results = 'hide', dependson = "saemix_control"----
-f_parent_saemix_sfo_const <- mkin::saem(f_parent_mkin_const["SFO", ], quiet = TRUE,
- control = saemix_control, transformations = "saemix")
-plot(f_parent_saemix_sfo_const$so, plot.type = "convergence")
-
-## ----f_parent_saemix_sfo_tc, results = 'hide', dependson = "saemix_control"----
-f_parent_saemix_sfo_tc <- mkin::saem(f_parent_mkin_tc["SFO", ], quiet = TRUE,
- control = saemix_control, transformations = "saemix")
-plot(f_parent_saemix_sfo_tc$so, plot.type = "convergence")
-
-## ----f_parent_saemix_dfop_const, results = 'show', dependson = "saemix_control"----
-f_parent_saemix_dfop_const <- mkin::saem(f_parent_mkin_const["DFOP", ], quiet = TRUE,
- control = saemix_control, transformations = "saemix")
-plot(f_parent_saemix_dfop_const$so, plot.type = "convergence")
-print(f_parent_saemix_dfop_const)
-
-## ----f_parent_saemix_dfop_tc, results = 'show', dependson = "saemix_control"----
-f_parent_saemix_dfop_tc <- mkin::saem(f_parent_mkin_tc["DFOP", ], quiet = TRUE,
- control = saemix_control, transformations = "saemix")
-f_parent_saemix_dfop_tc_moreiter <- mkin::saem(f_parent_mkin_tc["DFOP", ], quiet = TRUE,
- control = saemix_control_moreiter, transformations = "saemix")
-plot(f_parent_saemix_dfop_tc$so, plot.type = "convergence")
-print(f_parent_saemix_dfop_tc)
-
-## ----AIC_parent_saemix, cache = FALSE-----------------------------------------
-AIC_parent_saemix <- saemix::compare.saemix(
- f_parent_saemix_sfo_const$so,
- f_parent_saemix_sfo_tc$so,
- f_parent_saemix_dfop_const$so,
- f_parent_saemix_dfop_tc$so,
- f_parent_saemix_dfop_tc_moreiter$so)
-rownames(AIC_parent_saemix) <- c(
- "SFO const", "SFO tc", "DFOP const", "DFOP tc", "DFOP tc more iterations")
-print(AIC_parent_saemix)
-
-## ----AIC_parent_saemix_methods, cache = FALSE---------------------------------
-f_parent_saemix_dfop_tc$so <-
- saemix::llgq.saemix(f_parent_saemix_dfop_tc$so)
-AIC_parent_saemix_methods <- c(
- is = AIC(f_parent_saemix_dfop_tc$so, method = "is"),
- gq = AIC(f_parent_saemix_dfop_tc$so, method = "gq"),
- lin = AIC(f_parent_saemix_dfop_tc$so, method = "lin")
-)
-print(AIC_parent_saemix_methods)
-
-## ----AIC_parent_saemix_methods_defaults, cache = FALSE------------------------
-f_parent_saemix_dfop_tc_defaults <- mkin::saem(f_parent_mkin_tc["DFOP", ])
-f_parent_saemix_dfop_tc_defaults$so <-
- saemix::llgq.saemix(f_parent_saemix_dfop_tc_defaults$so)
-AIC_parent_saemix_methods_defaults <- c(
- is = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "is"),
- gq = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "gq"),
- lin = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "lin")
-)
-print(AIC_parent_saemix_methods_defaults)
-
-## ----AIC_all, cache = FALSE---------------------------------------------------
-AIC_all <- data.frame(
- check.names = FALSE,
- "Degradation model" = c("SFO", "SFO", "DFOP", "DFOP"),
- "Error model" = c("const", "tc", "const", "tc"),
- nlme = c(AIC(f_parent_nlme_sfo_const), AIC(f_parent_nlme_sfo_tc), NA, AIC(f_parent_nlme_dfop_tc)),
- saemix_lin = sapply(list(f_parent_saemix_sfo_const$so, f_parent_saemix_sfo_tc$so,
- f_parent_saemix_dfop_const$so, f_parent_saemix_dfop_tc$so), AIC, method = "lin"),
- saemix_is = sapply(list(f_parent_saemix_sfo_const$so, f_parent_saemix_sfo_tc$so,
- f_parent_saemix_dfop_const$so, f_parent_saemix_dfop_tc$so), AIC, method = "is")
-)
-kable(AIC_all)
-
-## ----sessionInfo, cache = FALSE-----------------------------------------------
-sessionInfo()
-
diff --git a/vignettes/web_only/mkin_benchmarks.rda b/vignettes/web_only/mkin_benchmarks.rda
index 18211bb9..3687ab8e 100644
--- a/vignettes/web_only/mkin_benchmarks.rda
+++ b/vignettes/web_only/mkin_benchmarks.rda
Binary files differ

Contact - Imprint