aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2019-05-08 20:57:48 +0200
committerJohannes Ranke <jranke@uni-bremen.de>2019-05-08 20:57:48 +0200
commitc6079a807e2b400fe0c772603392aeacd887da2f (patch)
tree5b590e06de87ce9cd5c776fccfabc8a629a10cad
parentc322a8102a399cbb1fe38c4c4ca4485cea8bc4e8 (diff)
Add functionality to plot the error model
by plotting squared residuals against predicted values, and showing the variance function used in the fitted error model. Rebuild docs
-rw-r--r--NEWS.md5
-rw-r--r--R/mkinerrplot.R84
-rw-r--r--R/mkinresplot.R14
-rw-r--r--R/plot.mkinfit.R19
-rw-r--r--R/plot.mmkin.R14
-rw-r--r--docs/articles/FOCUS_D.html8
-rw-r--r--docs/articles/FOCUS_L.html44
-rw-r--r--docs/articles/mkin.html2
-rw-r--r--docs/articles/twa.html2
-rw-r--r--docs/articles/web_only/FOCUS_Z.html2
-rw-r--r--docs/articles/web_only/NAFTA_examples.html2
-rw-r--r--docs/articles/web_only/benchmarks.html24
-rw-r--r--docs/articles/web_only/compiled_models.html12
-rw-r--r--docs/news/index.html7
-rw-r--r--docs/reference/mkinerrplot-1.pngbin0 -> 35936 bytes
-rw-r--r--docs/reference/mkinerrplot.html250
-rw-r--r--docs/reference/mkinfit.html28
-rw-r--r--docs/reference/mkinmod.html2
-rw-r--r--docs/reference/mkinpredict.html6
-rw-r--r--docs/reference/mmkin.html4
-rw-r--r--docs/reference/plot.mkinfit-1.pngbin45182 -> 45207 bytes
-rw-r--r--docs/reference/plot.mkinfit-2.pngbin52916 -> 52884 bytes
-rw-r--r--docs/reference/plot.mkinfit-3.pngbin43718 -> 51737 bytes
-rw-r--r--docs/reference/plot.mkinfit-4.pngbin59800 -> 43712 bytes
-rw-r--r--docs/reference/plot.mkinfit-5.pngbin0 -> 59934 bytes
-rw-r--r--docs/reference/plot.mkinfit-6.pngbin0 -> 65811 bytes
-rw-r--r--docs/reference/plot.mkinfit.html29
-rw-r--r--docs/reference/plot.mmkin-2.pngbin34829 -> 34725 bytes
-rw-r--r--docs/reference/plot.mmkin-4.pngbin0 -> 37126 bytes
-rw-r--r--docs/reference/plot.mmkin.html19
-rw-r--r--docs/reference/summary.mkinfit.html6
-rw-r--r--man/mkinerrplot.Rd75
-rw-r--r--man/plot.mkinfit.Rd21
-rw-r--r--man/plot.mmkin.Rd17
-rw-r--r--test.log31
-rw-r--r--tests/testthat/FOCUS_2006_D.csf2
-rw-r--r--vignettes/mkin_benchmarks.rdabin798 -> 797 bytes
37 files changed, 600 insertions, 129 deletions
diff --git a/NEWS.md b/NEWS.md
index ad6e9a87..f250ceba 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,8 +1,11 @@
-# mkin 0.9.49.4 (2019-05-07)
+# mkin 0.9.49.4 (2019-05-08)
+
- Direct minimization of the negative log-likelihood for non-constant error models (two-component and variance by variable). In the case the error model is constant variance, least squares is used as this is more stable
- The argument 'reweight.method' to mkinfit and mmkin is now obsolete, use 'error_model' instead
+- New function 'mkinerrplot'. This function is also used for residual plots in 'plot.mmkin' if the argument 'resplot = "errmod"' is given, and in 'plot.mkinfit' if 'show_errplot' is set to TRUE.
+
- Remove dependency on FME, only use nlminb for optimisation
- Use the numDeriv package to calculate hessians
diff --git a/R/mkinerrplot.R b/R/mkinerrplot.R
new file mode 100644
index 00000000..a2adcefa
--- /dev/null
+++ b/R/mkinerrplot.R
@@ -0,0 +1,84 @@
+# Copyright (C) 2008-2014,2019 Johannes Ranke
+# Contact: jranke@uni-bremen.de
+
+# This file is part of the R package mkin
+
+# mkin is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+
+# You should have received a copy of the GNU General Public License along with
+# this program. If not, see <http://www.gnu.org/licenses/>
+if(getRversion() >= '2.15.1') utils::globalVariables(c("variable", "residual"))
+
+mkinerrplot <- function (object,
+ obs_vars = names(object$mkinmod$map),
+ xlim = c(0, 1.1 * max(object$data$predicted)),
+ xlab = "Predicted", ylab = "Squared residual",
+ maxy = "auto", legend= TRUE, lpos = "topright",
+ col_obs = "auto", pch_obs = "auto",
+ ...)
+{
+ obs_vars_all <- as.character(unique(object$data$variable))
+
+ if (length(obs_vars) > 0){
+ obs_vars <- intersect(obs_vars_all, obs_vars)
+ } else obs_vars <- obs_vars_all
+
+ residuals <- subset(object$data, variable %in% obs_vars, residual)
+
+ if (maxy == "auto") maxy = max(residuals^2, na.rm = TRUE)
+
+ # Set colors and symbols
+ if (col_obs[1] == "auto") {
+ col_obs <- 1:length(obs_vars)
+ }
+
+ if (pch_obs[1] == "auto") {
+ pch_obs <- 1:length(obs_vars)
+ }
+ names(col_obs) <- names(pch_obs) <- obs_vars
+
+ plot(0, type = "n",
+ xlab = xlab, ylab = ylab,
+ xlim = xlim,
+ ylim = c(0, 1.2 * maxy), ...)
+
+ for(obs_var in obs_vars){
+ residuals_plot <- subset(object$data, variable == obs_var, c("predicted", "residual"))
+ points(residuals_plot[["predicted"]],
+ residuals_plot[["residual"]]^2,
+ pch = pch_obs[obs_var], col = col_obs[obs_var])
+ }
+
+ if (object$err_mod == "const") {
+ abline(h = object$errparms^2, lty = 2, col = col_obs[obs_var])
+ }
+ if (object$err_mod == "obs") {
+ for (obs_var in obs_vars) {
+ sigma_name = paste0("sigma_", obs_var)
+ abline(h = object$errparms[sigma_name]^2, lty = 2,
+ col = col_obs[obs_var])
+ }
+ }
+ if (object$err_mod == "tc") {
+ sigma_plot <- function(predicted) {
+ sigma_twocomp(predicted,
+ sigma_low = object$errparms[1],
+ rsd_high = object$errparms[2])^2
+ }
+ plot(sigma_plot, from = 0, to = max(object$data$predicted),
+ add = TRUE, lty = 2, col = col_obs[obs_var])
+ }
+
+ if (legend == TRUE) {
+ legend(lpos, inset = c(0.05, 0.05), legend = obs_vars,
+ col = col_obs[obs_vars], pch = pch_obs[obs_vars])
+ }
+}
diff --git a/R/mkinresplot.R b/R/mkinresplot.R
index 3650ef4b..739a80e9 100644
--- a/R/mkinresplot.R
+++ b/R/mkinresplot.R
@@ -23,7 +23,7 @@ mkinresplot <- function (object,
xlab = "Time", ylab = "Residual",
maxabs = "auto", legend= TRUE, lpos = "topright", ...)
{
- obs_vars_all <- as.character(unique(object$data$variable))
+ obs_vars_all <- as.character(unique(object$data$variable))
if (length(obs_vars) > 0){
obs_vars <- intersect(obs_vars_all, obs_vars)
@@ -33,18 +33,18 @@ mkinresplot <- function (object,
if (maxabs == "auto") maxabs = max(abs(residuals), na.rm = TRUE)
- col_obs <- pch_obs <- 1:length(obs_vars)
- names(col_obs) <- names(pch_obs) <- obs_vars
+ col_obs <- pch_obs <- 1:length(obs_vars)
+ names(col_obs) <- names(pch_obs) <- obs_vars
plot(0, type = "n",
xlab = xlab, ylab = ylab,
xlim = xlim,
ylim = c(-1.2 * maxabs, 1.2 * maxabs), ...)
- for(obs_var in obs_vars){
- residuals_plot <- subset(object$data, variable == obs_var, c("time", "residual"))
- points(residuals_plot, pch = pch_obs[obs_var], col = col_obs[obs_var])
- }
+ for(obs_var in obs_vars){
+ residuals_plot <- subset(object$data, variable == obs_var, c("time", "residual"))
+ points(residuals_plot, pch = pch_obs[obs_var], col = col_obs[obs_var])
+ }
abline(h = 0, lty = 2)
diff --git a/R/plot.mkinfit.R b/R/plot.mkinfit.R
index ee836eb8..df9888e7 100644
--- a/R/plot.mkinfit.R
+++ b/R/plot.mkinfit.R
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2016 Johannes Ranke
+# Copyright (C) 2010-2016,2019 Johannes Ranke
# Contact: jranke@uni-bremen.de
# This file is part of the R package mkin
@@ -26,12 +26,16 @@ plot.mkinfit <- function(x, fit = x,
pch_obs = col_obs,
lty_obs = rep(1, length(obs_vars)),
add = FALSE, legend = !add,
- show_residuals = FALSE, maxabs = "auto",
+ show_residuals = FALSE,
+ show_errplot = FALSE,
+ maxabs = "auto",
sep_obs = FALSE, rel.height.middle = 0.9,
lpos = "topright", inset = c(0.05, 0.05),
show_errmin = FALSE, errmin_digits = 3, ...)
{
if (add && show_residuals) stop("If adding to an existing plot we can not show residuals")
+ if (add && show_errplot) stop("If adding to an existing plot we can not show the error model plot")
+ if (show_residuals && show_errplot) stop("We can either show residuals over time or the error model plot, not both")
if (add && sep_obs) stop("If adding to an existing plot we can not show observed variables separately")
solution_type = fit$solution_type
@@ -68,8 +72,7 @@ plot.mkinfit <- function(x, fit = x,
# Create a plot layout only if not to be added to an existing plot
# or only a single plot is requested (e.g. by plot.mmkin)
do_layout = FALSE
- if (show_residuals) do_layout = TRUE
- if (sep_obs) do_layout = TRUE
+ if (show_residuals | sep_obs | show_errplot) do_layout = TRUE
n_plot_rows = if (sep_obs) length(obs_vars) else 1
if (do_layout) {
@@ -78,7 +81,7 @@ plot.mkinfit <- function(x, fit = x,
# If the observed variables are shown separately, do row layout
if (sep_obs) {
- n_plot_cols = if (show_residuals) 2 else 1
+ n_plot_cols = if (show_residuals | show_errplot) 2 else 1
n_plots = n_plot_rows * n_plot_cols
# Set relative plot heights, so the first and the last plot are the norm
@@ -201,6 +204,12 @@ plot.mkinfit <- function(x, fit = x,
}
abline(h = 0, lty = 2)
}
+
+ # Show error model plot if requested
+ if (show_errplot) {
+ mkinerrplot(fit, obs_vars = row_obs_vars, pch_obs = pch_obs[row_obs_vars], col_obs = col_obs[row_obs_vars],
+ legend = FALSE)
+ }
}
if (do_layout) par(oldpar, no.readonly = TRUE)
}
diff --git a/R/plot.mmkin.R b/R/plot.mmkin.R
index ee7075d3..c9d98718 100644
--- a/R/plot.mmkin.R
+++ b/R/plot.mmkin.R
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2016 Johannes Ranke
+# Copyright (C) 2015-2016,2019 Johannes Ranke
# Contact: jranke@uni-bremen.de
# This file is part of the R package mkin
@@ -16,11 +16,15 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>
-plot.mmkin <- function(x, main = "auto", legends = 1, errmin_var = "All data", errmin_digits = 3,
+plot.mmkin <- function(x, main = "auto", legends = 1,
+ resplot = c("time", "errmod"),
+ errmin_var = "All data", errmin_digits = 3,
cex = 0.7, rel.height.middle = 0.9, ...) {
n.m <- nrow(x)
n.d <- ncol(x)
+ resplot <- match.arg(resplot)
+
# We can handle either a row (different models, same dataset)
# or a column (same model, different datasets)
if (n.m > 1 & n.d > 1) stop("Please select fits either for one model or for one dataset")
@@ -90,7 +94,11 @@ plot.mmkin <- function(x, main = "auto", legends = 1, errmin_var = "All data", e
}
mtext(chi2_text, cex = cex, line = 0.4)
- mkinresplot(fit, legend = FALSE, ...)
+ if (resplot == "time") {
+ mkinresplot(fit, legend = FALSE, ...)
+ } else {
+ mkinerrplot(fit, legend = FALSE, ...)
+ }
mtext(paste(fit_name, "residuals"), cex = cex, line = 0.4)
}
diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html
index 644a35b5..ba694065 100644
--- a/docs/articles/FOCUS_D.html
+++ b/docs/articles/FOCUS_D.html
@@ -88,7 +88,7 @@
<h1>Example evaluation of FOCUS Example Dataset D</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>FOCUS_D.Rmd</code></div>
@@ -168,8 +168,8 @@
<div class="sourceCode" id="cb11"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb11-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(fit)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:46 2019
-## Date of summary: Tue May 7 08:37:46 2019
+## Date of fit: Wed May 8 20:52:27 2019
+## Date of summary: Wed May 8 20:52:27 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -177,7 +177,7 @@
##
## Model predictions using solution type deSolve
##
-## Fitted using 389 model solutions performed in 1.018 s
+## Fitted using 389 model solutions performed in 0.998 s
##
## Error model:
## Constant variance
diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html
index 2cffb323..6771bf63 100644
--- a/docs/articles/FOCUS_L.html
+++ b/docs/articles/FOCUS_L.html
@@ -88,7 +88,7 @@
<h1>Example evaluation of FOCUS Laboratory Data L1 to L3</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>FOCUS_L.Rmd</code></div>
@@ -114,15 +114,15 @@
<a class="sourceLine" id="cb2-2" title="2"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L1.SFO)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:48 2019
-## Date of summary: Tue May 7 08:37:48 2019
+## Date of fit: Wed May 8 20:52:29 2019
+## Date of summary: Wed May 8 20:52:29 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 133 model solutions performed in 0.284 s
+## Fitted using 133 model solutions performed in 0.276 s
##
## Error model:
## Constant variance
@@ -215,8 +215,8 @@
## finite result is doubtful</code></pre>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:50 2019
-## Date of summary: Tue May 7 08:37:50 2019
+## Date of fit: Wed May 8 20:52:31 2019
+## Date of summary: Wed May 8 20:52:31 2019
##
##
## Warning: Optimisation did not converge:
@@ -228,7 +228,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted using 899 model solutions performed in 1.913 s
+## Fitted using 899 model solutions performed in 1.868 s
##
## Error model:
## Constant variance
@@ -319,15 +319,15 @@
<div class="sourceCode" id="cb17"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb17-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L2.FOMC, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:51 2019
-## Date of summary: Tue May 7 08:37:51 2019
+## Date of fit: Wed May 8 20:52:32 2019
+## Date of summary: Wed May 8 20:52:32 2019
##
## 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.494 s
+## Fitted using 239 model solutions performed in 0.483 s
##
## Error model:
## Constant variance
@@ -394,8 +394,8 @@
<div class="sourceCode" id="cb20"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb20-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L2.DFOP, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:53 2019
-## Date of summary: Tue May 7 08:37:53 2019
+## Date of fit: Wed May 8 20:52:33 2019
+## Date of summary: Wed May 8 20:52:33 2019
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -404,7 +404,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted using 572 model solutions performed in 1.244 s
+## Fitted using 572 model solutions performed in 1.185 s
##
## Error model:
## Constant variance
@@ -493,8 +493,8 @@
<div class="sourceCode" id="cb24"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb24-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L3[[<span class="st">"DFOP"</span>, <span class="dv">1</span>]])</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:55 2019
-## Date of summary: Tue May 7 08:37:55 2019
+## Date of fit: Wed May 8 20:52:35 2019
+## Date of summary: Wed May 8 20:52:35 2019
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -503,7 +503,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted using 373 model solutions performed in 0.791 s
+## Fitted using 373 model solutions performed in 0.768 s
##
## Error model:
## Constant variance
@@ -598,15 +598,15 @@
<div class="sourceCode" id="cb29"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb29-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L4[[<span class="st">"SFO"</span>, <span class="dv">1</span>]], <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:56 2019
-## Date of summary: Tue May 7 08:37:56 2019
+## Date of fit: Wed May 8 20:52:36 2019
+## Date of summary: Wed May 8 20:52:37 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 142 model solutions performed in 0.29 s
+## Fitted using 142 model solutions performed in 0.289 s
##
## Error model:
## Constant variance
@@ -662,15 +662,15 @@
<div class="sourceCode" id="cb31"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb31-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L4[[<span class="st">"FOMC"</span>, <span class="dv">1</span>]], <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.49.4
## R version used for fitting: 3.6.0
-## Date of fit: Tue May 7 08:37:56 2019
-## Date of summary: Tue May 7 08:37:56 2019
+## Date of fit: Wed May 8 20:52:36 2019
+## Date of summary: Wed May 8 20:52:37 2019
##
## 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.453 s
+## Fitted using 224 model solutions performed in 0.45 s
##
## Error model:
## Constant variance
diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html
index 271da77e..c274696c 100644
--- a/docs/articles/mkin.html
+++ b/docs/articles/mkin.html
@@ -88,7 +88,7 @@
<h1>Introduction to mkin</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>mkin.Rmd</code></div>
diff --git a/docs/articles/twa.html b/docs/articles/twa.html
index 9f08036a..9f660fab 100644
--- a/docs/articles/twa.html
+++ b/docs/articles/twa.html
@@ -88,7 +88,7 @@
<h1>Calculation of time weighted average concentrations with mkin</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>twa.Rmd</code></div>
diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html
index 3cda0261..9184fad5 100644
--- a/docs/articles/web_only/FOCUS_Z.html
+++ b/docs/articles/web_only/FOCUS_Z.html
@@ -88,7 +88,7 @@
<h1>Example evaluation of FOCUS dataset Z</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>FOCUS_Z.Rmd</code></div>
diff --git a/docs/articles/web_only/NAFTA_examples.html b/docs/articles/web_only/NAFTA_examples.html
index 237b506e..4d9e9b2d 100644
--- a/docs/articles/web_only/NAFTA_examples.html
+++ b/docs/articles/web_only/NAFTA_examples.html
@@ -88,7 +88,7 @@
<h1>Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>NAFTA_examples.Rmd</code></div>
diff --git a/docs/articles/web_only/benchmarks.html b/docs/articles/web_only/benchmarks.html
index a250f005..a53f1927 100644
--- a/docs/articles/web_only/benchmarks.html
+++ b/docs/articles/web_only/benchmarks.html
@@ -88,7 +88,7 @@
<h1>Benchmark timings for mkin on various systems</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>benchmarks.Rmd</code></div>
@@ -198,67 +198,67 @@
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 8.184
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.064
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.296
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.982
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.792
## t2
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 11.019
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 22.889
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 12.558
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 21.239
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 17.777
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 17.398
## t3
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.764
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.649
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.786
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.510
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.545
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.427
## t4
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 14.347
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 13.789
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 8.461
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 13.805
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 16.684
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 16.104
## t5
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 9.495
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 6.395
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.675
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.386
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.868
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.527
## t6
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 2.623
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 2.542
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 2.723
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 2.643
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.66
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.541
## t7
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 4.587
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.128
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.478
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.374
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.496
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.308
## t8
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 7.525
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.632
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.862
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.02
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.919
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.775
## t9
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 16.621
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 8.171
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.618
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 11.124
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 11.683
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 11.116
## t10
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 8.576
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 3.676
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 3.579
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 5.388
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.344
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.063
## t11
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 31.267
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 5.636
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.574
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.365
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.752</code></pre>
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.784</code></pre>
<div class="sourceCode" id="cb14"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb14-1" title="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/save">save</a></span>(mkin_benchmarks, <span class="dt">file =</span> <span class="st">"~/git/mkin/vignettes/mkin_benchmarks.rda"</span>)</a></code></pre></div>
</div>
</div>
diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html
index 54d3148f..f296c8a4 100644
--- a/docs/articles/web_only/compiled_models.html
+++ b/docs/articles/web_only/compiled_models.html
@@ -88,7 +88,7 @@
<h1>Performance benefit by using compiled model definitions in mkin</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-05-07</h4>
+ <h4 class="date">2019-05-08</h4>
<div class="hidden name"><code>compiled_models.Rmd</code></div>
@@ -163,9 +163,9 @@
## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve", quiet
## = TRUE): Observations with value of zero were removed from the data</code></pre>
<pre><code>## test replications elapsed relative user.self sys.self
-## 3 deSolve, compiled 3 3.067 1.000 3.065 0
-## 1 deSolve, not compiled 3 28.135 9.173 28.122 0
-## 2 Eigenvalue based 3 4.306 1.404 4.303 0
+## 3 deSolve, compiled 3 3.131 1.000 3.129 0
+## 1 deSolve, not compiled 3 28.306 9.041 28.290 0
+## 2 Eigenvalue based 3 4.361 1.393 4.358 0
## user.child sys.child
## 3 0 0
## 1 0 0
@@ -214,8 +214,8 @@
## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
## value of zero were removed from the data</code></pre>
<pre><code>## test replications elapsed relative user.self sys.self
-## 2 deSolve, compiled 3 4.827 1.000 4.825 0
-## 1 deSolve, not compiled 3 52.646 10.907 52.622 0
+## 2 deSolve, compiled 3 5.023 1.000 5.021 0
+## 1 deSolve, not compiled 3 53.267 10.605 53.235 0
## user.child sys.child
## 2 0 0
## 1 0 0</code></pre>
diff --git a/docs/news/index.html b/docs/news/index.html
index d165b6f9..11414ed3 100644
--- a/docs/news/index.html
+++ b/docs/news/index.html
@@ -122,13 +122,14 @@
</div>
- <div id="mkin-0-9-49-4-2019-05-07" class="section level1">
+ <div id="mkin-0-9-49-4-2019-05-08" class="section level1">
<h1 class="page-header">
-<a href="#mkin-0-9-49-4-2019-05-07" class="anchor"></a>mkin 0.9.49.4 (2019-05-07)<small> Unreleased </small>
+<a href="#mkin-0-9-49-4-2019-05-08" class="anchor"></a>mkin 0.9.49.4 (2019-05-08)<small> Unreleased </small>
</h1>
<ul>
<li><p>Direct minimization of the negative log-likelihood for non-constant error models (two-component and variance by variable). In the case the error model is constant variance, least squares is used as this is more stable</p></li>
<li><p>The argument ‘reweight.method’ to mkinfit and mmkin is now obsolete, use ‘error_model’ instead</p></li>
+<li><p>New function ‘mkinerrplot’. This function is also used for residual plots in ‘plot.mmkin’ if the argument ‘resplot = “errmod”’ is given, and in ‘plot.mkinfit’ if ‘show_errplot’ is set to TRUE.</p></li>
<li><p>Remove dependency on FME, only use nlminb for optimisation</p></li>
<li><p>Use the numDeriv package to calculate hessians</p></li>
<li><p>Add a benchmark vignette to document the impact on performance. For very simple fits, the new code is a bit slower, presumably because of the time it takes to calculate the hessian matrices with and without parameter transformation</p></li>
@@ -695,7 +696,7 @@
<div id="tocnav">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
- <li><a href="#mkin-0-9-49-4-2019-05-07">0.9.49.4</a></li>
+ <li><a href="#mkin-0-9-49-4-2019-05-08">0.9.49.4</a></li>
<li><a href="#mkin-0-9-48-1-2019-03-04">0.9.48.1</a></li>
<li><a href="#mkin-0-9-47-5-2018-09-14">0.9.47.5</a></li>
<li><a href="#mkin-0-9-47-3">0.9.47.3</a></li>
diff --git a/docs/reference/mkinerrplot-1.png b/docs/reference/mkinerrplot-1.png
new file mode 100644
index 00000000..9c663646
--- /dev/null
+++ b/docs/reference/mkinerrplot-1.png
Binary files differ
diff --git a/docs/reference/mkinerrplot.html b/docs/reference/mkinerrplot.html
new file mode 100644
index 00000000..66da40b5
--- /dev/null
+++ b/docs/reference/mkinerrplot.html
@@ -0,0 +1,250 @@
+<!-- Generated by pkgdown: do not edit by hand -->
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<title>Function to plot squared residuals and the error model for an mkin object — mkinerrplot • mkin</title>
+
+<!-- jquery -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+<!-- Bootstrap -->
+
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
+<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
+
+<!-- Font Awesome icons -->
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha256-eZrrJcwDc/3uDhsdt61sL2oOBY362qM3lon1gyExkL0=" crossorigin="anonymous" />
+
+<!-- clipboard.js -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
+
+<!-- sticky kit -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/sticky-kit/1.1.3/sticky-kit.min.js" integrity="sha256-c4Rlo1ZozqTPE2RLuvbusY3+SU1pQaJC0TjuhygMipw=" crossorigin="anonymous"></script>
+
+<!-- pkgdown -->
+<link href="../pkgdown.css" rel="stylesheet">
+<script src="../pkgdown.js"></script>
+
+
+
+<meta property="og:title" content="Function to plot squared residuals and the error model for an mkin object — mkinerrplot" />
+
+<meta property="og:description" content="This function plots the squared residuals for the specified subset of the
+ observed variables from an mkinfit object. In addition, one or more
+ dashed line(s) show the fitted error model.
+ A combined plot of the fitted model and this error model plot can be
+ obtained with plot.mkinfit
+ using the argument show_errplot = TRUE." />
+<meta name="twitter:card" content="summary" />
+
+
+
+<!-- mathjax -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script>
+
+<!--[if lt IE 9]>
+<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+<![endif]-->
+
+
+ </head>
+
+ <body>
+ <div class="container template-reference-topic">
+ <header>
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <span class="navbar-brand">
+ <a class="navbar-link" href="../index.html">mkin</a>
+ <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.9.49.4</span>
+ </span>
+ </div>
+
+ <div id="navbar" class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="../reference/index.html">Functions and data</a>
+</li>
+<li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
+ Articles
+
+ <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="../articles/mkin.html">Introduction to mkin</a>
+ </li>
+ <li>
+ <a href="../articles/FOCUS_D.html">Example evaluation of FOCUS Example Dataset D</a>
+ </li>
+ <li>
+ <a href="../articles/FOCUS_L.html">Example evaluation of FOCUS Laboratory Data L1 to L3</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/FOCUS_Z.html">Example evaluation of FOCUS Example Dataset Z</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/compiled_models.html">Performance benefit by using compiled model definitions in mkin</a>
+ </li>
+ <li>
+ <a href="../articles/twa.html">Calculation of time weighted average concentrations with mkin</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/NAFTA_examples.html">Example evaluation of NAFTA SOP Attachment examples</a>
+ </li>
+ </ul>
+</li>
+<li>
+ <a href="../news/index.html">News</a>
+</li>
+ </ul>
+
+ <ul class="nav navbar-nav navbar-right">
+
+ </ul>
+
+ </div><!--/.nav-collapse -->
+ </div><!--/.container -->
+</div><!--/.navbar -->
+
+
+ </header>
+
+<div class="row">
+ <div class="col-md-9 contents">
+ <div class="page-header">
+ <h1>Function to plot squared residuals and the error model for an mkin object</h1>
+
+ <div class="hidden name"><code>mkinerrplot.Rd</code></div>
+ </div>
+
+ <div class="ref-description">
+
+ <p>This function plots the squared residuals for the specified subset of the
+ observed variables from an mkinfit object. In addition, one or more
+ dashed line(s) show the fitted error model.
+ A combined plot of the fitted model and this error model plot can be
+ obtained with <code><a href='plot.mkinfit.html'>plot.mkinfit</a></code>
+ using the argument <code>show_errplot = TRUE</code>.</p>
+
+ </div>
+
+ <pre class="usage"><span class='fu'>mkinerrplot</span>(<span class='no'>object</span>,
+ <span class='kw'>obs_vars</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/names'>names</a></span>(<span class='no'>object</span>$<span class='no'>mkinmod</span>$<span class='no'>map</span>),
+ <span class='kw'>xlim</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='fl'>0</span>, <span class='fl'>1.1</span> * <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/Extremes'>max</a></span>(<span class='no'>object</span>$<span class='no'>data</span>$<span class='no'>predicted</span>)),
+ <span class='kw'>xlab</span> <span class='kw'>=</span> <span class='st'>"Predicted"</span>, <span class='kw'>ylab</span> <span class='kw'>=</span> <span class='st'>"Squared residual"</span>,
+ <span class='kw'>maxy</span> <span class='kw'>=</span> <span class='st'>"auto"</span>, <span class='kw'>legend</span><span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='st'>"topright"</span>,
+ <span class='kw'>col_obs</span> <span class='kw'>=</span> <span class='st'>"auto"</span>, <span class='kw'>pch_obs</span> <span class='kw'>=</span> <span class='st'>"auto"</span>,
+ <span class='no'>...</span>)</pre>
+
+ <h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
+ <table class="ref-arguments">
+ <colgroup><col class="name" /><col class="desc" /></colgroup>
+ <tr>
+ <th>object</th>
+ <td><p>A fit represented in an <code><a href='mkinfit.html'>mkinfit</a></code> object.</p></td>
+ </tr>
+ <tr>
+ <th>obs_vars</th>
+ <td><p>A character vector of names of the observed variables for which residuals
+ should be plotted. Defaults to all observed variables in the model</p></td>
+ </tr>
+ <tr>
+ <th>xlim</th>
+ <td><p>plot range in x direction.</p></td>
+ </tr>
+ <tr>
+ <th>xlab</th>
+ <td><p>Label for the x axis.</p></td>
+ </tr>
+ <tr>
+ <th>ylab</th>
+ <td><p>Label for the y axis.</p></td>
+ </tr>
+ <tr>
+ <th>maxy</th>
+ <td><p>Maximum value of the residuals. This is used for the scaling of
+ the y axis and defaults to "auto".</p></td>
+ </tr>
+ <tr>
+ <th>legend</th>
+ <td><p>Should a legend be plotted?</p></td>
+ </tr>
+ <tr>
+ <th>lpos</th>
+ <td><p>Where should the legend be placed? Default is "topright". Will be passed on to
+ <code><a href='https://www.rdocumentation.org/packages/graphics/topics/legend'>legend</a></code>.</p></td>
+ </tr>
+ <tr>
+ <th>col_obs</th>
+ <td><p>Colors for the observed variables.</p></td>
+ </tr>
+ <tr>
+ <th>pch_obs</th>
+ <td><p>Symbols to be used for the observed variables.</p></td>
+ </tr>
+ <tr>
+ <th>&#8230;</th>
+ <td><p>further arguments passed to <code><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></code>.</p></td>
+ </tr>
+ </table>
+
+ <h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>
+
+ <p>Nothing is returned by this function, as it is called for its side effect, namely to produce a plot.</p>
+
+ <h2 class="hasAnchor" id="see-also"><a class="anchor" href="#see-also"></a>See also</h2>
+
+ <div class='dont-index'><p><code><a href='mkinplot.html'>mkinplot</a></code>, for a way to plot the data and the fitted lines of the
+ mkinfit object.</p></div>
+
+
+ <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
+ <pre class="examples"><div class='input'><span class='no'>model</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinmod.html'>mkinmod</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='st'>"m1"</span>), <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>))</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>model</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>error_model</span> <span class='kw'>=</span> <span class='st'>"tc"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'><span class='fu'>mkinerrplot</span>(<span class='no'>fit</span>)</div><div class='img'><img src='mkinerrplot-1.png' alt='' width='700' height='433' /></div></pre>
+ </div>
+ <div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
+ <h2>Contents</h2>
+ <ul class="nav nav-pills nav-stacked">
+ <li><a href="#arguments">Arguments</a></li>
+
+ <li><a href="#value">Value</a></li>
+
+ <li><a href="#see-also">See also</a></li>
+
+ <li><a href="#examples">Examples</a></li>
+ </ul>
+
+ <h2>Author</h2>
+ <p>Johannes Ranke</p>
+ </div>
+</div>
+
+ <footer>
+ <div class="copyright">
+ <p>Developed by Johannes Ranke.</p>
+</div>
+
+<div class="pkgdown">
+ <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.3.0.9000.</p>
+</div>
+ </footer>
+ </div>
+
+
+
+ </body>
+</html>
+
diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html
index 09329a86..bfca44fc 100644
--- a/docs/reference/mkinfit.html
+++ b/docs/reference/mkinfit.html
@@ -362,15 +362,15 @@ Per default, parameters in the kinetic models are internally transformed in
<span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='st'>"FOMC"</span>, <span class='no'>FOCUS_2006_C</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.49.4
#&gt; R version used for fitting: 3.6.0
-#&gt; Date of fit: Tue May 7 08:36:16 2019
-#&gt; Date of summary: Tue May 7 08:36:16 2019
+#&gt; Date of fit: Wed May 8 20:50:50 2019
+#&gt; Date of summary: Wed May 8 20:50:50 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
#&gt;
#&gt; Model predictions using solution type analytical
#&gt;
-#&gt; Fitted using 222 model solutions performed in 0.89 s
+#&gt; Fitted using 222 model solutions performed in 0.456 s
#&gt;
#&gt; Error model:
#&gt; Constant variance
@@ -443,7 +443,7 @@ Per default, parameters in the kinetic models are internally transformed in
<span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>))</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='co'># Fit the model to the FOCUS example dataset D using defaults</span>
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(<span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>,
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"eigen"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)))</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='output co'>#&gt; User System verstrichen
-#&gt; 2.251 0.000 2.253 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; NULL</div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; $ff
+#&gt; 1.488 0.000 1.488 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; NULL</div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; $ff
#&gt; parent_sink parent_m1 m1_sink
#&gt; 0.485524 0.514476 1.000000
#&gt;
@@ -515,7 +515,7 @@ Per default, parameters in the kinetic models are internally transformed in
#&gt; Sum of squared residuals at call 126: 371.2134
#&gt; Sum of squared residuals at call 135: 371.2134
#&gt; Negative log-likelihood at call 145: 97.22429</div><div class='output co'>#&gt; <span class='message'>Optimisation successfully terminated.</span></div><div class='output co'>#&gt; User System verstrichen
-#&gt; 1.151 0.000 1.152 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; NULL</div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; $ff
+#&gt; 1.086 0.000 1.087 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; NULL</div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; $ff
#&gt; parent_sink parent_m1 m1_sink
#&gt; 0.485524 0.514476 1.000000
#&gt;
@@ -547,8 +547,8 @@ Per default, parameters in the kinetic models are internally transformed in
<span class='no'>SFO_SFO.ff</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinmod.html'>mkinmod</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='st'>"m1"</span>),
<span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>), <span class='kw'>use_of_ff</span> <span class='kw'>=</span> <span class='st'>"max"</span>)</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='no'>f.noweight</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.noweight</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.49.4
#&gt; R version used for fitting: 3.6.0
-#&gt; Date of fit: Tue May 7 08:36:33 2019
-#&gt; Date of summary: Tue May 7 08:36:33 2019
+#&gt; Date of fit: Wed May 8 20:51:06 2019
+#&gt; Date of summary: Wed May 8 20:51:06 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -556,7 +556,7 @@ Per default, parameters in the kinetic models are internally transformed in
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted using 421 model solutions performed in 1.1 s
+#&gt; Fitted using 421 model solutions performed in 1.082 s
#&gt;
#&gt; Error model:
#&gt; Constant variance
@@ -665,8 +665,8 @@ Per default, parameters in the kinetic models are internally transformed in
#&gt; 120 m1 25.15 28.78984 -3.640e+00
#&gt; 120 m1 33.31 28.78984 4.520e+00</div><div class='input'><span class='no'>f.obs</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>error_model</span> <span class='kw'>=</span> <span class='st'>"obs"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.obs</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.49.4
#&gt; R version used for fitting: 3.6.0
-#&gt; Date of fit: Tue May 7 08:36:35 2019
-#&gt; Date of summary: Tue May 7 08:36:35 2019
+#&gt; Date of fit: Wed May 8 20:51:08 2019
+#&gt; Date of summary: Wed May 8 20:51:08 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -674,7 +674,7 @@ Per default, parameters in the kinetic models are internally transformed in
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted using 758 model solutions performed in 1.991 s
+#&gt; Fitted using 758 model solutions performed in 1.971 s
#&gt;
#&gt; Error model:
#&gt; Variance unique to each observed variable
@@ -795,8 +795,8 @@ Per default, parameters in the kinetic models are internally transformed in
#&gt; 120 m1 25.15 28.80430 -3.654e+00
#&gt; 120 m1 33.31 28.80430 4.506e+00</div><div class='input'><span class='no'>f.tc</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>error_model</span> <span class='kw'>=</span> <span class='st'>"tc"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.tc</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.49.4
#&gt; R version used for fitting: 3.6.0
-#&gt; Date of fit: Tue May 7 08:36:39 2019
-#&gt; Date of summary: Tue May 7 08:36:39 2019
+#&gt; Date of fit: Wed May 8 20:51:11 2019
+#&gt; Date of summary: Wed May 8 20:51:11 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -804,7 +804,7 @@ Per default, parameters in the kinetic models are internally transformed in
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted using 821 model solutions performed in 3.304 s
+#&gt; Fitted using 821 model solutions performed in 3.29 s
#&gt;
#&gt; Error model:
#&gt; Two-component variance function
diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html
index d0b2a0eb..51be5465 100644
--- a/docs/reference/mkinmod.html
+++ b/docs/reference/mkinmod.html
@@ -234,7 +234,7 @@ For the definition of model types and their parameters, the equations given
<span class='no'>SFO_SFO</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinmod</span>(
<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='st'>"m1"</span>),
<span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>), <span class='kw'>verbose</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; Compilation argument:
-#&gt; /usr/lib/R/bin/R CMD SHLIB fileb5a1e31297a.c 2&gt; fileb5a1e31297a.c.err.txt
+#&gt; /usr/lib/R/bin/R CMD SHLIB file4bbd307f8763.c 2&gt; file4bbd307f8763.c.err.txt
#&gt; Program source:
#&gt; 1: #include &lt;R.h&gt;
#&gt; 2:
diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html
index 522cbbfe..8e2e307b 100644
--- a/docs/reference/mkinpredict.html
+++ b/docs/reference/mkinpredict.html
@@ -328,17 +328,17 @@
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"eigen"</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#&gt; time parent m1
#&gt; 201 20 4.978707 27.46227</div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.003 0.000 0.003 </div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(
+#&gt; 0.003 0.000 0.004 </div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'>mkinpredict</span>(<span class='no'>SFO_SFO</span>, <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>k_parent_m1</span> <span class='kw'>=</span> <span class='fl'>0.05</span>, <span class='kw'>k_parent_sink</span> <span class='kw'>=</span> <span class='fl'>0.1</span>, <span class='kw'>k_m1_sink</span> <span class='kw'>=</span> <span class='fl'>0.01</span>),
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"deSolve"</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#&gt; time parent m1
#&gt; 201 20 4.978707 27.46227</div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.001 0.000 0.002 </div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(
+#&gt; 0.002 0.000 0.001 </div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'>mkinpredict</span>(<span class='no'>SFO_SFO</span>, <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>k_parent_m1</span> <span class='kw'>=</span> <span class='fl'>0.05</span>, <span class='kw'>k_parent_sink</span> <span class='kw'>=</span> <span class='fl'>0.1</span>, <span class='kw'>k_m1_sink</span> <span class='kw'>=</span> <span class='fl'>0.01</span>),
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"deSolve"</span>, <span class='kw'>use_compiled</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#&gt; time parent m1
#&gt; 201 20 4.978707 27.46227</div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.021 0.000 0.022 </div><div class='input'>
+#&gt; 0.021 0.000 0.021 </div><div class='input'>
</div><div class='input'> <span class='co'># Predict from a fitted model</span>
<span class='no'>f</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_C</span>)</div><div class='output co'>#&gt; <span class='message'>Ordinary least squares optimisation</span></div><div class='output co'>#&gt; Sum of squared residuals at call 1: 552.5739
#&gt; Sum of squared residuals at call 3: 552.5739
diff --git a/docs/reference/mmkin.html b/docs/reference/mmkin.html
index d0cd748c..3e297eb3 100644
--- a/docs/reference/mmkin.html
+++ b/docs/reference/mmkin.html
@@ -194,8 +194,8 @@
<span class='no'>time_1</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(<span class='no'>fits.4</span> <span class='kw'>&lt;-</span> <span class='fu'>mmkin</span>(<span class='no'>models</span>, <span class='no'>datasets</span>, <span class='kw'>cores</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>))
<span class='no'>time_default</span></div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.047 0.033 5.463 </div><div class='input'><span class='no'>time_1</span></div><div class='output co'>#&gt; User System verstrichen
-#&gt; 19.909 0.004 19.967 </div><div class='input'>
+#&gt; 0.048 0.024 5.085 </div><div class='input'><span class='no'>time_1</span></div><div class='output co'>#&gt; User System verstrichen
+#&gt; 19.074 0.004 19.089 </div><div class='input'>
<span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fits.0</span><span class='kw'>[[</span><span class='st'>"SFO_lin"</span>, <span class='fl'>2</span>]])</div><div class='output co'>#&gt; $ff
#&gt; parent_M1 parent_sink M1_M2 M1_sink
#&gt; 0.7340481 0.2659519 0.7505684 0.2494316
diff --git a/docs/reference/plot.mkinfit-1.png b/docs/reference/plot.mkinfit-1.png
index e7b3bac7..f70e9e31 100644
--- a/docs/reference/plot.mkinfit-1.png
+++ b/docs/reference/plot.mkinfit-1.png
Binary files differ
diff --git a/docs/reference/plot.mkinfit-2.png b/docs/reference/plot.mkinfit-2.png
index 15bdba55..6facce0f 100644
--- a/docs/reference/plot.mkinfit-2.png
+++ b/docs/reference/plot.mkinfit-2.png
Binary files differ
diff --git a/docs/reference/plot.mkinfit-3.png b/docs/reference/plot.mkinfit-3.png
index 52de09bd..b53b3134 100644
--- a/docs/reference/plot.mkinfit-3.png
+++ b/docs/reference/plot.mkinfit-3.png
Binary files differ
diff --git a/docs/reference/plot.mkinfit-4.png b/docs/reference/plot.mkinfit-4.png
index a832ede2..70a936ee 100644
--- a/docs/reference/plot.mkinfit-4.png
+++ b/docs/reference/plot.mkinfit-4.png
Binary files differ
diff --git a/docs/reference/plot.mkinfit-5.png b/docs/reference/plot.mkinfit-5.png
new file mode 100644
index 00000000..2e208996
--- /dev/null
+++ b/docs/reference/plot.mkinfit-5.png
Binary files differ
diff --git a/docs/reference/plot.mkinfit-6.png b/docs/reference/plot.mkinfit-6.png
new file mode 100644
index 00000000..1da876b4
--- /dev/null
+++ b/docs/reference/plot.mkinfit-6.png
Binary files differ
diff --git a/docs/reference/plot.mkinfit.html b/docs/reference/plot.mkinfit.html
index 525200ff..7bfc17f6 100644
--- a/docs/reference/plot.mkinfit.html
+++ b/docs/reference/plot.mkinfit.html
@@ -36,7 +36,7 @@
from a previous successful call to mkinfit and plots
the observed data together with the solution of the fitted model.
If the current plot device is a tikz device,
- then latex is being used for the formatting of the chi2 error level,
+ then latex is being used for the formatting of the chi2 error level,
if show_errmin = TRUE." />
<meta name="twitter:card" content="summary" />
@@ -137,7 +137,7 @@ If the current plot device is a tikz device,
from a previous successful call to <code><a href='mkinfit.html'>mkinfit</a></code> and plots
the observed data together with the solution of the fitted model.</p>
<p>If the current plot device is a <code><a href='https://www.rdocumentation.org/packages/tikzDevice/topics/tikz'>tikz</a></code> device,
- then latex is being used for the formatting of the chi2 error level,
+ then latex is being used for the formatting of the chi2 error level,
if <code>show_errmin = TRUE</code>.</p>
</div>
@@ -151,7 +151,9 @@ plot(x, fit = x,
col_obs = 1:length(obs_vars), pch_obs = col_obs,
lty_obs = rep(1, length(obs_vars)),
add = FALSE, legend = !add,
- show_residuals = FALSE, maxabs = "auto",
+ show_residuals = FALSE,
+ show_errplot = FALSE,
+ maxabs = "auto",
sep_obs = FALSE, rel.height.middle = 0.9,
lpos = "topright", inset = c(0.05, 0.05),
show_errmin = FALSE, errmin_digits = 3, &#8230;)
@@ -213,11 +215,18 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, &#8230
<tr>
<th>show_residuals</th>
<td><p>Should residuals be shown? If only one plot of the fits is shown, the
- residual plot is in the lower third of the plot? Otherwise, i.e. if
+ residual plot is in the lower third of the plot. Otherwise, i.e. if
"sep_obs" is given, the residual plots will be located to the right of
the plots of the fitted curves.</p></td>
</tr>
<tr>
+ <th>show_errplot</th>
+ <td><p>Should squared residuals and the error model be shown? If only one plot of
+ the fits is shown, this plot is in the lower third of the plot.
+ Otherwise, i.e. if "sep_obs" is given, the residual plots will be located
+ to the right of the plots of the fitted curves.</p></td>
+ </tr>
+ <tr>
<th>maxabs</th>
<td><p>Maximum absolute value of the residuals. This is used for the scaling of
the y axis and defaults to "auto".</p></td>
@@ -263,14 +272,18 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, &#8230
<pre class="examples"><div class='input'><span class='co'># One parent compound, one metabolite, both single first order, path from</span>
<span class='co'># parent to sink included</span>
<span class='no'>SFO_SFO</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinmod.html'>mkinmod</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='st'>"m1"</span>, <span class='kw'>full</span> <span class='kw'>=</span> <span class='st'>"Parent"</span>),
- <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='kw'>full</span> <span class='kw'>=</span> <span class='st'>"Metabolite M1"</span> ))</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>)</div><div class='img'><img src='plot.mkinfit-1.png' alt='' width='700' height='433' /></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>show_residuals</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='img'><img src='plot.mkinfit-2.png' alt='' width='700' height='433' /></div><div class='input'>
+ <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='kw'>full</span> <span class='kw'>=</span> <span class='st'>"Metabolite M1"</span> ))</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>error_model</span> <span class='kw'>=</span> <span class='st'>"tc"</span>)</div><div class='output co'>#&gt; <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>)</div><div class='img'><img src='plot.mkinfit-1.png' alt='' width='700' height='433' /></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>show_residuals</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='img'><img src='plot.mkinfit-2.png' alt='' width='700' height='433' /></div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>show_errplot</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='img'><img src='plot.mkinfit-3.png' alt='' width='700' height='433' /></div><div class='input'>
<span class='co'># Show the observed variables separately</span>
-<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>sep_obs</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"topright"</span>, <span class='st'>"bottomright"</span>))</div><div class='img'><img src='plot.mkinfit-3.png' alt='' width='700' height='433' /></div><div class='input'>
+<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>sep_obs</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"topright"</span>, <span class='st'>"bottomright"</span>))</div><div class='img'><img src='plot.mkinfit-4.png' alt='' width='700' height='433' /></div><div class='input'>
<span class='co'># Show the observed variables separately, with residuals</span>
<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>sep_obs</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>show_residuals</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"topright"</span>, <span class='st'>"bottomright"</span>),
- <span class='kw'>show_errmin</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='img'><img src='plot.mkinfit-4.png' alt='' width='700' height='433' /></div><div class='input'>
+ <span class='kw'>show_errmin</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='img'><img src='plot.mkinfit-5.png' alt='' width='700' height='433' /></div><div class='input'>
<span class='co'># The same can be obtained with less typing, using the convenience function plot_sep</span>
-<span class='fu'>plot_sep</span>(<span class='no'>fit</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"topright"</span>, <span class='st'>"bottomright"</span>))</div></pre>
+<span class='fu'>plot_sep</span>(<span class='no'>fit</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"topright"</span>, <span class='st'>"bottomright"</span>))
+
+<span class='co'># Show the observed variables separately, with the error model</span>
+<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fit</span>, <span class='kw'>sep_obs</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>show_errplot</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>lpos</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"topright"</span>, <span class='st'>"bottomright"</span>),
+ <span class='kw'>show_errmin</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='img'><img src='plot.mkinfit-6.png' alt='' width='700' height='433' /></div></pre>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
diff --git a/docs/reference/plot.mmkin-2.png b/docs/reference/plot.mmkin-2.png
index 555cb7d6..25ed01cc 100644
--- a/docs/reference/plot.mmkin-2.png
+++ b/docs/reference/plot.mmkin-2.png
Binary files differ
diff --git a/docs/reference/plot.mmkin-4.png b/docs/reference/plot.mmkin-4.png
new file mode 100644
index 00000000..b03dffb2
--- /dev/null
+++ b/docs/reference/plot.mmkin-4.png
Binary files differ
diff --git a/docs/reference/plot.mmkin.html b/docs/reference/plot.mmkin.html
index b3f2de66..3037ca24 100644
--- a/docs/reference/plot.mmkin.html
+++ b/docs/reference/plot.mmkin.html
@@ -141,8 +141,9 @@ If the current plot device is a tikz device,
</div>
<pre class="usage"><span class='co'># S3 method for mmkin</span>
-<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>x</span>, <span class='kw'>main</span> <span class='kw'>=</span> <span class='st'>"auto"</span>, <span class='kw'>legends</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>errmin_var</span> <span class='kw'>=</span> <span class='st'>"All data"</span>, <span class='kw'>errmin_digits</span> <span class='kw'>=</span> <span class='fl'>3</span>,
- <span class='kw'>cex</span> <span class='kw'>=</span> <span class='fl'>0.7</span>, <span class='kw'>rel.height.middle</span> <span class='kw'>=</span> <span class='fl'>0.9</span>, <span class='no'>...</span>)</pre>
+<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>x</span>, <span class='kw'>main</span> <span class='kw'>=</span> <span class='st'>"auto"</span>, <span class='kw'>legends</span> <span class='kw'>=</span> <span class='fl'>1</span>,
+ <span class='kw'>resplot</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"time"</span>, <span class='st'>"errmod"</span>), <span class='kw'>errmin_var</span> <span class='kw'>=</span> <span class='st'>"All data"</span>, <span class='kw'>errmin_digits</span> <span class='kw'>=</span> <span class='fl'>3</span>,
+ <span class='kw'>cex</span> <span class='kw'>=</span> <span class='fl'>0.7</span>, <span class='kw'>rel.height.middle</span> <span class='kw'>=</span> <span class='fl'>0.9</span>, <span class='no'>...</span>)</pre>
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
@@ -160,6 +161,12 @@ If the current plot device is a tikz device,
<td><p>An index for the fits for which legends should be shown.</p></td>
</tr>
<tr>
+ <th>resplot</th>
+ <td><p>Should the residuals plotted against time, using <code><a href='mkinresplot.html'>mkinresplot</a></code>,
+ or as squared residuals against predicted values, with the error model,
+ using <code><a href='mkinerrplot.html'>mkinerrplot</a></code>.</p></td>
+ </tr>
+ <tr>
<th>errmin_var</th>
<td><p>The variable for which the FOCUS chi2 error value should be shown.</p></td>
</tr>
@@ -187,15 +194,17 @@ If the current plot device is a tikz device,
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
- <pre class="examples"><div class='input'> <span class='co'># Only use one core not to offend CRAN checks</span>
+ <pre class="examples"><div class='input'> </div><div class='input'> <span class='co'># Only use one core not to offend CRAN checks</span>
<span class='no'>fits</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mmkin.html'>mmkin</a></span>(<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='st'>"FOMC"</span>, <span class='st'>"HS"</span>),
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/list'>list</a></span>(<span class='st'>"FOCUS B"</span> <span class='kw'>=</span> <span class='no'>FOCUS_2006_B</span>, <span class='st'>"FOCUS C"</span> <span class='kw'>=</span> <span class='no'>FOCUS_2006_C</span>), <span class='co'># named list for titles</span>
- <span class='kw'>cores</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
+ <span class='kw'>cores</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>, <span class='kw'>error_model</span> <span class='kw'>=</span> <span class='st'>"tc"</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fits</span>[, <span class='st'>"FOCUS C"</span>])</div><div class='img'><img src='plot.mmkin-1.png' alt='' width='700' height='433' /></div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fits</span>[<span class='st'>"FOMC"</span>, ])</div><div class='img'><img src='plot.mmkin-2.png' alt='' width='700' height='433' /></div><div class='input'>
<span class='co'># We can also plot a single fit, if we like the way plot.mmkin works, but then the plot</span>
<span class='co'># height should be smaller than the plot width (this is not possible for the html pages</span>
<span class='co'># generated by pkgdown, as far as I know).</span>
- <span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fits</span>[<span class='st'>"FOMC"</span>, <span class='st'>"FOCUS C"</span>]) <span class='co'># same as plot(fits[1, 2])</span></div><div class='img'><img src='plot.mmkin-3.png' alt='' width='700' height='433' /></div></pre>
+ <span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fits</span>[<span class='st'>"FOMC"</span>, <span class='st'>"FOCUS C"</span>]) <span class='co'># same as plot(fits[1, 2])</span></div><div class='img'><img src='plot.mmkin-3.png' alt='' width='700' height='433' /></div><div class='input'>
+ <span class='co'># Show the error models</span>
+ <span class='fu'><a href='https://www.rdocumentation.org/packages/graphics/topics/plot'>plot</a></span>(<span class='no'>fits</span>[<span class='st'>"FOMC"</span>, ], <span class='kw'>resplot</span> <span class='kw'>=</span> <span class='st'>"errmod"</span>)</div><div class='img'><img src='plot.mmkin-4.png' alt='' width='700' height='433' /></div><div class='input'> </div></pre>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html
index 9c4a21a9..b3151da1 100644
--- a/docs/reference/summary.mkinfit.html
+++ b/docs/reference/summary.mkinfit.html
@@ -211,15 +211,15 @@
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='fu'><a href='mkinmod.html'>mkinmod</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>)), <span class='no'>FOCUS_2006_A</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>))</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.49.4
#&gt; R version used for fitting: 3.6.0
-#&gt; Date of fit: Tue May 7 08:37:31 2019
-#&gt; Date of summary: Tue May 7 08:37:31 2019
+#&gt; Date of fit: Wed May 8 20:52:12 2019
+#&gt; Date of summary: Wed May 8 20:52:12 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent_sink * parent
#&gt;
#&gt; Model predictions using solution type analytical
#&gt;
-#&gt; Fitted using 131 model solutions performed in 0.277 s
+#&gt; Fitted using 131 model solutions performed in 0.266 s
#&gt;
#&gt; Error model:
#&gt; Constant variance
diff --git a/man/mkinerrplot.Rd b/man/mkinerrplot.Rd
new file mode 100644
index 00000000..4cbb5eb7
--- /dev/null
+++ b/man/mkinerrplot.Rd
@@ -0,0 +1,75 @@
+\name{mkinerrplot}
+\alias{mkinerrplot}
+\title{
+ Function to plot squared residuals and the error model for an mkin object
+}
+\description{
+ This function plots the squared residuals for the specified subset of the
+ observed variables from an mkinfit object. In addition, one or more
+ dashed line(s) show the fitted error model.
+ A combined plot of the fitted model and this error model plot can be
+ obtained with \code{\link{plot.mkinfit}}
+ using the argument \code{show_errplot = TRUE}.
+}
+\usage{
+ mkinerrplot(object,
+ obs_vars = names(object$mkinmod$map),
+ xlim = c(0, 1.1 * max(object$data$predicted)),
+ xlab = "Predicted", ylab = "Squared residual",
+ maxy = "auto", legend= TRUE, lpos = "topright",
+ col_obs = "auto", pch_obs = "auto",
+ ...)
+}
+\arguments{
+ \item{object}{
+ A fit represented in an \code{\link{mkinfit}} object.
+ }
+ \item{obs_vars}{
+ A character vector of names of the observed variables for which residuals
+ should be plotted. Defaults to all observed variables in the model
+ }
+ \item{xlim}{
+ plot range in x direction.
+ }
+ \item{xlab}{
+ Label for the x axis.
+ }
+ \item{ylab}{
+ Label for the y axis.
+ }
+ \item{maxy}{
+ Maximum value of the residuals. This is used for the scaling of
+ the y axis and defaults to "auto".
+ }
+ \item{legend}{
+ Should a legend be plotted?
+ }
+ \item{lpos}{
+ Where should the legend be placed? Default is "topright". Will be passed on to
+ \code{\link{legend}}.
+ }
+ \item{col_obs}{
+ Colors for the observed variables.
+ }
+ \item{pch_obs}{
+ Symbols to be used for the observed variables.
+ }
+ \item{\dots}{
+ further arguments passed to \code{\link{plot}}.
+ }
+}
+\value{
+ Nothing is returned by this function, as it is called for its side effect, namely to produce a plot.
+}
+\author{
+ Johannes Ranke
+}
+\seealso{
+ \code{\link{mkinplot}}, for a way to plot the data and the fitted lines of the
+ mkinfit object. }
+\examples{
+model <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"))
+fit <- mkinfit(model, FOCUS_2006_D, error_model = "tc", quiet = TRUE)
+mkinerrplot(fit)
+}
+\keyword{ hplot }
diff --git a/man/plot.mkinfit.Rd b/man/plot.mkinfit.Rd
index 733cdf76..9514c5e5 100644
--- a/man/plot.mkinfit.Rd
+++ b/man/plot.mkinfit.Rd
@@ -10,7 +10,7 @@
the observed data together with the solution of the fitted model.
If the current plot device is a \code{\link[tikzDevice]{tikz}} device,
- then latex is being used for the formatting of the chi2 error level,
+ then latex is being used for the formatting of the chi2 error level,
if \code{show_errmin = TRUE}.
}
\usage{
@@ -22,7 +22,9 @@
col_obs = 1:length(obs_vars), pch_obs = col_obs,
lty_obs = rep(1, length(obs_vars)),
add = FALSE, legend = !add,
- show_residuals = FALSE, maxabs = "auto",
+ show_residuals = FALSE,
+ show_errplot = FALSE,
+ maxabs = "auto",
sep_obs = FALSE, rel.height.middle = 0.9,
lpos = "topright", inset = c(0.05, 0.05),
show_errmin = FALSE, errmin_digits = 3, \dots)
@@ -69,10 +71,16 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, \dots)
}
\item{show_residuals}{
Should residuals be shown? If only one plot of the fits is shown, the
- residual plot is in the lower third of the plot? Otherwise, i.e. if
+ residual plot is in the lower third of the plot. Otherwise, i.e. if
"sep_obs" is given, the residual plots will be located to the right of
the plots of the fitted curves.
}
+ \item{show_errplot}{
+ Should squared residuals and the error model be shown? If only one plot of
+ the fits is shown, this plot is in the lower third of the plot.
+ Otherwise, i.e. if "sep_obs" is given, the residual plots will be located
+ to the right of the plots of the fitted curves.
+ }
\item{maxabs}{
Maximum absolute value of the residuals. This is used for the scaling of
the y axis and defaults to "auto".
@@ -109,9 +117,10 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, \dots)
# parent to sink included
SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"),
m1 = mkinsub("SFO", full = "Metabolite M1" ))
-fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE)
+fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE, error_model = "tc")
plot(fit)
plot(fit, show_residuals = TRUE)
+plot(fit, show_errplot = TRUE)
# Show the observed variables separately
plot(fit, sep_obs = TRUE, lpos = c("topright", "bottomright"))
@@ -122,6 +131,10 @@ plot(fit, sep_obs = TRUE, show_residuals = TRUE, lpos = c("topright", "bottomrig
# The same can be obtained with less typing, using the convenience function plot_sep
plot_sep(fit, lpos = c("topright", "bottomright"))
+
+# Show the observed variables separately, with the error model
+plot(fit, sep_obs = TRUE, show_errplot = TRUE, lpos = c("topright", "bottomright"),
+ show_errmin = TRUE)
}
\author{
Johannes Ranke
diff --git a/man/plot.mmkin.Rd b/man/plot.mmkin.Rd
index b3312292..44e5e4c7 100644
--- a/man/plot.mmkin.Rd
+++ b/man/plot.mmkin.Rd
@@ -12,8 +12,9 @@
then latex is being used for the formatting of the chi2 error level.
}
\usage{
-\method{plot}{mmkin}(x, main = "auto", legends = 1, errmin_var = "All data", errmin_digits = 3,
- cex = 0.7, rel.height.middle = 0.9, ...)
+\method{plot}{mmkin}(x, main = "auto", legends = 1,
+ resplot = c("time", "errmod"), errmin_var = "All data", errmin_digits = 3,
+ cex = 0.7, rel.height.middle = 0.9, ...)
}
\arguments{
\item{x}{
@@ -25,6 +26,11 @@
\item{legends}{
An index for the fits for which legends should be shown.
}
+ \item{resplot}{
+ Should the residuals plotted against time, using \code{\link{mkinresplot}},
+ or as squared residuals against predicted values, with the error model,
+ using \code{\link{mkinerrplot}}.
+}
\item{errmin_var}{
The variable for which the FOCUS chi2 error value should be shown.
}
@@ -48,10 +54,11 @@
Johannes Ranke
}
\examples{
+ \dontrun{
# Only use one core not to offend CRAN checks
fits <- mmkin(c("FOMC", "HS"),
list("FOCUS B" = FOCUS_2006_B, "FOCUS C" = FOCUS_2006_C), # named list for titles
- cores = 1, quiet = TRUE)
+ cores = 1, quiet = TRUE, error_model = "tc")
plot(fits[, "FOCUS C"])
plot(fits["FOMC", ])
@@ -59,4 +66,8 @@
# height should be smaller than the plot width (this is not possible for the html pages
# generated by pkgdown, as far as I know).
plot(fits["FOMC", "FOCUS C"]) # same as plot(fits[1, 2])
+
+ # Show the error models
+ plot(fits["FOMC", ], resplot = "errmod")
+ }
}
diff --git a/test.log b/test.log
index 230aaf7b..0fcca094 100644
--- a/test.log
+++ b/test.log
@@ -2,33 +2,28 @@ Loading mkin
Testing mkin
✔ | OK F W S | Context
⠏ | 0 | Export dataset for reading into CAKE ✔ | 1 | Export dataset for reading into CAKE
- ⠏ | 0 | Error model fitting ⠋ | 1 | Error model fitting ⠹ | 3 | Error model fitting ⠸ | 4 | Error model fitting ⠼ | 5 | Error model fitting ⠴ | 6 | Error model fitting ⠧ | 8 | Error model fitting ⠏ | 10 | Error model fitting ⠋ | 11 | Error model fitting ✔ | 12 | Error model fitting [214.9 s]
- ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ✔ | 3 | Calculation of FOCUS chi2 error levels [2.4 s]
- ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.7 s]
+ ⠏ | 0 | Error model fitting ⠋ | 1 | Error model fitting ⠹ | 3 | Error model fitting ⠸ | 4 | Error model fitting ⠼ | 5 | Error model fitting ⠴ | 6 | Error model fitting ⠧ | 8 | Error model fitting ⠏ | 10 | Error model fitting ⠋ | 11 | Error model fitting ✔ | 12 | Error model fitting [214.1 s]
+ ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ✔ | 3 | Calculation of FOCUS chi2 error levels [2.3 s]
+ ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.8 s]
⠏ | 0 | Test fitting the decline of metabolites from their maximum ⠋ | 1 | Test fitting the decline of metabolites from their maximum ⠹ | 3 | Test fitting the decline of metabolites from their maximum ⠼ | 5 | Test fitting the decline of metabolites from their maximum ✔ | 6 | Test fitting the decline of metabolites from their maximum [0.9 s]
⠏ | 0 | Fitting the logistic model ⠋ | 1 | Fitting the logistic model ✔ | 1 | Fitting the logistic model [0.9 s]
⠏ | 0 | Test dataset class mkinds used in gmkin ✔ | 1 | Test dataset class mkinds used in gmkin
- ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 10 1 | Special cases of mkinfit calls ⠙ | 11 1 | Special cases of mkinfit calls ✖ | 11 1 | Special cases of mkinfit calls [2.8 s]
-────────────────────────────────────────────────────────────────────────────────
-test_mkinfit_errors.R:72: failure: We get reproducible output if quiet = FALSE
-`mkinfit("DFOP", FOCUS_2006_C, reweight.method = "tc", trace_parms = TRUE)` has changed from known value recorded in 'DFOP_FOCUS_C_messages.txt'.
-Lengths differ: 165 is not 410
-────────────────────────────────────────────────────────────────────────────────
- ⠏ | 0 | mkinmod model generation and printing ⠇ | 9 | mkinmod model generation and printing ✔ | 9 | mkinmod model generation and printing [0.1 s]
+ ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.9 s]
+ ⠏ | 0 | mkinmod model generation and printing ⠇ | 9 | mkinmod model generation and printing ✔ | 9 | mkinmod model generation and printing [0.2 s]
⠏ | 0 | Model predictions with mkinpredict ⠋ | 1 | Model predictions with mkinpredict ✔ | 3 | Model predictions with mkinpredict [0.3 s]
- ⠏ | 0 | Evaluations according to 2015 NAFTA guidance ⠙ | 2 | Evaluations according to 2015 NAFTA guidance ⠇ | 9 | Evaluations according to 2015 NAFTA guidance ⠏ | 10 | Evaluations according to 2015 NAFTA guidance ⠴ | 16 | Evaluations according to 2015 NAFTA guidance ✔ | 16 | Evaluations according to 2015 NAFTA guidance [4.0 s]
- ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [40.5 s]
- ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.2 s]
+ ⠏ | 0 | Evaluations according to 2015 NAFTA guidance ⠙ | 2 | Evaluations according to 2015 NAFTA guidance ⠇ | 9 | Evaluations according to 2015 NAFTA guidance ⠏ | 10 | Evaluations according to 2015 NAFTA guidance ⠴ | 16 | Evaluations according to 2015 NAFTA guidance ✔ | 16 | Evaluations according to 2015 NAFTA guidance [4.1 s]
+ ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [40.1 s]
+ ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.3 s]
⠏ | 0 | Summary ✔ | 1 | Summary
⠏ | 0 | Plotting ⠹ | 3 | Plotting ✔ | 4 | Plotting [0.3 s]
⠏ | 0 | AIC calculation ✔ | 2 | AIC calculation
- ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.3 s]
- ⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.1 s]
+ ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.2 s]
+ ⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.0 s]
══ Results ═════════════════════════════════════════════════════════════════════
-Duration: 291.1 s
+Duration: 289.7 s
-OK: 114
-Failed: 1
+OK: 115
+Failed: 0
Warnings: 0
Skipped: 0
diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf
index df408385..da2e2fbe 100644
--- a/tests/testthat/FOCUS_2006_D.csf
+++ b/tests/testthat/FOCUS_2006_D.csf
@@ -5,7 +5,7 @@ Description:
MeasurementUnits: % AR
TimeUnits: days
Comments: Created using mkin::CAKE_export
-Date: 2019-05-07
+Date: 2019-05-08
Optimiser: IRLS
[Data]
diff --git a/vignettes/mkin_benchmarks.rda b/vignettes/mkin_benchmarks.rda
index f8723d56..e7a1bed1 100644
--- a/vignettes/mkin_benchmarks.rda
+++ b/vignettes/mkin_benchmarks.rda
Binary files differ

Contact - Imprint