From 037cdd16f39b8b889e7bda26961a90cd68c6f5a9 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 31 May 2019 14:32:19 +0200 Subject: Experimental data for finding error model algorithm --- data/experimental_data_for_UBA_2019.rda | Bin 0 -> 8445 bytes man/experimental_data_for_UBA.Rd | 65 ++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 data/experimental_data_for_UBA_2019.rda create mode 100644 man/experimental_data_for_UBA.Rd diff --git a/data/experimental_data_for_UBA_2019.rda b/data/experimental_data_for_UBA_2019.rda new file mode 100644 index 00000000..46b5de20 Binary files /dev/null and b/data/experimental_data_for_UBA_2019.rda differ diff --git a/man/experimental_data_for_UBA.Rd b/man/experimental_data_for_UBA.Rd new file mode 100644 index 00000000..797444d8 --- /dev/null +++ b/man/experimental_data_for_UBA.Rd @@ -0,0 +1,65 @@ +\name{experimental_data_for_UBA_2019} +\alias{experimental_data_for_UBA_2019} +\docType{data} +\title{ + Experimental datasets used for development and testing of error models +} +\description{ + The 12 datasets were extracted from active substance evaluation dossiers published + by EFSA. Kinetic evaluations shown for these datasets are intended to illustrate + and advance error model specifications. The fact that these data and some + results are shown here do not imply a license to use them in the context of + pesticide registrations, as the use of the data may be constrained by + data protection regulations. +} +\usage{experimental_data_for_UBA_2019} +\format{ + A list containing twelve datasets as an R6 class defined by \code{\link{mkinds}}, + each containing, among others, the following components + \describe{ + \item{\code{title}}{The name of the dataset, e.g. \code{Soil 1}} + \item{\code{data}}{A data frame with the data in the form expected by \code{\link{mkinfit}}} + } +} +\source{ + Ranke (2019) Documentation of results obtained for the error model expertise + written for the German Umweltbundesamt. +} +\examples{\dontrun{ + +# Model definitions +sfo_sfo <- mkinmod( + parent = mkinsub("SFO", to = "A1"), + A1 = mkinsub("SFO"), + use_of_ff = "max" +) + +dfop_sfo <- mkinmod( + parent = mkinsub("DFOP", to = "A1"), + A1 = mkinsub("SFO"), + use_of_ff = "max" +) + +sfo_sfo_sfo <- mkinmod( + parent = mkinsub("SFO", to = "A1"), + A1 = mkinsub("SFO", to = "A2"), + A2 = mkinsub("SFO"), + use_of_ff = "max" +) + +dfop_sfo_sfo <- mkinmod( + parent = mkinsub("DFOP", to = "A1"), + A1 = mkinsub("SFO", to = "A2"), + A2 = mkinsub("SFO"), + use_of_ff = "max" +) +d_1_2 <- lapply(experimental_data_for_UBA_2019[1:2], function(x) x$data) +names(d_1_2) <- paste("Soil", 1:2) + + +f_1_2_tc <- mmkin(list("DFOP-SFO-SFO" = dfop_sfo_sfo), d_1_2, error_model = "tc") + +plot(f_1_2_tc, resplot = "errmod") + +}} +\keyword{datasets} -- cgit v1.2.1 From b6ea4f22fc1b6d1caea29f6b1e44774d14d6697c Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Mon, 3 Jun 2019 07:56:44 +0200 Subject: Status von Samstag morgen - untested --- R/mkinfit.R | 100 +++++++++++++++++++++++-------------- tests/testthat/test_error_models.R | 42 ++++++++++++++++ 2 files changed, 105 insertions(+), 37 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index bc8b9d11..224dc7bd 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -34,6 +34,7 @@ mkinfit <- function(mkinmod, observed, quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, error_model = c("const", "obs", "tc"), + error_model_algorithm = c("direct", "twostep", "threestep", "fourstep", "IRLS"), trace_parms = FALSE, ...) { @@ -91,7 +92,7 @@ mkinfit <- function(mkinmod, observed, if (length(wrongpar.names) > 0) { warning("Initial parameter(s) ", paste(wrongpar.names, collapse = ", "), " not used in the model") - parms.ini <- parms.ini[setdiff(names(parms.ini), wrongpar.names)] + parms.ini <- parms.ini[setdiff(names(parms.ini), wrongpar.names)] } # Warn that the sum of formation fractions may exceed one if they are not @@ -244,6 +245,7 @@ mkinfit <- function(mkinmod, observed, # Get the error model err_mod <- match.arg(error_model) + error_model_algorithm = match.arg(error_model_algorithm) errparm_names <- switch(err_mod, "const" = "sigma", "obs" = paste0("sigma_", obs_vars), @@ -276,34 +278,48 @@ mkinfit <- function(mkinmod, observed, length.out = n.outtimes)))) # Define log-likelihood function for optimisation, including (back)transformations - nlogLik <- function(P, trans = TRUE, OLS = FALSE, local = FALSE, update_data = TRUE, ...) + nlogLik <- function(P, trans = TRUE, OLS = FALSE, fixed_degparms = FALSE, fixed_errparms = FALSE, update_data = TRUE, ...) { assign("calls", calls + 1, inherits = TRUE) # Increase the model solution counter - P.orig <- P # Trace parameter values if requested and if we are actually optimising if(trace_parms & update_data) cat(P, "\n") - # If we do a local optimisation of the error model, the initials - # for the state variabels and the parameters are given as 'local' - if (local[1] != FALSE) { - P <- local + if (fixed_degparms[1] != FALSE) { + degparms <- fixed_degparms + errparms <- P # This version of errparms is local to the function + degparms_fixed = TRUE + } else { + degparms_fixed = FALSE + } + + if (fixed_errparms[1] != FALSE) { + degparms <- P + errparms <- fixed_errparms # Local to the function + errparms_fixed = TRUE + } else { + errparms_fixed = FALSE + } + + if (OLS) { + degparms <- P + } + + if (!OLS & !degparms_fixed & !errparms_fixed) { + degparms <- P[1:(length(P) - length(errparms))] + errparms <- P[(length(degparms) + 1):length(P)] } # Initial states for t0 if(length(state.ini.optim) > 0) { - odeini <- c(P[1:length(state.ini.optim)], state.ini.fixed) + odeini <- c(degparms[1:length(state.ini.optim)], state.ini.fixed) names(odeini) <- c(state.ini.optim.boxnames, state.ini.fixed.boxnames) } else { odeini <- state.ini.fixed names(odeini) <- state.ini.fixed.boxnames } - if (OLS | identical(P, local)) { - odeparms.optim <- P[(length(state.ini.optim) + 1):length(P)] - } else { - odeparms.optim <- P[(length(state.ini.optim) + 1):(length(P) - length(errparms))] - } + odeparms.optim <- degparms[(length(state.ini.optim) + 1):length(degparms)] if (trans == TRUE) { odeparms <- c(odeparms.optim, transparms.fixed) @@ -322,23 +338,20 @@ mkinfit <- function(mkinmod, observed, method.ode = method.ode, atol = atol, rtol = rtol, ...) - # Get back the original parameter vector to get the error model parameters - P <- P.orig - out_long <- mkin_wide_to_long(out, time = "time") if (err_mod == "const") { - observed$std <- P["sigma"] + observed$std <- errparms["sigma"] } if (err_mod == "obs") { std_names <- paste0("sigma_", observed$name) - observed$std <- P[std_names] + observed$std <- errparms[std_names] } if (err_mod == "tc") { tmp <- merge(observed, out_long, by = c("time", "name")) tmp$name <- ordered(tmp$name, levels = obs_vars) tmp <- tmp[order(tmp$name, tmp$time), ] - observed$std <- sqrt(P["sigma_low"]^2 + tmp$value.y^2 * P["rsd_high"]^2) + observed$std <- sqrt(errparms["sigma_low"]^2 + tmp$value.y^2 * errparms["rsd_high"]^2) } data_log_lik <- merge(observed[c("name", "time", "value", "std")], out_long, @@ -426,31 +439,44 @@ mkinfit <- function(mkinmod, observed, # In the inital run, we assume a constant standard deviation and do # not optimise it, as this is unnecessary and leads to instability of the # fit (most obvious when fitting the IORE model) - if (!quiet) message("Ordinary least squares optimisation") - parms.start <- c(state.ini.optim, transparms.optim) - fit.ols <- nlminb(parms.start, nlogLik, control = control, - lower = lower[names(parms.start)], - upper = upper[names(parms.start)], OLS = TRUE, ...) - - if (err_mod == "const") { + degparms <- c(state.ini.optim, transparms.optim) + + if (err_mod == "const" | error_model_algorithm != "direct") { + if (!quiet) message("Ordinary least squares optimisation") + fit <- nlminb(degparms, nlogLik, control = control, + lower = lower[names(degparms)], + upper = upper[names(degparms)], OLS = TRUE, ...) + degparms <- fit$par # Get the maximum likelihood estimate for sigma at the optimum parameter values data_errmod$residual <- data_errmod$value.observed - data_errmod$value.predicted - sigma_mle = sqrt(sum(data_errmod$residual^2)/nrow(data_errmod)) + sigma_mle <- sqrt(sum(data_errmod$residual^2)/nrow(data_errmod)) - errparms = c(sigma = sigma_mle) - fit <- fit.ols - fit$logLik <- - nlogLik(c(fit$par, sigma = sigma_mle), OLS = FALSE) - } else { - # After the OLS stop we fit the error model with fixed degradation model - # parameters + if (err_mod == "const") { + errparms <- c(sigma = sigma_mle) + } + + nlogLik.current <- nlogLik(c(degparms, errparms), OLS = FALSE) + fit$logLik <- - nlogLik.current + } + if (error_model_algorithm %in% c("threestep", "fourstep")) { if (!quiet) message("Optimising the error model") - fit.err <- nlminb(errparms, nlogLik, control = control, + fit <- nlminb(errparms, nlogLik, control = control, lower = lower[names(errparms)], upper = upper[names(errparms)], - local = fit.ols$par, ...) - errparms.tmp <- fit.err$par + degparms_fixed = degparms, ...) + errparms <- fit$par + } + if (error_model_algorithm == "fourstep") { + if (!quiet) message("Optimising the degradation model") + fit <- nlminb(degparms, nlogLik, control = control, + lower = lower[names(degparms)], + upper = upper[names(degparms)], + errparms_fixed = errparms, ...) + degparms <- fit$par + } + if (error_model_algorithm %in% c("direct", "twostep", "threestep", "fourstep")) { if (!quiet) message("Optimising the complete model") - parms.start <- c(fit.ols$par, errparms.tmp) + parms.start <- c(degparms, errparms) fit <- nlminb(parms.start, nlogLik, lower = lower[names(parms.start)], upper = upper[names(parms.start)], diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index d7a5cea8..94703e7f 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -177,3 +177,45 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { # from 15 datasets expect_true(all(abs(tcf_met_2_15_tc_error_model_errors) < 0.10)) }) + +test_that("The two-component error model finds the best known AIC values for parent models", { + skip_on_cran() + experimental_data_for_UBA_2019 + library(parallel) + source("~/git/mkin/R/mkinfit.R") + source("~/git/mkin/R/mmkin.R") + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data) + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "direct") + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "twostep") + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "threestep") + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "fourstep") + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "IRLS") + AIC(f_9) + f_tc_exp <- mmkin(c("SFO"), + lapply(experimental_data_for_UBA_2019, function(x) x$data), + error_model = "tc", + error_model_algorithm = "direct", + quiet = TRUE) + f_tc_exp <- mmkin(c("SFO"), + lapply(experimental_data_for_UBA_2019, function(x) x$data), + error_model = "tc", + error_model_algorithm = "twostep", + quiet = TRUE) + f_tc_exp <- mmkin(c("SFO"), + lapply(experimental_data_for_UBA_2019, function(x) x$data), + error_model = "tc", + error_model_algorithm = "threestep", + quiet = TRUE) + + AIC_exp <- lapply(f_tc_exp, AIC) + dim(AIC_exp) <- dim(f_tc_exp) + dimnames(AIC_exp) <- dimnames(f_tc_exp) + expect_equivalent(round(AIC_exp["SFO", c(9, 11, 12)], 1), c(134.9, 125.5, 82.0)) +}) + + -- cgit v1.2.1 From 9a96391589fef9f80f9c6c4881cc48a509cb75f2 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 11:15:52 +0200 Subject: Algorithms direct, two-, three-, fourstep, IRLS All of them are working now and allow for comparison Based on SFO, DFOP and HS fits to twelve test datasets, only the combination of direct and threestep is needed to find the lowest AIC --- R/mkinfit.R | 50 +++++++++++++++++++++++++++++++------- tests/testthat/test_error_models.R | 50 ++++++++++++++++++++++++++++++++++---- 2 files changed, 86 insertions(+), 14 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 224dc7bd..e0a0e525 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -35,6 +35,7 @@ mkinfit <- function(mkinmod, observed, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, error_model = c("const", "obs", "tc"), error_model_algorithm = c("direct", "twostep", "threestep", "fourstep", "IRLS"), + reweight.tol = 1e-8, reweight.max.iter = 10, trace_parms = FALSE, ...) { @@ -285,7 +286,7 @@ mkinfit <- function(mkinmod, observed, # Trace parameter values if requested and if we are actually optimising if(trace_parms & update_data) cat(P, "\n") - if (fixed_degparms[1] != FALSE) { + if (is.numeric(fixed_degparms)) { degparms <- fixed_degparms errparms <- P # This version of errparms is local to the function degparms_fixed = TRUE @@ -293,7 +294,7 @@ mkinfit <- function(mkinmod, observed, degparms_fixed = FALSE } - if (fixed_errparms[1] != FALSE) { + if (is.numeric(fixed_errparms)) { degparms <- P errparms <- fixed_errparms # Local to the function errparms_fixed = TRUE @@ -364,7 +365,8 @@ mkinfit <- function(mkinmod, observed, sum(dnorm(x = value.observed, mean = value.predicted, sd = std, log = TRUE))) } - # We update the current likelihood and data during the optimisation, not during hessian calculations + # We update the current likelihood and data during the optimisation, not + # during hessian calculations if (update_data) { assign("out_predicted", out_long, inherits = TRUE) @@ -434,11 +436,10 @@ mkinfit <- function(mkinmod, observed, # Show parameter names if tracing is requested if(trace_parms) cat(names_optim, "\n") + # browser() + # Do the fit and take the time until the hessians are calculated fit_time <- system.time({ - # In the inital run, we assume a constant standard deviation and do - # not optimise it, as this is unnecessary and leads to instability of the - # fit (most obvious when fitting the IORE model) degparms <- c(state.ini.optim, transparms.optim) if (err_mod == "const" | error_model_algorithm != "direct") { @@ -463,7 +464,7 @@ mkinfit <- function(mkinmod, observed, fit <- nlminb(errparms, nlogLik, control = control, lower = lower[names(errparms)], upper = upper[names(errparms)], - degparms_fixed = degparms, ...) + fixed_degparms = degparms, ...) errparms <- fit$par } if (error_model_algorithm == "fourstep") { @@ -471,10 +472,11 @@ mkinfit <- function(mkinmod, observed, fit <- nlminb(degparms, nlogLik, control = control, lower = lower[names(degparms)], upper = upper[names(degparms)], - errparms_fixed = errparms, ...) + fixed_errparms = errparms, ...) degparms <- fit$par } - if (error_model_algorithm %in% c("direct", "twostep", "threestep", "fourstep")) { + if (error_model_algorithm %in% c("direct", "twostep", "threestep", "fourstep") & + err_mod != "const") { if (!quiet) message("Optimising the complete model") parms.start <- c(degparms, errparms) fit <- nlminb(parms.start, nlogLik, @@ -483,6 +485,36 @@ mkinfit <- function(mkinmod, observed, control = control, ...) fit$logLik <- - nlogLik.current } + if (err_mod != "const" & error_model_algorithm == "IRLS") { + reweight.diff <- 1 + n.iter <- 0 + errparms_last <- errparms + + while (reweight.diff > reweight.tol & + n.iter < reweight.max.iter) { + + if (!quiet) message("Optimising the error model") + fit <- nlminb(errparms, nlogLik, control = control, + lower = lower[names(errparms)], + upper = upper[names(errparms)], + fixed_degparms = degparms, ...) + errparms <- fit$par + + if (!quiet) message("Optimising the degradation model") + fit <- nlminb(degparms, nlogLik, control = control, + lower = lower[names(degparms)], + upper = upper[names(degparms)], + fixed_errparms = errparms, ...) + degparms <- fit$par + + reweight.diff <- dist(rbind(errparms, errparms_last)) + errparms_last <- errparms + + fit$par <- c(fit$par, errparms) + nlogLik.current <- nlogLik(c(degparms, errparms), OLS = FALSE) + fit$logLik <- - nlogLik.current + } + } # We include the error model in the parameter uncertainty analysis, also # for constant variance, to get a confidence interval for it diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index 94703e7f..c656f7d2 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -180,7 +180,6 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { test_that("The two-component error model finds the best known AIC values for parent models", { skip_on_cran() - experimental_data_for_UBA_2019 library(parallel) source("~/git/mkin/R/mkinfit.R") source("~/git/mkin/R/mmkin.R") @@ -195,27 +194,68 @@ test_that("The two-component error model finds the best known AIC values for par error_model = "tc", error_model_algorithm = "fourstep") f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, error_model = "tc", error_model_algorithm = "IRLS") + f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "d_3") AIC(f_9) - f_tc_exp <- mmkin(c("SFO"), + f_10 <- mkinfit("DFOP", experimental_data_for_UBA_2019[[10]]$data, + error_model = "tc", error_model_algorithm = "IRLS") + f_tc_exp_direct <- mmkin(c("SFO", "DFOP", "HS"), lapply(experimental_data_for_UBA_2019, function(x) x$data), error_model = "tc", error_model_algorithm = "direct", quiet = TRUE) - f_tc_exp <- mmkin(c("SFO"), + f_tc_exp_twostep <- mmkin(c("SFO", "DFOP", "HS"), lapply(experimental_data_for_UBA_2019, function(x) x$data), error_model = "tc", error_model_algorithm = "twostep", quiet = TRUE) - f_tc_exp <- mmkin(c("SFO"), + f_tc_exp_threestep <- mmkin(c("SFO", "DFOP", "HS"), lapply(experimental_data_for_UBA_2019, function(x) x$data), error_model = "tc", error_model_algorithm = "threestep", quiet = TRUE) + f_tc_exp_fourstep <- mmkin(c("SFO", "DFOP", "HS"), + lapply(experimental_data_for_UBA_2019, function(x) x$data), + error_model = "tc", + error_model_algorithm = "fourstep", + quiet = TRUE) + f_tc_exp_IRLS <- mmkin(c("SFO", "DFOP", "HS"), + lapply(experimental_data_for_UBA_2019, function(x) x$data), + error_model = "tc", + error_model_algorithm = "IRLS", + quiet = TRUE) + + AIC_exp_direct <- lapply(f_tc_exp_direct, AIC) + AIC_exp_direct <- lapply(AIC_exp_direct, round, 1) + dim(AIC_exp_direct) <- dim(f_tc_exp_direct) + dimnames(AIC_exp_direct) <- dimnames(f_tc_exp_direct) + + AIC_exp_twostep <- lapply(f_tc_exp_twostep, AIC) + AIC_exp_twostep <- lapply(AIC_exp_twostep, round, 1) + dim(AIC_exp_twostep) <- dim(f_tc_exp_twostep) + dimnames(AIC_exp_twostep) <- dimnames(f_tc_exp_twostep) + + AIC_exp_threestep <- lapply(f_tc_exp_threestep, AIC) + AIC_exp_threestep <- lapply(AIC_exp_threestep, round, 1) + dim(AIC_exp_threestep) <- dim(f_tc_exp_threestep) + dimnames(AIC_exp_threestep) <- dimnames(f_tc_exp_threestep) + + AIC_exp_fourstep <- lapply(f_tc_exp_fourstep, AIC) + AIC_exp_fourstep <- lapply(AIC_exp_fourstep, round, 1) + dim(AIC_exp_fourstep) <- dim(f_tc_exp_fourstep) + dimnames(AIC_exp_fourstep) <- dimnames(f_tc_exp_fourstep) + + AIC_exp_IRLS <- lapply(f_tc_exp_IRLS, AIC) + AIC_exp_IRLS <- lapply(AIC_exp_IRLS, round, 1) + dim(AIC_exp_IRLS) <- dim(f_tc_exp_IRLS) + dimnames(AIC_exp_IRLS) <- dimnames(f_tc_exp_IRLS) AIC_exp <- lapply(f_tc_exp, AIC) dim(AIC_exp) <- dim(f_tc_exp) dimnames(AIC_exp) <- dimnames(f_tc_exp) - expect_equivalent(round(AIC_exp["SFO", c(9, 11, 12)], 1), c(134.9, 125.5, 82.0)) + unlist(AIC_exp["SFO", c(9, 11, 12)]) + expect_equivalent(round(unlist(AIC_exp["SFO", c(9, 11, 12)]), 1), + c(134.9, 125.5, 82.0)) }) -- cgit v1.2.1 From 95178837d3f91e84837628446b5fd468179af2b9 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 15:09:28 +0200 Subject: Additional algorithm "d_c", more tests, docs The new algorithm tries direct optimization of the likelihood, as well as a three step procedure. In this way, we consistently get the model with the highest likelihood for SFO, DFOP and HS for all 12 new test datasets. --- DESCRIPTION | 4 +- NEWS.md | 8 +- R/mkinfit.R | 117 ++++--- _pkgdown.yml | 2 + build.log | 9 + check.log | 14 +- data/experimental_data_for_UBA_2019.rda | Bin 8445 -> 8076 bytes docs/articles/FOCUS_D.html | 14 +- docs/articles/FOCUS_D_files/figure-html/plot-1.png | Bin 98398 -> 97716 bytes .../FOCUS_D_files/figure-html/plot_2-1.png | Bin 14288 -> 14220 bytes docs/articles/FOCUS_L.html | 60 ++-- .../figure-html/unnamed-chunk-10-1.png | Bin 29148 -> 29061 bytes .../figure-html/unnamed-chunk-12-1.png | Bin 54995 -> 54890 bytes .../figure-html/unnamed-chunk-13-1.png | Bin 22098 -> 22017 bytes .../figure-html/unnamed-chunk-15-1.png | Bin 38711 -> 38623 bytes .../figure-html/unnamed-chunk-4-1.png | Bin 23493 -> 23429 bytes .../figure-html/unnamed-chunk-5-1.png | Bin 14858 -> 14826 bytes .../figure-html/unnamed-chunk-6-1.png | Bin 23962 -> 23884 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 27981 -> 27887 bytes .../figure-html/unnamed-chunk-9-1.png | Bin 28407 -> 28307 bytes docs/articles/index.html | 4 +- docs/articles/mkin.html | 6 +- .../mkin_files/figure-html/unnamed-chunk-2-1.png | Bin 114726 -> 113885 bytes docs/articles/twa.html | 6 +- docs/articles/web_only/FOCUS_Z.html | 6 +- .../figure-html/FOCUS_2006_Z_fits_1-1.png | Bin 85592 -> 84962 bytes .../figure-html/FOCUS_2006_Z_fits_10-1.png | Bin 128674 -> 127841 bytes .../figure-html/FOCUS_2006_Z_fits_11-1.png | Bin 127674 -> 127069 bytes .../figure-html/FOCUS_2006_Z_fits_11a-1.png | Bin 96502 -> 95832 bytes .../figure-html/FOCUS_2006_Z_fits_11b-1.png | Bin 22316 -> 22086 bytes .../figure-html/FOCUS_2006_Z_fits_2-1.png | Bin 86198 -> 85657 bytes .../figure-html/FOCUS_2006_Z_fits_3-1.png | Bin 85812 -> 85239 bytes .../figure-html/FOCUS_2006_Z_fits_5-1.png | Bin 101996 -> 101416 bytes .../figure-html/FOCUS_2006_Z_fits_6-1.png | Bin 128979 -> 128185 bytes .../figure-html/FOCUS_2006_Z_fits_7-1.png | Bin 128634 -> 127782 bytes .../figure-html/FOCUS_2006_Z_fits_9-1.png | Bin 108437 -> 107730 bytes docs/articles/web_only/NAFTA_examples.html | 103 +++--- .../NAFTA_examples_files/figure-html/p10-1.png | Bin 53933 -> 53828 bytes .../NAFTA_examples_files/figure-html/p11-1.png | Bin 51316 -> 51210 bytes .../NAFTA_examples_files/figure-html/p12a-1.png | Bin 54573 -> 54489 bytes .../NAFTA_examples_files/figure-html/p12b-1.png | Bin 47194 -> 47070 bytes .../NAFTA_examples_files/figure-html/p13-1.png | Bin 51486 -> 51343 bytes .../NAFTA_examples_files/figure-html/p14-1.png | Bin 54036 -> 53898 bytes .../NAFTA_examples_files/figure-html/p15a-1.png | Bin 51194 -> 51113 bytes .../NAFTA_examples_files/figure-html/p15b-1.png | Bin 53096 -> 52979 bytes .../NAFTA_examples_files/figure-html/p16-1.png | Bin 62542 -> 62414 bytes .../NAFTA_examples_files/figure-html/p5a-1.png | Bin 55386 -> 55286 bytes .../NAFTA_examples_files/figure-html/p5b-1.png | Bin 53549 -> 53505 bytes .../NAFTA_examples_files/figure-html/p6-1.png | Bin 54945 -> 54907 bytes .../NAFTA_examples_files/figure-html/p7-1.png | Bin 66786 -> 66710 bytes .../NAFTA_examples_files/figure-html/p8-1.png | Bin 61538 -> 61400 bytes .../NAFTA_examples_files/figure-html/p9a-1.png | Bin 53061 -> 53005 bytes .../NAFTA_examples_files/figure-html/p9b-1.png | Bin 50009 -> 49914 bytes docs/articles/web_only/benchmarks.html | 140 ++++---- docs/articles/web_only/compiled_models.html | 20 +- docs/authors.html | 4 +- docs/index.html | 4 +- docs/news/index.html | 16 +- docs/pkgdown.yml | 2 +- docs/reference/AIC.mmkin.html | 4 +- docs/reference/CAKE_export.html | 4 +- docs/reference/DFOP.solution-1.png | Bin 19459 -> 19369 bytes docs/reference/DFOP.solution.html | 4 +- docs/reference/Extract.mmkin.html | 4 +- docs/reference/FOCUS_2006_DFOP_ref_A_to_B.html | 4 +- docs/reference/FOCUS_2006_FOMC_ref_A_to_F.html | 4 +- docs/reference/FOCUS_2006_HS_ref_A_to_F.html | 4 +- docs/reference/FOCUS_2006_SFO_ref_A_to_F.html | 4 +- docs/reference/FOCUS_2006_datasets.html | 4 +- docs/reference/FOMC.solution-1.png | Bin 18710 -> 18630 bytes docs/reference/FOMC.solution.html | 4 +- docs/reference/HS.solution-1.png | Bin 18994 -> 18893 bytes docs/reference/HS.solution.html | 4 +- docs/reference/IORE.solution-1.png | Bin 18751 -> 18668 bytes docs/reference/IORE.solution.html | 4 +- docs/reference/NAFTA_SOP_2015-1.png | Bin 41438 -> 41379 bytes docs/reference/NAFTA_SOP_2015.html | 4 +- docs/reference/NAFTA_SOP_Attachment-1.png | Bin 42265 -> 42204 bytes docs/reference/NAFTA_SOP_Attachment.html | 4 +- docs/reference/SFO.solution-1.png | Bin 18757 -> 18661 bytes docs/reference/SFO.solution.html | 4 +- docs/reference/SFORB.solution-1.png | Bin 20255 -> 20190 bytes docs/reference/SFORB.solution.html | 4 +- docs/reference/add_err-1.png | Bin 89826 -> 89500 bytes docs/reference/add_err-2.png | Bin 51200 -> 51024 bytes docs/reference/add_err-3.png | Bin 52617 -> 52523 bytes docs/reference/add_err.html | 4 +- docs/reference/endpoints.html | 4 +- docs/reference/experimental_data_for_UBA-1.png | Bin 0 -> 92900 bytes docs/reference/experimental_data_for_UBA.html | 223 ++++++++++++ docs/reference/geometric_mean.html | 4 +- docs/reference/ilr.html | 4 +- docs/reference/index.html | 16 +- docs/reference/logLik.mkinfit.html | 4 +- docs/reference/logistic.solution-1.png | Bin 63411 -> 63262 bytes docs/reference/logistic.solution-2.png | Bin 29229 -> 29139 bytes docs/reference/logistic.solution.html | 4 +- docs/reference/max_twa_parent.html | 4 +- docs/reference/mccall81_245T-1.png | Bin 58660 -> 58349 bytes docs/reference/mccall81_245T.html | 4 +- docs/reference/mkin_long_to_wide.html | 4 +- docs/reference/mkin_wide_to_long.html | 4 +- docs/reference/mkinds.html | 4 +- docs/reference/mkinerrmin.html | 4 +- docs/reference/mkinerrplot-1.png | Bin 35936 -> 35440 bytes docs/reference/mkinerrplot.html | 4 +- docs/reference/mkinfit.html | 205 ++++++----- docs/reference/mkinmod.html | 6 +- docs/reference/mkinparplot-1.png | Bin 16549 -> 16467 bytes docs/reference/mkinparplot.html | 4 +- docs/reference/mkinplot.html | 4 +- docs/reference/mkinpredict.html | 10 +- docs/reference/mkinresplot-1.png | Bin 14892 -> 14863 bytes docs/reference/mkinresplot.html | 4 +- docs/reference/mkinsub.html | 4 +- docs/reference/mmkin-1.png | Bin 97607 -> 97412 bytes docs/reference/mmkin-2.png | Bin 88226 -> 88000 bytes docs/reference/mmkin-3.png | Bin 85737 -> 85371 bytes docs/reference/mmkin-4.png | Bin 63315 -> 62975 bytes docs/reference/mmkin-5.png | Bin 57623 -> 57465 bytes docs/reference/mmkin.html | 8 +- docs/reference/nafta-1.png | Bin 41438 -> 41379 bytes docs/reference/nafta.html | 4 +- docs/reference/plot.mkinfit-1.png | Bin 45207 -> 45157 bytes docs/reference/plot.mkinfit-2.png | Bin 52884 -> 52842 bytes docs/reference/plot.mkinfit-3.png | Bin 51737 -> 51545 bytes docs/reference/plot.mkinfit-4.png | Bin 43712 -> 43670 bytes docs/reference/plot.mkinfit-5.png | Bin 59934 -> 59560 bytes docs/reference/plot.mkinfit-6.png | Bin 65811 -> 65273 bytes docs/reference/plot.mkinfit.html | 10 +- docs/reference/plot.mmkin-1.png | Bin 34389 -> 34273 bytes docs/reference/plot.mmkin-2.png | Bin 34725 -> 34629 bytes docs/reference/plot.mmkin-3.png | Bin 25445 -> 25550 bytes docs/reference/plot.mmkin-4.png | Bin 37126 -> 38129 bytes docs/reference/plot.mmkin.html | 8 +- docs/reference/plot.nafta.html | 4 +- docs/reference/print.mkinds.html | 4 +- docs/reference/print.mkinmod.html | 4 +- docs/reference/print.nafta.html | 4 +- docs/reference/schaefer07_complex_case-1.png | Bin 55662 -> 55626 bytes docs/reference/schaefer07_complex_case.html | 4 +- docs/reference/sigma_twocomp.html | 4 +- docs/reference/summary.mkinfit.html | 10 +- docs/reference/synthetic_data_for_UBA.html | 11 +- docs/reference/test_data_from_UBA_2014-1.png | Bin 53388 -> 53086 bytes docs/reference/test_data_from_UBA_2014-2.png | Bin 69105 -> 68670 bytes docs/reference/test_data_from_UBA_2014.html | 4 +- docs/reference/transform_odeparms.html | 4 +- man/mkinerrplot.Rd | 2 + man/mkinfit.Rd | 40 +++ man/plot.mkinfit.Rd | 2 + test.log | 386 ++++++++++++++++++++- tests/testthat/AIC_exp_d_3.out | 0 tests/testthat/FOCUS_2006_D.csf | 2 +- tests/testthat/test_error_models.R | 115 +++--- vignettes/mkin_benchmarks.rda | Bin 797 -> 874 bytes 156 files changed, 1233 insertions(+), 528 deletions(-) create mode 100644 docs/reference/experimental_data_for_UBA-1.png create mode 100644 docs/reference/experimental_data_for_UBA.html create mode 100644 tests/testthat/AIC_exp_d_3.out diff --git a/DESCRIPTION b/DESCRIPTION index 66d22a95..03a1c9dd 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: mkin Type: Package Title: Kinetic Evaluation of Chemical Degradation Data -Version: 0.9.49.4 -Date: 2019-05-23 +Version: 0.9.49.5 +Date: 2019-06-04 Authors@R: c(person("Johannes", "Ranke", role = c("aut", "cre", "cph"), email = "jranke@uni-bremen.de", comment = c(ORCID = "0000-0003-4371-6538")), diff --git a/NEWS.md b/NEWS.md index 7ee35676..0a2b3300 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,10 @@ -# mkin 0.9.49.4 (2019-05-23) +# mkin 0.9.49.5 (2019-06-04) -- 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 +- Several algorithms for 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 default algorithm tries direct minimization and a three step procedure, and returns the model with the highest likelihood. -- The argument 'reweight.method' to mkinfit and mmkin is now obsolete, use 'error_model' instead +- The argument 'reweight.method' to mkinfit and mmkin is now obsolete, use 'error_model' and 'error_model_algorithm' instead + +- Add a test that checks if we get the best known AIC for parent only fits to 12 test datasets. Add these test datasets for this purpose. - 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. diff --git a/R/mkinfit.R b/R/mkinfit.R index e0a0e525..33e13d8e 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -34,7 +34,7 @@ mkinfit <- function(mkinmod, observed, quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, error_model = c("const", "obs", "tc"), - error_model_algorithm = c("direct", "twostep", "threestep", "fourstep", "IRLS"), + error_model_algorithm = c("d_3", "direct", "twostep", "threestep", "fourstep", "IRLS"), reweight.tol = 1e-8, reweight.max.iter = 10, trace_parms = FALSE, ...) @@ -442,77 +442,102 @@ mkinfit <- function(mkinmod, observed, fit_time <- system.time({ degparms <- c(state.ini.optim, transparms.optim) - if (err_mod == "const" | error_model_algorithm != "direct") { + if (err_mod == "const") { if (!quiet) message("Ordinary least squares optimisation") fit <- nlminb(degparms, nlogLik, control = control, lower = lower[names(degparms)], upper = upper[names(degparms)], OLS = TRUE, ...) degparms <- fit$par + # Get the maximum likelihood estimate for sigma at the optimum parameter values data_errmod$residual <- data_errmod$value.observed - data_errmod$value.predicted sigma_mle <- sqrt(sum(data_errmod$residual^2)/nrow(data_errmod)) - if (err_mod == "const") { - errparms <- c(sigma = sigma_mle) - } - + errparms <- c(sigma = sigma_mle) nlogLik.current <- nlogLik(c(degparms, errparms), OLS = FALSE) fit$logLik <- - nlogLik.current - } - if (error_model_algorithm %in% c("threestep", "fourstep")) { - if (!quiet) message("Optimising the error model") - fit <- nlminb(errparms, nlogLik, control = control, - lower = lower[names(errparms)], - upper = upper[names(errparms)], - fixed_degparms = degparms, ...) - errparms <- fit$par - } - if (error_model_algorithm == "fourstep") { - if (!quiet) message("Optimising the degradation model") - fit <- nlminb(degparms, nlogLik, control = control, - lower = lower[names(degparms)], - upper = upper[names(degparms)], - fixed_errparms = errparms, ...) - degparms <- fit$par - } - if (error_model_algorithm %in% c("direct", "twostep", "threestep", "fourstep") & - err_mod != "const") { - if (!quiet) message("Optimising the complete model") - parms.start <- c(degparms, errparms) - fit <- nlminb(parms.start, nlogLik, - lower = lower[names(parms.start)], - upper = upper[names(parms.start)], - control = control, ...) - fit$logLik <- - nlogLik.current - } - if (err_mod != "const" & error_model_algorithm == "IRLS") { - reweight.diff <- 1 - n.iter <- 0 - errparms_last <- errparms - - while (reweight.diff > reweight.tol & - n.iter < reweight.max.iter) { + } else { + if (error_model_algorithm == "d_3") { + if (!quiet) message("Directly optimising the complete model") + parms.start <- c(degparms, errparms) + fit_direct <- nlminb(parms.start, nlogLik, + lower = lower[names(parms.start)], + upper = upper[names(parms.start)], + control = control, ...) + fit_direct$logLik <- - nlogLik.current + nlogLik.current <- Inf # reset to avoid conflict with the OLS step + } + if (error_model_algorithm != "direct") { + if (!quiet) message("Ordinary least squares optimisation") + fit <- nlminb(degparms, nlogLik, control = control, + lower = lower[names(degparms)], + upper = upper[names(degparms)], OLS = TRUE, ...) + degparms <- fit$par + # Get the maximum likelihood estimate for sigma at the optimum parameter values + data_errmod$residual <- data_errmod$value.observed - data_errmod$value.predicted + sigma_mle <- sqrt(sum(data_errmod$residual^2)/nrow(data_errmod)) + nlogLik.current <- nlogLik(c(degparms, errparms), OLS = FALSE) + fit$logLik <- - nlogLik.current + } + if (error_model_algorithm %in% c("threestep", "fourstep", "d_3")) { if (!quiet) message("Optimising the error model") fit <- nlminb(errparms, nlogLik, control = control, lower = lower[names(errparms)], upper = upper[names(errparms)], fixed_degparms = degparms, ...) errparms <- fit$par - + } + if (error_model_algorithm == "fourstep") { if (!quiet) message("Optimising the degradation model") fit <- nlminb(degparms, nlogLik, control = control, lower = lower[names(degparms)], upper = upper[names(degparms)], fixed_errparms = errparms, ...) degparms <- fit$par - - reweight.diff <- dist(rbind(errparms, errparms_last)) + } + if (error_model_algorithm %in% c("direct", "twostep", "threestep", + "fourstep", "d_3")) { + if (!quiet) message("Optimising the complete model") + parms.start <- c(degparms, errparms) + fit <- nlminb(parms.start, nlogLik, + lower = lower[names(parms.start)], + upper = upper[names(parms.start)], + control = control, ...) + fit$logLik <- - nlogLik.current + if (error_model_algorithm == "d_3" && fit_direct$logLik > fit$logLik) { + fit <- fit_direct + } + } + if (err_mod != "const" & error_model_algorithm == "IRLS") { + reweight.diff <- 1 + n.iter <- 0 errparms_last <- errparms - fit$par <- c(fit$par, errparms) - nlogLik.current <- nlogLik(c(degparms, errparms), OLS = FALSE) - fit$logLik <- - nlogLik.current + while (reweight.diff > reweight.tol & + n.iter < reweight.max.iter) { + + if (!quiet) message("Optimising the error model") + fit <- nlminb(errparms, nlogLik, control = control, + lower = lower[names(errparms)], + upper = upper[names(errparms)], + fixed_degparms = degparms, ...) + errparms <- fit$par + + if (!quiet) message("Optimising the degradation model") + fit <- nlminb(degparms, nlogLik, control = control, + lower = lower[names(degparms)], + upper = upper[names(degparms)], + fixed_errparms = errparms, ...) + degparms <- fit$par + + reweight.diff <- dist(rbind(errparms, errparms_last)) + errparms_last <- errparms + + fit$par <- c(fit$par, errparms) + nlogLik.current <- nlogLik(c(degparms, errparms), OLS = FALSE) + fit$logLik <- - nlogLik.current + } } } diff --git a/_pkgdown.yml b/_pkgdown.yml index e98469cd..04f46649 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -18,6 +18,7 @@ reference: - summary.mkinfit - mkinresplot - mkinparplot + - mkinerrplot - endpoints - mkinerrmin - logLik.mkinfit @@ -39,6 +40,7 @@ reference: - mccall81_245T - schaefer07_complex_case - synthetic_data_for_UBA_2014 + - experimental_data_for_UBA_2019 - test_data_from_UBA_2014 - mkinds - print.mkinds diff --git a/build.log b/build.log index 976d27d4..4ba4d2cc 100644 --- a/build.log +++ b/build.log @@ -1 +1,10 @@ * checking for file ‘./DESCRIPTION’ ... OK +* preparing ‘mkin’: +* checking DESCRIPTION meta-information ... OK +* installing the package to build vignettes +* creating vignettes ... OK +* checking for LF line-endings in source and make files and shell scripts +* checking for empty or unneeded directories +* looking to see if a ‘data/datalist’ file should be added +* building ‘mkin_0.9.49.5.tar.gz’ + diff --git a/check.log b/check.log index 49ba0af6..c31c3b2c 100644 --- a/check.log +++ b/check.log @@ -5,7 +5,7 @@ * using options ‘--no-tests --as-cran’ * checking for file ‘mkin/DESCRIPTION’ ... OK * checking extension type ... Package -* this is package ‘mkin’ version ‘0.9.49.4’ +* this is package ‘mkin’ version ‘0.9.49.5’ * package encoding: UTF-8 * checking CRAN incoming feasibility ... Note_to_CRAN_maintainers Maintainer: ‘Johannes Ranke ’ @@ -56,7 +56,11 @@ Maintainer: ‘Johannes Ranke ’ * checking data for ASCII and uncompressed saves ... OK * checking installed files from ‘inst/doc’ ... OK * checking files in ‘vignettes’ ... OK -* checking examples ... OK +* checking examples ... NOTE +Examples with CPU or elapsed time > 5s + user system elapsed +plot.mkinfit 9.307 0.084 9.396 +mkinerrplot 9.150 0.076 9.229 * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... SKIPPED * checking for unstated dependencies in vignettes ... OK @@ -65,5 +69,9 @@ Maintainer: ‘Johannes Ranke ’ * checking PDF version of manual ... OK * DONE -Status: OK +Status: 1 NOTE +See + ‘/home/jranke/git/mkin/mkin.Rcheck/00check.log’ +for details. + diff --git a/data/experimental_data_for_UBA_2019.rda b/data/experimental_data_for_UBA_2019.rda index 46b5de20..eb3e482e 100644 Binary files a/data/experimental_data_for_UBA_2019.rda and b/data/experimental_data_for_UBA_2019.rda differ diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html index ba694065..698ccebc 100644 --- a/docs/articles/FOCUS_D.html +++ b/docs/articles/FOCUS_D.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Example evaluation of FOCUS Example Dataset D

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -166,10 +166,10 @@

A comprehensive report of the results is obtained using the summary method for mkinfit objects.

summary(fit)
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:27 2019 
-## Date of summary: Wed May  8 20:52:27 2019 
+## Date of fit:     Tue Jun  4 15:03:18 2019 
+## Date of summary: Tue Jun  4 15:03:18 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 0.998 s
+## Fitted using 389 model solutions performed in 0.978 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -305,7 +305,7 @@
 
 
 
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/FOCUS_D_files/figure-html/plot-1.png b/docs/articles/FOCUS_D_files/figure-html/plot-1.png index 0cd6596d..fc1142ab 100644 Binary files a/docs/articles/FOCUS_D_files/figure-html/plot-1.png and b/docs/articles/FOCUS_D_files/figure-html/plot-1.png differ diff --git a/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png b/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png index 64da1d2e..97c61a16 100644 Binary files a/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png and b/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png differ diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html index 6771bf63..75b2cf10 100644 --- a/docs/articles/FOCUS_L.html +++ b/docs/articles/FOCUS_L.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Example evaluation of FOCUS Laboratory Data L1 to L3

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -112,17 +112,17 @@

Since mkin version 0.9-32 (July 2014), we can use shorthand notation like "SFO" for parent only degradation models. The following two lines fit the model and produce the summary report of the model fit. This covers the numerical analysis given in the FOCUS report.

m.L1.SFO <- mkinfit("SFO", FOCUS_2006_L1_mkin, quiet = TRUE)
 summary(m.L1.SFO)
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:29 2019 
-## Date of summary: Wed May  8 20:52:29 2019 
+## Date of fit:     Tue Jun  4 15:03:20 2019 
+## Date of summary: Tue Jun  4 15:03:20 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted using 133 model solutions performed in 0.276 s
+## Fitted using 133 model solutions performed in 0.28 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -213,10 +213,10 @@
 
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
## Warning in cov2cor(ans$cov.unscaled): diag(.) had 0 or NA entries; non-
 ## finite result is doubtful
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:31 2019 
-## Date of summary: Wed May  8 20:52:31 2019 
+## Date of fit:     Tue Jun  4 15:03:22 2019 
+## Date of summary: Tue Jun  4 15:03:22 2019 
 ## 
 ## 
 ## Warning: Optimisation did not converge:
@@ -317,17 +317,17 @@
      main = "FOCUS L2 - FOMC")

summary(m.L2.FOMC, data = FALSE)
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:32 2019 
-## Date of summary: Wed May  8 20:52:32 2019 
+## Date of fit:     Tue Jun  4 15:03:23 2019 
+## Date of summary: Tue Jun  4 15:03:23 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.483 s
+## Fitted using 239 model solutions performed in 0.484 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -392,10 +392,10 @@
      main = "FOCUS L2 - DFOP")

summary(m.L2.DFOP, data = FALSE)
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:33 2019 
-## Date of summary: Wed May  8 20:52:33 2019 
+## Date of fit:     Tue Jun  4 15:03:25 2019 
+## Date of summary: Tue Jun  4 15:03:25 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.185 s
+## Fitted using 572 model solutions performed in 1.193 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -491,10 +491,10 @@
 

The objects returned by mmkin are arranged like a matrix, with models as a row index and datasets as a column index.

We can extract the summary and plot for e.g. the DFOP fit, using square brackets for indexing which will result in the use of the summary and plot functions working on mkinfit objects.

summary(mm.L3[["DFOP", 1]])
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:35 2019 
-## Date of summary: Wed May  8 20:52:35 2019 
+## Date of fit:     Tue Jun  4 15:03:26 2019 
+## Date of summary: Tue Jun  4 15:03:27 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.768 s
+## Fitted using 373 model solutions performed in 0.767 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -596,17 +596,17 @@
 

The \(\chi^2\) error level of 3.3% as well as the plot suggest that the SFO model fits very well. The error level at which the \(\chi^2\) test passes is slightly lower for the FOMC model. However, the difference appears negligible.

summary(mm.L4[["SFO", 1]], data = FALSE)
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:36 2019 
-## Date of summary: Wed May  8 20:52:37 2019 
+## Date of fit:     Tue Jun  4 15:03:27 2019 
+## Date of summary: Tue Jun  4 15:03:28 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted using 142 model solutions performed in 0.289 s
+## Fitted using 142 model solutions performed in 0.288 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -660,17 +660,17 @@
 ##        DT50 DT90
 ## parent  106  352
summary(mm.L4[["FOMC", 1]], data = FALSE)
-
## mkin version used for fitting:    0.9.49.4 
+
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Wed May  8 20:52:36 2019 
-## Date of summary: Wed May  8 20:52:37 2019 
+## Date of fit:     Tue Jun  4 15:03:28 2019 
+## Date of summary: Tue Jun  4 15:03:28 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.45 s
+## Fitted using 224 model solutions performed in 0.449 s
 ## 
 ## Error model:
 ## Constant variance 
@@ -769,7 +769,7 @@
 
 
 
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png index cc28c092..32fef506 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png index 46d85b73..f23a4c97 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png index ac326b45..ed6a781d 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png index 62b2ceb3..2e5071d9 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png index 1a9c8457..04bee502 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png index 93beb55f..86af1cf9 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png index 3dd8565c..16235059 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png index 8d6531ea..0bfac9e2 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png differ diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png index a5e75b70..d194c676 100644 Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png differ diff --git a/docs/articles/index.html b/docs/articles/index.html index eb2d55ef..c2982f4b 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -60,7 +60,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -145,7 +145,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html index c274696c..09b1b8ea 100644 --- a/docs/articles/mkin.html +++ b/docs/articles/mkin.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Introduction to mkin

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -243,7 +243,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/mkin_files/figure-html/unnamed-chunk-2-1.png b/docs/articles/mkin_files/figure-html/unnamed-chunk-2-1.png index 29ae1c43..751a79e1 100644 Binary files a/docs/articles/mkin_files/figure-html/unnamed-chunk-2-1.png and b/docs/articles/mkin_files/figure-html/unnamed-chunk-2-1.png differ diff --git a/docs/articles/twa.html b/docs/articles/twa.html index 9f660fab..ede27942 100644 --- a/docs/articles/twa.html +++ b/docs/articles/twa.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Calculation of time weighted average concentrations with mkin

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -139,7 +139,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html index 9184fad5..555400df 100644 --- a/docs/articles/web_only/FOCUS_Z.html +++ b/docs/articles/web_only/FOCUS_Z.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Example evaluation of FOCUS dataset Z

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -377,7 +377,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png index 0880ca60..471db177 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png index 1a92365e..3c983f21 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png index debf3cb8..0e0a78a9 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png index 89020a0a..d7dd85a5 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png index 8188c4cf..7764f4e2 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png index 8e13b498..d24b8a40 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png index 7d490baa..dd8c1e0a 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png index 4916ee4d..45a32027 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png index a11e0092..18832ed2 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png index 292c0690..0d3b4d1a 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png differ diff --git a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png index acd197f2..898e6190 100644 Binary files a/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png and b/docs/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples.html b/docs/articles/web_only/NAFTA_examples.html index 4d9e9b2d..7f3cc76b 100644 --- a/docs/articles/web_only/NAFTA_examples.html +++ b/docs/articles/web_only/NAFTA_examples.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -308,16 +308,11 @@ Example on page 8

For this dataset, the IORE fit does not converge when the default starting values used by mkin for the IORE model are used. Therefore, a lower value for the rate constant is used here.

p8 <- nafta(NAFTA_SOP_Attachment[["p8"]], parms.ini = c(k__iore_parent_sink = 1e-3))
-
## Warning in summary.mkinfit(x): Could not calculate correlation; no
-## covariance matrix
-
-## Warning in summary.mkinfit(x): Could not calculate correlation; no
-## covariance matrix
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p8)
+
plot(p8)

-
print(p8)
+
print(p8)
## Sums of squares:
 ##       SFO      IORE      DFOP 
 ## 1996.9408  444.9237  547.5616 
@@ -327,11 +322,10 @@
 ## 
 ## Parameters:
 ## $SFO
-##                     Estimate Pr(>t) Lower Upper
-## parent_0            88.16549     NA    NA    NA
-## k__iore_parent_sink  0.00100     NA    NA    NA
-## k_parent_sink        0.00803     NA    NA    NA
-## sigma                7.44786     NA    NA    NA
+##               Estimate   Pr(>t)    Lower    Upper
+## parent_0      88.16549 6.53e-29 83.37344 92.95754
+## k_parent_sink  0.00803 1.67e-13  0.00674  0.00957
+## sigma          7.44786 4.17e-10  5.66209  9.23363
 ## 
 ## $IORE
 ##                     Estimate   Pr(>t)    Lower    Upper
@@ -341,13 +335,12 @@
 ## sigma               3.52e+00 5.36e-10 2.67e+00 4.36e+00
 ## 
 ## $DFOP
-##                     Estimate Pr(>t) Lower Upper
-## parent_0            95.70619     NA    NA    NA
-## k__iore_parent_sink  0.00100     NA    NA    NA
-## k1                   0.02500     NA    NA    NA
-## k2                   0.00273     NA    NA    NA
-## g                    0.58835     NA    NA    NA
-## sigma                3.90001     NA    NA    NA
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 95.70619 8.99e-32 91.87941 99.53298
+## k1        0.02500 5.25e-04  0.01422  0.04394
+## k2        0.00273 6.84e-03  0.00125  0.00597
+## g         0.58835 2.84e-06  0.36595  0.77970
+## sigma     3.90001 6.94e-10  2.96260  4.83741
 ## 
 ## 
 ## DTx values:
@@ -366,12 +359,12 @@
 

Example on page 9, upper panel

-
p9a <- nafta(NAFTA_SOP_Attachment[["p9a"]])
+
p9a <- nafta(NAFTA_SOP_Attachment[["p9a"]])
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p9a)
+
plot(p9a)

-
print(p9a)
+
print(p9a)
## Sums of squares:
 ##       SFO      IORE      DFOP 
 ## 839.35238  88.57064   9.93363 
@@ -415,7 +408,7 @@
 

Example on page 9, lower panel

-
p9b <- nafta(NAFTA_SOP_Attachment[["p9b"]])
+
p9b <- nafta(NAFTA_SOP_Attachment[["p9b"]])
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(diag(covar_notrans)): NaNs wurden erzeugt
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
@@ -423,9 +416,9 @@ ## finite result is doubtful
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p9b)
+
plot(p9b)

-
print(p9b)
+
print(p9b)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 35.64867 23.22334 35.64867 
@@ -469,12 +462,12 @@
 

Example on page 10

-
p10 <- nafta(NAFTA_SOP_Attachment[["p10"]])
+
p10 <- nafta(NAFTA_SOP_Attachment[["p10"]])
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p10)
+
plot(p10)

-
print(p10)
+
print(p10)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 899.4089 336.4348 899.4089 
@@ -522,12 +515,12 @@
 

Example on page 11

-
p11 <- nafta(NAFTA_SOP_Attachment[["p11"]])
+
p11 <- nafta(NAFTA_SOP_Attachment[["p11"]])
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p11)
+
plot(p11)

-
print(p11)
+
print(p11)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 579.6805 204.7932 144.7783 
@@ -576,14 +569,14 @@
 

Example on page 12, upper panel

-
p12a <- nafta(NAFTA_SOP_Attachment[["p12a"]])
+
p12a <- nafta(NAFTA_SOP_Attachment[["p12a"]])
## Warning in summary.mkinfit(x): Could not calculate correlation; no
 ## covariance matrix
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p12a)
+
plot(p12a)

-
print(p12a)
+
print(p12a)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 695.4440 220.0685 695.4440 
@@ -626,7 +619,7 @@
 

Example on page 12, lower panel

-
p12b <- nafta(NAFTA_SOP_Attachment[["p12b"]])
+
p12b <- nafta(NAFTA_SOP_Attachment[["p12b"]])
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in qt(alpha/2, rdf): NaNs wurden erzeugt
## Warning in qt(1 - alpha/2, rdf): NaNs wurden erzeugt
@@ -637,9 +630,9 @@ ## finite result is doubtful
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p12b)
+
plot(p12b)

-
print(p12b)
+
print(p12b)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 58.90242 19.06353 58.90242 
@@ -682,16 +675,16 @@
 

Example on page 13

-
p13 <- nafta(NAFTA_SOP_Attachment[["p13"]])
+
p13 <- nafta(NAFTA_SOP_Attachment[["p13"]])
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
## Warning in cov2cor(ans$cov.unscaled): diag(.) had 0 or NA entries; non-
 ## finite result is doubtful
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p13)
+
plot(p13)

-
print(p13)
+
print(p13)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 174.5971 142.3951 174.5971 
@@ -735,16 +728,16 @@
 

DT50 not observed in the study and DFOP problems in PestDF

-
p14 <- nafta(NAFTA_SOP_Attachment[["p14"]])
+
p14 <- nafta(NAFTA_SOP_Attachment[["p14"]])
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
## Warning in cov2cor(ans$cov.unscaled): diag(.) had 0 or NA entries; non-
 ## finite result is doubtful
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p14)
+
plot(p14)

-
print(p14)
+
print(p14)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 48.43249 28.67746 27.26248 
@@ -788,7 +781,7 @@
 

N is less than 1 and DFOP fraction parameter is below zero

-
p15a <- nafta(NAFTA_SOP_Attachment[["p15a"]])
+
p15a <- nafta(NAFTA_SOP_Attachment[["p15a"]])
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(diag(covar_notrans)): NaNs wurden erzeugt
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
@@ -796,9 +789,9 @@ ## finite result is doubtful
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p15a)
+
plot(p15a)

-
print(p15a)
+
print(p15a)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 245.5248 135.0132 245.5248 
@@ -837,16 +830,16 @@
 ## 
 ## Representative half-life:
 ## [1] 41.33
-
p15b <- nafta(NAFTA_SOP_Attachment[["p15b"]])
+
p15b <- nafta(NAFTA_SOP_Attachment[["p15b"]])
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
## Warning in cov2cor(ans$cov.unscaled): diag(.) had 0 or NA entries; non-
 ## finite result is doubtful
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The half-life obtained from the IORE model may be used
-
plot(p15b)
+
plot(p15b)

-
print(p15b)
+
print(p15b)
## Sums of squares:
 ##       SFO      IORE      DFOP 
 ## 106.91629  68.55574 106.91629 
@@ -890,14 +883,14 @@
 

The DFOP fraction parameter is greater than 1

-
p16 <- nafta(NAFTA_SOP_Attachment[["p16"]])
+
p16 <- nafta(NAFTA_SOP_Attachment[["p16"]])
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
## The representative half-life of the IORE model is longer than the one corresponding
## to the terminal degradation rate found with the DFOP model.
## The representative half-life obtained from the DFOP model may be used
-
plot(p16)
+
plot(p16)

-
print(p16)
+
print(p16)
## Sums of squares:
 ##      SFO     IORE     DFOP 
 ## 3831.804 2062.008 1550.980 
@@ -1010,7 +1003,7 @@
 
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png index f84439e8..291b48e1 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png index 2f659bca..149cf24c 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png index 0b7a5d9f..85ea5f4e 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png index e68c8c83..0ae354c4 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png index 3f92349c..d0f89858 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png index 396828c3..84b53d01 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png index 110d26dc..a09b2e3d 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png index 776aeb36..5a51714c 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png index f7bd1704..36999356 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png index ee8350cc..596a33b2 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png index fd3e94ee..e6f9716e 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png index 87a06b4b..f8576168 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png index 3d667442..ef5e72ed 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png index c47a10b5..fa8621e7 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png index 870d6b98..aac3600b 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png differ diff --git a/docs/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png index 57bf4014..cb52aecd 100644 Binary files a/docs/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png and b/docs/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png differ diff --git a/docs/articles/web_only/benchmarks.html b/docs/articles/web_only/benchmarks.html index a53f1927..43f8d238 100644 --- a/docs/articles/web_only/benchmarks.html +++ b/docs/articles/web_only/benchmarks.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5
@@ -88,7 +88,7 @@

Benchmark timings for mkin on various systems

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -115,32 +115,32 @@ }
# Parent only
 t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D)))[["elapsed"]]
-t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D), error_model = "tc"))[["elapsed"]]
-
-# One metabolite
-SFO_SFO <- mkinmod(
-  parent = mkinsub("SFO", "m1"),
-  m1 = mkinsub("SFO"))
+t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D), error_model = "tc"))[["elapsed"]]
+
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): Optimisation did not converge:
+## iteration limit reached without convergence (10)
+
## Successfully compiled differential equation model from auto-generated C code.
- -
## Successfully compiled differential equation model from auto-generated C code.
-
DFOP_SFO <- mkinmod(
+
 
## Successfully compiled differential equation model from auto-generated C code.
-
t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D)))[["elapsed"]]
+ +
## Successfully compiled differential equation model from auto-generated C code.
+
t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D)))[["elapsed"]]
+
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
+## Observations with value of zero were removed from the data
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
-## Observations with value of zero were removed from the data
-
-## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
 ## Observations with value of zero were removed from the data
 
 ## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
 ## Observations with value of zero were removed from the data
-
t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(subset(FOCUS_2006_D, value != 0)), error_model = "tc"))[["elapsed"]]
-t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D), error_model = "obs"))[["elapsed"]]
+
t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(subset(FOCUS_2006_D, value != 0)), error_model = "tc"))[["elapsed"]]
+t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D), error_model = "obs"))[["elapsed"]]
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
 ## Observations with value of zero were removed from the data
 
@@ -149,117 +149,131 @@
 
 ## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
 ## Observations with value of zero were removed from the data
-
# Two metabolites, synthetic data
-m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),
-                           M1 = mkinsub("SFO", "M2"),
-                           M2 = mkinsub("SFO"),
-                           use_of_ff = "max", quiet = TRUE)
-
-m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")),
-                           M1 = mkinsub("SFO"),
-                           M2 = mkinsub("SFO"),
-                           use_of_ff = "max", quiet = TRUE)
-
-SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data
-
-DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data
-
-t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))["elapsed"]
-t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))["elapsed"]
-
-t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "tc"))["elapsed"]
-t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "tc"))["elapsed"]
-
-t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "obs"))["elapsed"]
-t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))["elapsed"]
-
-mkin_benchmarks[system_string, paste0("t", 1:11)] <- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
-mkin_benchmarks
+
# Two metabolites, synthetic data
+m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),
+                           M1 = mkinsub("SFO", "M2"),
+                           M2 = mkinsub("SFO"),
+                           use_of_ff = "max", quiet = TRUE)
+
+m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")),
+                           M1 = mkinsub("SFO"),
+                           M2 = mkinsub("SFO"),
+                           use_of_ff = "max", quiet = TRUE)
+
+SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data
+
+DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data
+
+t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))["elapsed"]
+t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))["elapsed"]
+
+t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "tc"))["elapsed"]
+t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "tc"))["elapsed"]
+
+t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "obs"))["elapsed"]
+t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))["elapsed"]
+
+mkin_benchmarks[system_string, paste0("t", 1:11)] <- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
+mkin_benchmarks
##                                                                                                       CPU
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 AMD Ryzen 7 1700 Eight-Core Processor
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 AMD Ryzen 7 1700 Eight-Core Processor
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 AMD Ryzen 7 1700 Eight-Core Processor
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 AMD Ryzen 7 1700 Eight-Core Processor
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 AMD Ryzen 7 1700 Eight-Core Processor
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 AMD Ryzen 7 1700 Eight-Core Processor
 ##                                                                        OS
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 Linux
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 Linux
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 Linux
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 Linux
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 Linux
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 Linux
 ##                                                                         mkin
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 0.9.48.1
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 0.9.49.1
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 0.9.49.2
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 0.9.49.3
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 0.9.49.4
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 0.9.49.5
 ##                                                                        t1
 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.610
 ## 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.792
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.936
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 5.805
 ##                                                                         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.398
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 20.545
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 35.748
 ##                                                                        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.427
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.446
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.403
 ##                                                                         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.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.527
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 15.335
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 30.613
+##                                                                         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  6.002
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.309
 ##                                                                        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.541
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.635
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 2.546
 ##                                                                        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.308
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.259
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.214
 ##                                                                        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.775
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.737
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.871
 ##                                                                         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.116
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4  7.763
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 15.738
 ##                                                                       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.063
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 3.427
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.763
 ##                                                                        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.784
-
save(mkin_benchmarks, file = "~/git/mkin/vignettes/mkin_benchmarks.rda")
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.626 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.527
+
save(mkin_benchmarks, file = "~/git/mkin/vignettes/mkin_benchmarks.rda")
@@ -281,7 +295,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html index f296c8a4..f3062c66 100644 --- a/docs/articles/web_only/compiled_models.html +++ b/docs/articles/web_only/compiled_models.html @@ -30,7 +30,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -88,7 +88,7 @@

Performance benefit by using compiled model definitions in mkin

Johannes Ranke

-

2019-05-08

+

2019-06-04

@@ -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
##                    test replications elapsed relative user.self sys.self
-## 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
+## 3     deSolve, compiled            3   3.053    1.000     3.052        0
+## 1 deSolve, not compiled            3  28.457    9.321    28.442        0
+## 2      Eigenvalue based            3   4.296    1.407     4.293        0
 ##   user.child sys.child
 ## 3          0         0
 ## 1          0         0
@@ -214,16 +214,16 @@
 ## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
 ## value of zero were removed from the data
##                    test replications elapsed relative user.self sys.self
-## 2     deSolve, compiled            3   5.023    1.000     5.021        0
-## 1 deSolve, not compiled            3  53.267   10.605    53.235        0
+## 2     deSolve, compiled            3   4.828    1.000     4.825        0
+## 1 deSolve, not compiled            3  53.153   11.009    53.125        0
 ##   user.child sys.child
 ## 2          0         0
 ## 1          0         0

Here we get a performance benefit of a factor of 11 using the version of the differential equation model compiled from C code!

-

This vignette was built with mkin 0.9.49.4 on

+

This vignette was built with mkin 0.9.49.5 on

## R version 3.6.0 (2019-04-26)
 ## Platform: x86_64-pc-linux-gnu (64-bit)
-## Running under: Debian GNU/Linux 9 (stretch)
+## Running under: Debian GNU/Linux 10 (buster)
## CPU model: AMD Ryzen 7 1700 Eight-Core Processor
@@ -247,7 +247,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/authors.html b/docs/authors.html index 9d47c66a..61f965ce 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -60,7 +60,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -151,7 +151,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/index.html b/docs/index.html index 2f494511..e3f3b376 100644 --- a/docs/index.html +++ b/docs/index.html @@ -37,7 +37,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -205,7 +205,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/news/index.html b/docs/news/index.html index 11414ed3..df6d53db 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -60,7 +60,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -122,13 +122,14 @@ -
+

-mkin 0.9.49.4 (2019-05-08) Unreleased +mkin 0.9.49.5 (2019-06-04) Unreleased

    -
  • 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

  • +
  • Several algorithms for 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 default algorithm tries direct minimization and a three step procedure, and returns the model with the highest likelihood.

  • +
  • The argument ‘reweight.method’ to mkinfit and mmkin is now obsolete, use ‘error_model’ and ‘error_model_algorithm’ instead

  • +
  • Add a test that checks if we get the best known AIC for parent only fits to 12 test datasets. Add these test datasets for this purpose.

  • 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

  • @@ -136,6 +137,7 @@
  • The code for manual weighting was removed

  • The fitting time reported in the summary now includes the calculation of the hessians

  • Adapt tests

  • +
  • Fix an error in the FOCUS chi2 error level calculations that occurred if parameters were specified in parms.ini that were not in the model. A warning was already issued, but when fitting via mmkin this could easily go unnoticed.

@@ -696,7 +698,7 @@

Contents

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index eda9c58f..db7859c8 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -1,5 +1,5 @@ pandoc: 2.2.1 -pkgdown: 1.3.0.9000 +pkgdown: 1.3.0 pkgdown_sha: ~ articles: FOCUS_D: FOCUS_D.html diff --git a/docs/reference/AIC.mmkin.html b/docs/reference/AIC.mmkin.html index c797567c..a5626847 100644 --- a/docs/reference/AIC.mmkin.html +++ b/docs/reference/AIC.mmkin.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5
@@ -201,7 +201,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/CAKE_export.html b/docs/reference/CAKE_export.html index e4ed9cda..5db220ee 100644 --- a/docs/reference/CAKE_export.html +++ b/docs/reference/CAKE_export.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -232,7 +232,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/DFOP.solution-1.png b/docs/reference/DFOP.solution-1.png index 0fbc1da1..a2d75ccc 100644 Binary files a/docs/reference/DFOP.solution-1.png and b/docs/reference/DFOP.solution-1.png differ diff --git a/docs/reference/DFOP.solution.html b/docs/reference/DFOP.solution.html index 335c3a80..edfa70d3 100644 --- a/docs/reference/DFOP.solution.html +++ b/docs/reference/DFOP.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -199,7 +199,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html index 652dfee0..1d1da50e 100644 --- a/docs/reference/Extract.mmkin.html +++ b/docs/reference/Extract.mmkin.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -229,7 +229,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/FOCUS_2006_DFOP_ref_A_to_B.html b/docs/reference/FOCUS_2006_DFOP_ref_A_to_B.html index 047a5f4d..b1165f1d 100644 --- a/docs/reference/FOCUS_2006_DFOP_ref_A_to_B.html +++ b/docs/reference/FOCUS_2006_DFOP_ref_A_to_B.html @@ -67,7 +67,7 @@ in this fit." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -187,7 +187,7 @@ in this fit.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/FOCUS_2006_FOMC_ref_A_to_F.html b/docs/reference/FOCUS_2006_FOMC_ref_A_to_F.html index cc3560ed..03a15a5a 100644 --- a/docs/reference/FOCUS_2006_FOMC_ref_A_to_F.html +++ b/docs/reference/FOCUS_2006_FOMC_ref_A_to_F.html @@ -67,7 +67,7 @@ in this fit." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -186,7 +186,7 @@ in this fit.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/FOCUS_2006_HS_ref_A_to_F.html b/docs/reference/FOCUS_2006_HS_ref_A_to_F.html index 5f6fc197..6046ec88 100644 --- a/docs/reference/FOCUS_2006_HS_ref_A_to_F.html +++ b/docs/reference/FOCUS_2006_HS_ref_A_to_F.html @@ -67,7 +67,7 @@ in this fit." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -187,7 +187,7 @@ in this fit.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/FOCUS_2006_SFO_ref_A_to_F.html b/docs/reference/FOCUS_2006_SFO_ref_A_to_F.html index 45d00237..278425f6 100644 --- a/docs/reference/FOCUS_2006_SFO_ref_A_to_F.html +++ b/docs/reference/FOCUS_2006_SFO_ref_A_to_F.html @@ -67,7 +67,7 @@ in this fit." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -185,7 +185,7 @@ in this fit.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/FOCUS_2006_datasets.html b/docs/reference/FOCUS_2006_datasets.html index 2b060f47..0d29deb2 100644 --- a/docs/reference/FOCUS_2006_datasets.html +++ b/docs/reference/FOCUS_2006_datasets.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -183,7 +183,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/FOMC.solution-1.png b/docs/reference/FOMC.solution-1.png index 127f3085..aa41a253 100644 Binary files a/docs/reference/FOMC.solution-1.png and b/docs/reference/FOMC.solution-1.png differ diff --git a/docs/reference/FOMC.solution.html b/docs/reference/FOMC.solution.html index 90a4810c..69c0a9ef 100644 --- a/docs/reference/FOMC.solution.html +++ b/docs/reference/FOMC.solution.html @@ -67,7 +67,7 @@ The form given here differs slightly from the original reference by Gustafson mkin - 0.9.49.4 + 0.9.49.5 @@ -213,7 +213,7 @@ The form given here differs slightly from the original reference by Gustafson
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/HS.solution-1.png b/docs/reference/HS.solution-1.png index 4dc42c31..ae056d9b 100644 Binary files a/docs/reference/HS.solution-1.png and b/docs/reference/HS.solution-1.png differ diff --git a/docs/reference/HS.solution.html b/docs/reference/HS.solution.html index 1365e23f..e14f80ec 100644 --- a/docs/reference/HS.solution.html +++ b/docs/reference/HS.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -200,7 +200,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/IORE.solution-1.png b/docs/reference/IORE.solution-1.png index d8b6e8e3..00e28460 100644 Binary files a/docs/reference/IORE.solution-1.png and b/docs/reference/IORE.solution-1.png differ diff --git a/docs/reference/IORE.solution.html b/docs/reference/IORE.solution.html index c67c2a37..ca0db0bb 100644 --- a/docs/reference/IORE.solution.html +++ b/docs/reference/IORE.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -214,7 +214,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/NAFTA_SOP_2015-1.png b/docs/reference/NAFTA_SOP_2015-1.png index bcf5d12c..9025f2bb 100644 Binary files a/docs/reference/NAFTA_SOP_2015-1.png and b/docs/reference/NAFTA_SOP_2015-1.png differ diff --git a/docs/reference/NAFTA_SOP_2015.html b/docs/reference/NAFTA_SOP_2015.html index 84341a17..5b4ac227 100644 --- a/docs/reference/NAFTA_SOP_2015.html +++ b/docs/reference/NAFTA_SOP_2015.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -214,7 +214,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/NAFTA_SOP_Attachment-1.png b/docs/reference/NAFTA_SOP_Attachment-1.png index a40cb689..19da6da7 100644 Binary files a/docs/reference/NAFTA_SOP_Attachment-1.png and b/docs/reference/NAFTA_SOP_Attachment-1.png differ diff --git a/docs/reference/NAFTA_SOP_Attachment.html b/docs/reference/NAFTA_SOP_Attachment.html index 76d91c40..1af62530 100644 --- a/docs/reference/NAFTA_SOP_Attachment.html +++ b/docs/reference/NAFTA_SOP_Attachment.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -211,7 +211,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/SFO.solution-1.png b/docs/reference/SFO.solution-1.png index 9e6bd786..b0b854bb 100644 Binary files a/docs/reference/SFO.solution-1.png and b/docs/reference/SFO.solution-1.png differ diff --git a/docs/reference/SFO.solution.html b/docs/reference/SFO.solution.html index 2eb3a9b0..483869c4 100644 --- a/docs/reference/SFO.solution.html +++ b/docs/reference/SFO.solution.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -188,7 +188,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/SFORB.solution-1.png b/docs/reference/SFORB.solution-1.png index 6739fe6b..cd58caec 100644 Binary files a/docs/reference/SFORB.solution-1.png and b/docs/reference/SFORB.solution-1.png differ diff --git a/docs/reference/SFORB.solution.html b/docs/reference/SFORB.solution.html index f2743fe4..b49700f8 100644 --- a/docs/reference/SFORB.solution.html +++ b/docs/reference/SFORB.solution.html @@ -67,7 +67,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -205,7 +205,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/add_err-1.png b/docs/reference/add_err-1.png index 61f00d9b..fb369053 100644 Binary files a/docs/reference/add_err-1.png and b/docs/reference/add_err-1.png differ diff --git a/docs/reference/add_err-2.png b/docs/reference/add_err-2.png index 2fab0ee4..df843300 100644 Binary files a/docs/reference/add_err-2.png and b/docs/reference/add_err-2.png differ diff --git a/docs/reference/add_err-3.png b/docs/reference/add_err-3.png index 06f877c2..298f2ebd 100644 Binary files a/docs/reference/add_err-3.png and b/docs/reference/add_err-3.png differ diff --git a/docs/reference/add_err.html b/docs/reference/add_err.html index 63aa358c..4ce43f9f 100644 --- a/docs/reference/add_err.html +++ b/docs/reference/add_err.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -253,7 +253,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/endpoints.html b/docs/reference/endpoints.html index 5f419781..c180dce2 100644 --- a/docs/reference/endpoints.html +++ b/docs/reference/endpoints.html @@ -66,7 +66,7 @@ with the advantage that the SFORB model can also be used for metabolites." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -194,7 +194,7 @@ with the advantage that the SFORB model can also be used for metabolites.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/experimental_data_for_UBA-1.png b/docs/reference/experimental_data_for_UBA-1.png new file mode 100644 index 00000000..d3880fea Binary files /dev/null and b/docs/reference/experimental_data_for_UBA-1.png differ diff --git a/docs/reference/experimental_data_for_UBA.html b/docs/reference/experimental_data_for_UBA.html new file mode 100644 index 00000000..3e8d20ef --- /dev/null +++ b/docs/reference/experimental_data_for_UBA.html @@ -0,0 +1,223 @@ + + + + + + + + +Experimental datasets used for development and testing of error models — experimental_data_for_UBA_2019 • mkin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ +
+
+ + +
+ +

The 12 datasets were extracted from active substance evaluation dossiers published + by EFSA. Kinetic evaluations shown for these datasets are intended to illustrate + and advance error model specifications. The fact that these data and some + results are shown here do not imply a license to use them in the context of + pesticide registrations, as the use of the data may be constrained by + data protection regulations.

+ +
+ +
experimental_data_for_UBA_2019
+ +

Format

+ +

A list containing twelve datasets as an R6 class defined by mkinds, + each containing, among others, the following components

+
title

The name of the dataset, e.g. Soil 1

+
data

A data frame with the data in the form expected by mkinfit

+
+ +

Source

+ +

Ranke (2019) Documentation of results obtained for the error model expertise + written for the German Umweltbundesamt.

+ + +

Examples

+
+# Model definitions +sfo_sfo <- mkinmod( + parent = mkinsub("SFO", to = "A1"), + A1 = mkinsub("SFO"), + use_of_ff = "max" +)
#> Successfully compiled differential equation model from auto-generated C code.
+dfop_sfo <- mkinmod( + parent = mkinsub("DFOP", to = "A1"), + A1 = mkinsub("SFO"), + use_of_ff = "max" +)
#> Successfully compiled differential equation model from auto-generated C code.
+sfo_sfo_sfo <- mkinmod( + parent = mkinsub("SFO", to = "A1"), + A1 = mkinsub("SFO", to = "A2"), + A2 = mkinsub("SFO"), + use_of_ff = "max" +)
#> Successfully compiled differential equation model from auto-generated C code.
+dfop_sfo_sfo <- mkinmod( + parent = mkinsub("DFOP", to = "A1"), + A1 = mkinsub("SFO", to = "A2"), + A2 = mkinsub("SFO"), + use_of_ff = "max" +)
#> Successfully compiled differential equation model from auto-generated C code.
d_1_2 <- lapply(experimental_data_for_UBA_2019[1:2], function(x) x$data) +names(d_1_2) <- paste("Soil", 1:2) + + +f_1_2_tc <- mmkin(list("DFOP-SFO-SFO" = dfop_sfo_sfo), d_1_2, error_model = "tc") + +plot(f_1_2_tc, resplot = "errmod")
+
+
+ +
+ +
+ + +
+

Site built with pkgdown 1.3.0.

+
+
+
+ + + + + + diff --git a/docs/reference/geometric_mean.html b/docs/reference/geometric_mean.html index 908aa8cc..286b40d4 100644 --- a/docs/reference/geometric_mean.html +++ b/docs/reference/geometric_mean.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -174,7 +174,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/ilr.html b/docs/reference/ilr.html index 0a18d535..3eac2872 100644 --- a/docs/reference/ilr.html +++ b/docs/reference/ilr.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -196,7 +196,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/index.html b/docs/reference/index.html index 42028d60..c5ac0d72 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -60,7 +60,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -194,6 +194,12 @@

Function to plot the confidence intervals obtained using mkinfit

+ +

mkinerrplot()

+ +

Function to plot squared residuals and the error model for an mkin object

+ +

endpoints()

@@ -306,6 +312,12 @@

Synthetic datasets for one parent compound with two metabolites

+ +

experimental_data_for_UBA_2019

+ +

Experimental datasets used for development and testing of error models

+ +

test_data_from_UBA_2014

@@ -529,7 +541,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/logLik.mkinfit.html b/docs/reference/logLik.mkinfit.html index 0184d573..a6cf4867 100644 --- a/docs/reference/logLik.mkinfit.html +++ b/docs/reference/logLik.mkinfit.html @@ -69,7 +69,7 @@ The total number of estimated parameters returned with the value mkin - 0.9.49.4 + 0.9.49.5 @@ -205,7 +205,7 @@ The total number of estimated parameters returned with the value
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/logistic.solution-1.png b/docs/reference/logistic.solution-1.png index 0aaa520b..b9fb891c 100644 Binary files a/docs/reference/logistic.solution-1.png and b/docs/reference/logistic.solution-1.png differ diff --git a/docs/reference/logistic.solution-2.png b/docs/reference/logistic.solution-2.png index d1831a46..752fd9d4 100644 Binary files a/docs/reference/logistic.solution-2.png and b/docs/reference/logistic.solution-2.png differ diff --git a/docs/reference/logistic.solution.html b/docs/reference/logistic.solution.html index 3b45b14f..cee169d2 100644 --- a/docs/reference/logistic.solution.html +++ b/docs/reference/logistic.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -242,7 +242,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/max_twa_parent.html b/docs/reference/max_twa_parent.html index 33c5ee4f..ad19853d 100644 --- a/docs/reference/max_twa_parent.html +++ b/docs/reference/max_twa_parent.html @@ -67,7 +67,7 @@ guidance." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -196,7 +196,7 @@ guidance.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mccall81_245T-1.png b/docs/reference/mccall81_245T-1.png index 859f315a..b9a42571 100644 Binary files a/docs/reference/mccall81_245T-1.png and b/docs/reference/mccall81_245T-1.png differ diff --git a/docs/reference/mccall81_245T.html b/docs/reference/mccall81_245T.html index 1db9a9d9..1af77f6b 100644 --- a/docs/reference/mccall81_245T.html +++ b/docs/reference/mccall81_245T.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -237,7 +237,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkin_long_to_wide.html b/docs/reference/mkin_long_to_wide.html index 7d0ad2fc..6f0d5376 100644 --- a/docs/reference/mkin_long_to_wide.html +++ b/docs/reference/mkin_long_to_wide.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -208,7 +208,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkin_wide_to_long.html b/docs/reference/mkin_wide_to_long.html index 4fc0e2ed..869c4586 100644 --- a/docs/reference/mkin_wide_to_long.html +++ b/docs/reference/mkin_wide_to_long.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -186,7 +186,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinds.html b/docs/reference/mkinds.html index 2c01be70..89f40abf 100644 --- a/docs/reference/mkinds.html +++ b/docs/reference/mkinds.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -176,7 +176,7 @@ in order to be compatible with mkinfit

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinerrmin.html b/docs/reference/mkinerrmin.html index 3ebea1e4..8fd09215 100644 --- a/docs/reference/mkinerrmin.html +++ b/docs/reference/mkinerrmin.html @@ -64,7 +64,7 @@ chi-squared test as defined in the FOCUS kinetics report from 2006." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -211,7 +211,7 @@ chi-squared test as defined in the FOCUS kinetics report from 2006.

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinerrplot-1.png b/docs/reference/mkinerrplot-1.png index 9c663646..476edc49 100644 Binary files a/docs/reference/mkinerrplot-1.png and b/docs/reference/mkinerrplot-1.png differ diff --git a/docs/reference/mkinerrplot.html b/docs/reference/mkinerrplot.html index 66da40b5..a0201963 100644 --- a/docs/reference/mkinerrplot.html +++ b/docs/reference/mkinerrplot.html @@ -68,7 +68,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -238,7 +238,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html index bfca44fc..8cabcb21 100644 --- a/docs/reference/mkinfit.html +++ b/docs/reference/mkinfit.html @@ -71,7 +71,7 @@ Per default, parameters in the kinetic models are internally transformed in mkin - 0.9.49.4 + 0.9.49.5 @@ -163,6 +163,8 @@ Per default, parameters in the kinetic models are internally transformed in quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, error_model = c("const", "obs", "tc"), + error_model_algorithm = c("d_3", "direct", "twostep", "threestep", "fourstep", "IRLS"), + reweight.tol = 1e-8, reweight.max.iter = 10, trace_parms = FALSE, ...)

Arguments

@@ -321,6 +323,41 @@ Per default, parameters in the kinetic models are internally transformed in errors follow a lognormal distribution for large values, not a normal distribution as assumed by this method.

+ + error_model_algorithm +

If the error model is "const", the error model algorithm is ignored, + because no special algorithm is needed and unweighted (also known as + ordinary) least squares fitting can be applied.

+

The default algorithm "d_3" will directly minimize the negative + log-likelihood and - independently - also use the three step algorithm + described below. The fit with the higher likelihood is returned.

+

The algorithm "direct" will directly minimize the negative + log-likelihood.

+

The algorithm "twostep" will minimize the negative log-likelihood + after an initial unweighted leas squares optimisation step.

+

The algorithm "threestep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, and then minimizes the negative log-likelihood + with free degradation and error model parameters.

+

The algorithm "fourstep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, then optimizes the degradation model again + with fixed error model parameters, and finally minimizes the negative + log-likelihood with free degradation and error model parameters.

+

The algorithm "IRLS" starts with unweighted least squares, + and then iterates optimization of the error model parameters and subsequent + optimization of the degradation model using those error model parameters, + until the error model parameters converge.

+ + + reweight.tol +

Tolerance for the convergence criterion calculated from the error model + parameters in IRLS fits.

+ + + reweight.max.iter +

Maximum number of iterations in IRLS fits.

+ trace_parms

Should a trace of the parameter values be listed?

@@ -360,17 +397,17 @@ Per default, parameters in the kinetic models are internally transformed in

Examples

# Use shorthand notation for parent only degradation fit <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE) -summary(fit)
#> mkin version used for fitting: 0.9.49.4 +summary(fit)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:50:50 2019 -#> Date of summary: Wed May 8 20:50:50 2019 +#> Date of fit: Tue Jun 4 15:01:15 2019 +#> Date of summary: Tue Jun 4 15:01:15 2019 #> #> Equations: #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 222 model solutions performed in 0.456 s +#> Fitted using 222 model solutions performed in 0.461 s #> #> Error model: #> Constant variance @@ -443,7 +480,7 @@ Per default, parameters in the kinetic models are internally transformed in m1 = mkinsub("SFO"))
#> Successfully compiled differential equation model from auto-generated C code.
# Fit the model to the FOCUS example dataset D using defaults print(system.time(fit <- mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet = TRUE)))
#> Warning: Observations with value of zero were removed from the data
#> User System verstrichen -#> 1.488 0.000 1.488
coef(fit)
#> NULL
#> $ff +#> 1.521 0.000 1.526
coef(fit)
#> NULL
#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -515,7 +552,7 @@ Per default, parameters in the kinetic models are internally transformed in #> Sum of squared residuals at call 126: 371.2134 #> Sum of squared residuals at call 135: 371.2134 #> Negative log-likelihood at call 145: 97.22429
#> Optimisation successfully terminated.
#> User System verstrichen -#> 1.086 0.000 1.087
coef(fit.deSolve)
#> NULL
endpoints(fit.deSolve)
#> $ff +#> 1.093 0.000 1.093
coef(fit.deSolve)
#> NULL
endpoints(fit.deSolve)
#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -545,10 +582,10 @@ Per default, parameters in the kinetic models are internally transformed in fit.SFORB_SFO <- mkinfit(SFORB_SFO, FOCUS_2006_D, parms.ini = fit.SFORB$bparms.ode, quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
# Weighted fits, including IRLS SFO_SFO.ff <- mkinmod(parent = mkinsub("SFO", "m1"), - m1 = mkinsub("SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
f.noweight <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.noweight)
#> mkin version used for fitting: 0.9.49.4 + m1 = mkinsub("SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
f.noweight <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.noweight)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:51:06 2019 -#> Date of summary: Wed May 8 20:51:06 2019 +#> Date of fit: Tue Jun 4 15:01:31 2019 +#> Date of summary: Tue Jun 4 15:01:31 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -556,7 +593,7 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 421 model solutions performed in 1.082 s +#> Fitted using 421 model solutions performed in 1.096 s #> #> Error model: #> Constant variance @@ -663,10 +700,10 @@ Per default, parameters in the kinetic models are internally transformed in #> 100 m1 31.04 31.98163 -9.416e-01 #> 100 m1 33.13 31.98163 1.148e+00 #> 120 m1 25.15 28.78984 -3.640e+00 -#> 120 m1 33.31 28.78984 4.520e+00
f.obs <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "obs", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.obs)
#> mkin version used for fitting: 0.9.49.4 +#> 120 m1 33.31 28.78984 4.520e+00
f.obs <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "obs", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.obs)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:51:08 2019 -#> Date of summary: Wed May 8 20:51:08 2019 +#> Date of fit: Tue Jun 4 15:01:34 2019 +#> Date of summary: Tue Jun 4 15:01:34 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -674,19 +711,19 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 758 model solutions performed in 1.971 s +#> Fitted using 979 model solutions performed in 2.603 s #> #> Error model: #> Variance unique to each observed variable #> #> Starting values for parameters to be optimised: -#> value type -#> parent_0 100.7500 state -#> k_parent 0.1000 deparm -#> k_m1 0.1001 deparm -#> f_parent_to_m1 0.5000 deparm -#> sigma_parent 3.0000 error -#> sigma_m1 3.0000 error +#> value type +#> parent_0 100.750000 state +#> k_parent 0.100000 deparm +#> k_m1 0.100100 deparm +#> f_parent_to_m1 0.500000 deparm +#> sigma_parent 3.398909 error +#> sigma_m1 2.857157 error #> #> Starting values for the transformed parameters actually optimised: #> value lower upper @@ -694,8 +731,8 @@ Per default, parameters in the kinetic models are internally transformed in #> log_k_parent -2.302585 -Inf Inf #> log_k_m1 -2.301586 -Inf Inf #> f_parent_ilr_1 0.000000 -Inf Inf -#> sigma_parent 3.000000 0 Inf -#> sigma_m1 3.000000 0 Inf +#> sigma_parent 3.398909 0 Inf +#> sigma_m1 2.857157 0 Inf #> #> Fixed parameter values: #> value type @@ -715,14 +752,14 @@ Per default, parameters in the kinetic models are internally transformed in #> parent_0 1.00000 0.51078 -0.19133 -0.59997 0.035670 #> log_k_parent 0.51078 1.00000 -0.37458 -0.59239 0.069833 #> log_k_m1 -0.19133 -0.37458 1.00000 0.74398 -0.026158 -#> f_parent_ilr_1 -0.59997 -0.59239 0.74398 1.00000 -0.041368 +#> f_parent_ilr_1 -0.59997 -0.59239 0.74398 1.00000 -0.041369 #> sigma_parent 0.03567 0.06983 -0.02616 -0.04137 1.000000 -#> sigma_m1 -0.03385 -0.06627 0.02482 0.03925 -0.004628 +#> sigma_m1 -0.03385 -0.06627 0.02482 0.03926 -0.004628 #> sigma_m1 #> parent_0 -0.033847 #> log_k_parent -0.066265 -#> log_k_m1 0.024821 -#> f_parent_ilr_1 0.039255 +#> log_k_m1 0.024823 +#> f_parent_ilr_1 0.039256 #> sigma_parent -0.004628 #> sigma_m1 1.000000 #> @@ -786,17 +823,17 @@ Per default, parameters in the kinetic models are internally transformed in #> 21 m1 46.44 41.65115 4.789e+00 #> 35 m1 41.22 43.29465 -2.075e+00 #> 35 m1 37.95 43.29465 -5.345e+00 -#> 50 m1 41.19 41.19948 -9.481e-03 +#> 50 m1 41.19 41.19948 -9.479e-03 #> 50 m1 40.01 41.19948 -1.189e+00 -#> 75 m1 40.09 36.44036 3.650e+00 -#> 75 m1 33.85 36.44036 -2.590e+00 -#> 100 m1 31.04 31.98774 -9.477e-01 -#> 100 m1 33.13 31.98774 1.142e+00 -#> 120 m1 25.15 28.80430 -3.654e+00 -#> 120 m1 33.31 28.80430 4.506e+00
f.tc <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "tc", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.tc)
#> mkin version used for fitting: 0.9.49.4 +#> 75 m1 40.09 36.44035 3.650e+00 +#> 75 m1 33.85 36.44035 -2.590e+00 +#> 100 m1 31.04 31.98773 -9.477e-01 +#> 100 m1 33.13 31.98773 1.142e+00 +#> 120 m1 25.15 28.80429 -3.654e+00 +#> 120 m1 33.31 28.80429 4.506e+00
f.tc <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "tc", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.tc)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:51:11 2019 -#> Date of summary: Wed May 8 20:51:11 2019 +#> Date of fit: Tue Jun 4 15:01:43 2019 +#> Date of summary: Tue Jun 4 15:01:43 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -804,28 +841,28 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 821 model solutions performed in 3.29 s +#> Fitted using 2289 model solutions performed in 9.499 s #> #> Error model: #> Two-component variance function #> #> Starting values for parameters to be optimised: -#> value type -#> parent_0 100.7500 state -#> k_parent 0.1000 deparm -#> k_m1 0.1001 deparm -#> f_parent_to_m1 0.5000 deparm -#> sigma_low 0.1000 error -#> rsd_high 0.1000 error +#> value type +#> parent_0 1.007500e+02 state +#> k_parent 1.000000e-01 deparm +#> k_m1 1.001000e-01 deparm +#> f_parent_to_m1 5.000000e-01 deparm +#> sigma_low 5.641148e-03 error +#> rsd_high 8.430766e-02 error #> #> Starting values for the transformed parameters actually optimised: -#> value lower upper -#> parent_0 100.750000 -Inf Inf -#> log_k_parent -2.302585 -Inf Inf -#> log_k_m1 -2.301586 -Inf Inf -#> f_parent_ilr_1 0.000000 -Inf Inf -#> sigma_low 0.100000 0 Inf -#> rsd_high 0.100000 0 Inf +#> value lower upper +#> parent_0 100.750000000 -Inf Inf +#> log_k_parent -2.302585093 -Inf Inf +#> log_k_m1 -2.301585593 -Inf Inf +#> f_parent_ilr_1 0.000000000 -Inf Inf +#> sigma_low 0.005641148 0 Inf +#> rsd_high 0.084307660 0 Inf #> #> Fixed parameter values: #> value type @@ -856,7 +893,7 @@ Per default, parameters in the kinetic models are internally transformed in #> Estimate t value Pr(>t) Lower Upper #> parent_0 1.007e+02 38.4300 1.180e-28 95.400000 1.061e+02 #> k_parent 1.006e-01 112.8000 1.718e-43 0.098760 1.024e-01 -#> k_m1 5.167e-03 10.9500 1.172e-12 0.004290 6.223e-03 +#> k_m1 5.167e-03 10.9500 1.171e-12 0.004290 6.223e-03 #> f_parent_to_m1 5.084e-01 26.0100 2.146e-23 0.468600 5.481e-01 #> sigma_low 3.050e-03 0.6314 2.661e-01 -0.006786 1.289e-02 #> rsd_high 7.928e-02 8.4170 6.418e-10 0.060100 9.847e-02 @@ -879,18 +916,18 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Data: #> time variable observed predicted residual -#> 0 parent 99.46 100.73433 -1.274329 -#> 0 parent 102.04 100.73433 1.305671 -#> 1 parent 93.50 91.09750 2.402495 -#> 1 parent 92.50 91.09750 1.402495 -#> 3 parent 63.23 74.50140 -11.271403 -#> 3 parent 68.99 74.50140 -5.511403 -#> 7 parent 52.32 49.82880 2.491205 -#> 7 parent 55.13 49.82880 5.301205 -#> 14 parent 27.27 24.64809 2.621909 -#> 14 parent 26.64 24.64809 1.991909 -#> 21 parent 11.50 12.19231 -0.692315 -#> 21 parent 11.64 12.19231 -0.552315 +#> 0 parent 99.46 100.73434 -1.274339 +#> 0 parent 102.04 100.73434 1.305661 +#> 1 parent 93.50 91.09751 2.402486 +#> 1 parent 92.50 91.09751 1.402486 +#> 3 parent 63.23 74.50141 -11.271410 +#> 3 parent 68.99 74.50141 -5.511410 +#> 7 parent 52.32 49.82880 2.491201 +#> 7 parent 55.13 49.82880 5.301201 +#> 14 parent 27.27 24.64809 2.621908 +#> 14 parent 26.64 24.64809 1.991908 +#> 21 parent 11.50 12.19232 -0.692315 +#> 21 parent 11.64 12.19232 -0.552315 #> 35 parent 2.85 2.98327 -0.133266 #> 35 parent 2.91 2.98327 -0.073266 #> 50 parent 0.69 0.66013 0.029874 @@ -899,24 +936,24 @@ Per default, parameters in the kinetic models are internally transformed in #> 75 parent 0.06 0.05344 0.006562 #> 1 m1 4.84 4.88645 -0.046451 #> 1 m1 5.64 4.88645 0.753549 -#> 3 m1 12.91 13.22867 -0.318668 -#> 3 m1 12.96 13.22867 -0.268668 -#> 7 m1 22.97 25.36416 -2.394164 -#> 7 m1 24.47 25.36416 -0.894164 -#> 14 m1 41.69 37.00974 4.680265 -#> 14 m1 33.21 37.00974 -3.799735 -#> 21 m1 44.37 41.90133 2.468670 -#> 21 m1 46.44 41.90133 4.538670 -#> 35 m1 41.22 43.45691 -2.236914 -#> 35 m1 37.95 43.45691 -5.506914 -#> 50 m1 41.19 41.34199 -0.151988 -#> 50 m1 40.01 41.34199 -1.331988 -#> 75 m1 40.09 36.61471 3.475290 -#> 75 m1 33.85 36.61471 -2.764710 -#> 100 m1 31.04 32.20083 -1.160830 -#> 100 m1 33.13 32.20083 0.929170 -#> 120 m1 25.15 29.04131 -3.891312 -#> 120 m1 33.31 29.04131 4.268688
+#> 3 m1 12.91 13.22867 -0.318669 +#> 3 m1 12.96 13.22867 -0.268669 +#> 7 m1 22.97 25.36417 -2.394166 +#> 7 m1 24.47 25.36417 -0.894166 +#> 14 m1 41.69 37.00974 4.680263 +#> 14 m1 33.21 37.00974 -3.799737 +#> 21 m1 44.37 41.90133 2.468669 +#> 21 m1 46.44 41.90133 4.538669 +#> 35 m1 41.22 43.45691 -2.236913 +#> 35 m1 37.95 43.45691 -5.506913 +#> 50 m1 41.19 41.34199 -0.151985 +#> 50 m1 40.01 41.34199 -1.331985 +#> 75 m1 40.09 36.61471 3.475295 +#> 75 m1 33.85 36.61471 -2.764705 +#> 100 m1 31.04 32.20082 -1.160823 +#> 100 m1 33.13 32.20082 0.929177 +#> 120 m1 25.15 29.04130 -3.891304 +#> 120 m1 33.31 29.04130 4.268696
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html index 51be5465..2c5f056e 100644 --- a/docs/reference/mkinmod.html +++ b/docs/reference/mkinmod.html @@ -68,7 +68,7 @@ For the definition of model types and their parameters, the equations given mkin - 0.9.49.4 + 0.9.49.5 @@ -234,7 +234,7 @@ For the definition of model types and their parameters, the equations given SFO_SFO <- mkinmod( parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"), verbose = TRUE)
#> Compilation argument: -#> /usr/lib/R/bin/R CMD SHLIB file4bbd307f8763.c 2> file4bbd307f8763.c.err.txt +#> /usr/lib/R/bin/R CMD SHLIB filebbe6b539c4f.c 2> filebbe6b539c4f.c.err.txt #> Program source: #> 1: #include <R.h> #> 2: @@ -291,7 +291,7 @@ For the definition of model types and their parameters, the equations given
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinparplot-1.png b/docs/reference/mkinparplot-1.png index 65918d53..d4259579 100644 Binary files a/docs/reference/mkinparplot-1.png and b/docs/reference/mkinparplot-1.png differ diff --git a/docs/reference/mkinparplot.html b/docs/reference/mkinparplot.html index 8cfb9374..71fd6245 100644 --- a/docs/reference/mkinparplot.html +++ b/docs/reference/mkinparplot.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -177,7 +177,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinplot.html b/docs/reference/mkinplot.html index 0c8ee269..5ac632c8 100644 --- a/docs/reference/mkinplot.html +++ b/docs/reference/mkinplot.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -172,7 +172,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html index 8e2e307b..f339b26a 100644 --- a/docs/reference/mkinpredict.html +++ b/docs/reference/mkinpredict.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -328,17 +328,17 @@ c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "eigen")[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.003 0.000 0.004
system.time( +#> 0.003 0.000 0.003
system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve")[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.002 0.000 0.001
system.time( +#> 0.002 0.000 0.002
system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve", use_compiled = FALSE)[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.021 0.000 0.021
+#> 0.021 0.000 0.022
# Predict from a fitted model f <- mkinfit(SFO_SFO, FOCUS_2006_C)
#> Ordinary least squares optimisation
#> Sum of squared residuals at call 1: 552.5739 #> Sum of squared residuals at call 3: 552.5739 @@ -397,7 +397,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinresplot-1.png b/docs/reference/mkinresplot-1.png index 344561de..d29181c3 100644 Binary files a/docs/reference/mkinresplot-1.png and b/docs/reference/mkinresplot-1.png differ diff --git a/docs/reference/mkinresplot.html b/docs/reference/mkinresplot.html index ab3b35b4..45722db4 100644 --- a/docs/reference/mkinresplot.html +++ b/docs/reference/mkinresplot.html @@ -66,7 +66,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -224,7 +224,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mkinsub.html b/docs/reference/mkinsub.html index b87ceca4..4d81f639 100644 --- a/docs/reference/mkinsub.html +++ b/docs/reference/mkinsub.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -203,7 +203,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/mmkin-1.png b/docs/reference/mmkin-1.png index 9d86a2df..328cec9b 100644 Binary files a/docs/reference/mmkin-1.png and b/docs/reference/mmkin-1.png differ diff --git a/docs/reference/mmkin-2.png b/docs/reference/mmkin-2.png index 59d293d5..5e264309 100644 Binary files a/docs/reference/mmkin-2.png and b/docs/reference/mmkin-2.png differ diff --git a/docs/reference/mmkin-3.png b/docs/reference/mmkin-3.png index a947ac65..0a58a86b 100644 Binary files a/docs/reference/mmkin-3.png and b/docs/reference/mmkin-3.png differ diff --git a/docs/reference/mmkin-4.png b/docs/reference/mmkin-4.png index 89048ea3..9d8c0931 100644 Binary files a/docs/reference/mmkin-4.png and b/docs/reference/mmkin-4.png differ diff --git a/docs/reference/mmkin-5.png b/docs/reference/mmkin-5.png index 0c81649c..29206932 100644 Binary files a/docs/reference/mmkin-5.png and b/docs/reference/mmkin-5.png differ diff --git a/docs/reference/mmkin.html b/docs/reference/mmkin.html index 3e297eb3..a830646f 100644 --- a/docs/reference/mmkin.html +++ b/docs/reference/mmkin.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -194,8 +194,8 @@ time_1 <- system.time(fits.4 <- mmkin(models, datasets, cores = 1, quiet = TRUE)) time_default
#> User System verstrichen -#> 0.048 0.024 5.085
time_1
#> User System verstrichen -#> 19.074 0.004 19.089
+#> 0.046 0.032 5.094
time_1
#> User System verstrichen +#> 19.798 0.004 19.814
endpoints(fits.0[["SFO_lin", 2]])
#> $ff #> parent_M1 parent_sink M1_M2 M1_sink #> 0.7340481 0.2659519 0.7505684 0.2494316 @@ -240,7 +240,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/nafta-1.png b/docs/reference/nafta-1.png index bcf5d12c..9025f2bb 100644 Binary files a/docs/reference/nafta-1.png and b/docs/reference/nafta-1.png differ diff --git a/docs/reference/nafta.html b/docs/reference/nafta.html index a9ee2f76..e0c3c0e2 100644 --- a/docs/reference/nafta.html +++ b/docs/reference/nafta.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -244,7 +244,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/plot.mkinfit-1.png b/docs/reference/plot.mkinfit-1.png index f70e9e31..0fe3c263 100644 Binary files a/docs/reference/plot.mkinfit-1.png and b/docs/reference/plot.mkinfit-1.png differ diff --git a/docs/reference/plot.mkinfit-2.png b/docs/reference/plot.mkinfit-2.png index 6facce0f..84bec348 100644 Binary files a/docs/reference/plot.mkinfit-2.png and b/docs/reference/plot.mkinfit-2.png differ diff --git a/docs/reference/plot.mkinfit-3.png b/docs/reference/plot.mkinfit-3.png index b53b3134..557046da 100644 Binary files a/docs/reference/plot.mkinfit-3.png and b/docs/reference/plot.mkinfit-3.png differ diff --git a/docs/reference/plot.mkinfit-4.png b/docs/reference/plot.mkinfit-4.png index 70a936ee..60203c3d 100644 Binary files a/docs/reference/plot.mkinfit-4.png and b/docs/reference/plot.mkinfit-4.png differ diff --git a/docs/reference/plot.mkinfit-5.png b/docs/reference/plot.mkinfit-5.png index 2e208996..36fcff6a 100644 Binary files a/docs/reference/plot.mkinfit-5.png and b/docs/reference/plot.mkinfit-5.png differ diff --git a/docs/reference/plot.mkinfit-6.png b/docs/reference/plot.mkinfit-6.png index 1da876b4..ad2ffa8c 100644 Binary files a/docs/reference/plot.mkinfit-6.png and b/docs/reference/plot.mkinfit-6.png differ diff --git a/docs/reference/plot.mkinfit.html b/docs/reference/plot.mkinfit.html index 7bfc17f6..5cab42fd 100644 --- a/docs/reference/plot.mkinfit.html +++ b/docs/reference/plot.mkinfit.html @@ -68,7 +68,7 @@ If the current plot device is a tikz device, mkin - 0.9.49.4 + 0.9.49.5 @@ -269,9 +269,9 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, …

Examples

-
# One parent compound, one metabolite, both single first order, path from -# parent to sink included -SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"), +
# One parent compound, one metabolite, both single first order, path from +# parent to sink included +
SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"), m1 = mkinsub("SFO", full = "Metabolite M1" ))
#> Successfully compiled differential equation model from auto-generated C code.
fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE, error_model = "tc")
#> Warning: Observations with value of zero were removed from the data
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"))
@@ -306,7 +306,7 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, …
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/plot.mmkin-1.png b/docs/reference/plot.mmkin-1.png index 03d334f7..8cf969c9 100644 Binary files a/docs/reference/plot.mmkin-1.png and b/docs/reference/plot.mmkin-1.png differ diff --git a/docs/reference/plot.mmkin-2.png b/docs/reference/plot.mmkin-2.png index 25ed01cc..45d67b55 100644 Binary files a/docs/reference/plot.mmkin-2.png and b/docs/reference/plot.mmkin-2.png differ diff --git a/docs/reference/plot.mmkin-3.png b/docs/reference/plot.mmkin-3.png index 7f32afe2..47cd7eec 100644 Binary files a/docs/reference/plot.mmkin-3.png and b/docs/reference/plot.mmkin-3.png differ diff --git a/docs/reference/plot.mmkin-4.png b/docs/reference/plot.mmkin-4.png index b03dffb2..44037bb4 100644 Binary files a/docs/reference/plot.mmkin-4.png and b/docs/reference/plot.mmkin-4.png differ diff --git a/docs/reference/plot.mmkin.html b/docs/reference/plot.mmkin.html index 3037ca24..0b626d1b 100644 --- a/docs/reference/plot.mmkin.html +++ b/docs/reference/plot.mmkin.html @@ -67,7 +67,7 @@ If the current plot device is a tikz device, mkin - 0.9.49.4 + 0.9.49.5 @@ -197,8 +197,8 @@ If the current plot device is a tikz device,
# 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, error_model = "tc") - plot(fits[, "FOCUS C"])
plot(fits["FOMC", ])
+ cores = 1, quiet = TRUE, error_model = "tc")
#> Warning: Optimisation did not converge: +#> iteration limit reached without convergence (10)
plot(fits[, "FOCUS C"])
plot(fits["FOMC", ])
# We can also plot a single fit, if we like the way plot.mmkin works, but then the plot # height should be smaller than the plot width (this is not possible for the html pages # generated by pkgdown, as far as I know). @@ -227,7 +227,7 @@ If the current plot device is a tikz device,
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/plot.nafta.html b/docs/reference/plot.nafta.html index 1aa4485a..fdc6e0ac 100644 --- a/docs/reference/plot.nafta.html +++ b/docs/reference/plot.nafta.html @@ -67,7 +67,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -187,7 +187,7 @@ plot(x, legend = FALSE, main = "auto", …)
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/print.mkinds.html b/docs/reference/print.mkinds.html index 2cc112aa..7c401533 100644 --- a/docs/reference/print.mkinds.html +++ b/docs/reference/print.mkinds.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -165,7 +165,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/print.mkinmod.html b/docs/reference/print.mkinmod.html index d09b629e..4ca7631b 100644 --- a/docs/reference/print.mkinmod.html +++ b/docs/reference/print.mkinmod.html @@ -63,7 +63,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -186,7 +186,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/print.nafta.html b/docs/reference/print.nafta.html index 28847afe..10afb77d 100644 --- a/docs/reference/print.nafta.html +++ b/docs/reference/print.nafta.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -177,7 +177,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/schaefer07_complex_case-1.png b/docs/reference/schaefer07_complex_case-1.png index 49967dc9..34356613 100644 Binary files a/docs/reference/schaefer07_complex_case-1.png and b/docs/reference/schaefer07_complex_case-1.png differ diff --git a/docs/reference/schaefer07_complex_case.html b/docs/reference/schaefer07_complex_case.html index 09f6d1e2..50e07d37 100644 --- a/docs/reference/schaefer07_complex_case.html +++ b/docs/reference/schaefer07_complex_case.html @@ -65,7 +65,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -216,7 +216,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/sigma_twocomp.html b/docs/reference/sigma_twocomp.html index 265c7d1f..b73b81f4 100644 --- a/docs/reference/sigma_twocomp.html +++ b/docs/reference/sigma_twocomp.html @@ -68,7 +68,7 @@ This is the error model used for example by Werner et al. (1978). The model mkin - 0.9.49.4 + 0.9.49.5 @@ -195,7 +195,7 @@ This is the error model used for example by Werner et al. (1978). The model
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index b3151da1..ffe1edb1 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -66,7 +66,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -209,10 +209,10 @@

Examples

-
summary(mkinfit(mkinmod(parent = mkinsub("SFO")), FOCUS_2006_A, quiet = TRUE))
#> mkin version used for fitting: 0.9.49.4 +
summary(mkinfit(mkinmod(parent = mkinsub("SFO")), FOCUS_2006_A, quiet = TRUE))
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:52:12 2019 -#> Date of summary: Wed May 8 20:52:12 2019 +#> Date of fit: Tue Jun 4 15:03:02 2019 +#> Date of summary: Tue Jun 4 15:03:02 2019 #> #> Equations: #> d_parent/dt = - k_parent_sink * parent @@ -307,7 +307,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/synthetic_data_for_UBA.html b/docs/reference/synthetic_data_for_UBA.html index 2c2623e4..4a7ca728 100644 --- a/docs/reference/synthetic_data_for_UBA.html +++ b/docs/reference/synthetic_data_for_UBA.html @@ -40,7 +40,7 @@ Variance component 'a' is based on a normal distribution with standard deviation Variance component 'c' is based on the error model from Rocke and Lorenzato (1995), with the minimum standard deviation (for small y values) of 0.5, and a proportionality constant of 0.07 for the increase of the standard deviation with y. Note that this is a simplified version - of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the + of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the measured values approximates lognormal distribution for high values, whereas we are using normally distributed error components all along. Initial concentrations for metabolites and all values where adding the variance component resulted @@ -78,7 +78,7 @@ Compare also the code in the example section to see the degradation models." /> mkin - 0.9.49.4 + 0.9.49.5 @@ -151,7 +151,7 @@ Compare also the code in the example section to see the degradation models." /> Variance component 'c' is based on the error model from Rocke and Lorenzato (1995), with the minimum standard deviation (for small y values) of 0.5, and a proportionality constant of 0.07 for the increase of the standard deviation with y. Note that this is a simplified version - of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the + of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the measured values approximates lognormal distribution for high values, whereas we are using normally distributed error components all along.

Initial concentrations for metabolites and all values where adding the variance component resulted @@ -253,7 +253,8 @@ add_err = function(d, sdfunc, LOD = 0.1, reps = 2, seed = 123456789) return(d_NA) } -# The following is the two-component model of Rocke and Lorenzato (1995) +# The following is the simplified version of the two-component model of Rocke +# and Lorenzato (1995) sdfunc_twocomp = function(value, sd_low, rsd_high) { sqrt(sd_low^2 + value^2 * rsd_high^2) } @@ -304,7 +305,7 @@ summary(fit)

-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/test_data_from_UBA_2014-1.png b/docs/reference/test_data_from_UBA_2014-1.png index a9aeea21..fc05f896 100644 Binary files a/docs/reference/test_data_from_UBA_2014-1.png and b/docs/reference/test_data_from_UBA_2014-1.png differ diff --git a/docs/reference/test_data_from_UBA_2014-2.png b/docs/reference/test_data_from_UBA_2014-2.png index f6c91bff..b0dfdd5a 100644 Binary files a/docs/reference/test_data_from_UBA_2014-2.png and b/docs/reference/test_data_from_UBA_2014-2.png differ diff --git a/docs/reference/test_data_from_UBA_2014.html b/docs/reference/test_data_from_UBA_2014.html index bc988340..e40d320f 100644 --- a/docs/reference/test_data_from_UBA_2014.html +++ b/docs/reference/test_data_from_UBA_2014.html @@ -64,7 +64,7 @@ mkin - 0.9.49.4 + 0.9.49.5 @@ -231,7 +231,7 @@
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/docs/reference/transform_odeparms.html b/docs/reference/transform_odeparms.html index 7e05480e..bf134334 100644 --- a/docs/reference/transform_odeparms.html +++ b/docs/reference/transform_odeparms.html @@ -71,7 +71,7 @@ The transformation of sets of formation fractions is fragile, as it supposes mkin - 0.9.49.4 + 0.9.49.5 @@ -293,7 +293,7 @@ The transformation of sets of formation fractions is fragile, as it supposes
-

Site built with pkgdown 1.3.0.9000.

+

Site built with pkgdown 1.3.0.

diff --git a/man/mkinerrplot.Rd b/man/mkinerrplot.Rd index 4cbb5eb7..3b557b0a 100644 --- a/man/mkinerrplot.Rd +++ b/man/mkinerrplot.Rd @@ -68,8 +68,10 @@ \code{\link{mkinplot}}, for a way to plot the data and the fitted lines of the mkinfit object. } \examples{ +\dontrun{ 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/mkinfit.Rd b/man/mkinfit.Rd index 78a53ee0..975eace8 100644 --- a/man/mkinfit.Rd +++ b/man/mkinfit.Rd @@ -31,6 +31,8 @@ mkinfit(mkinmod, observed, quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, error_model = c("const", "obs", "tc"), + error_model_algorithm = c("d_3", "direct", "twostep", "threestep", "fourstep", "IRLS"), + reweight.tol = 1e-8, reweight.max.iter = 10, trace_parms = FALSE, ...) } \arguments{ @@ -171,6 +173,44 @@ mkinfit(mkinmod, observed, errors follow a lognormal distribution for large values, not a normal distribution as assumed by this method. } + \item{error_model_algorithm}{ + If the error model is "const", the error model algorithm is ignored, + because no special algorithm is needed and unweighted (also known as + ordinary) least squares fitting can be applied. + + The default algorithm "d_3" will directly minimize the negative + log-likelihood and - independently - also use the three step algorithm + described below. The fit with the higher likelihood is returned. + + The algorithm "direct" will directly minimize the negative + log-likelihood. + + The algorithm "twostep" will minimize the negative log-likelihood + after an initial unweighted leas squares optimisation step. + + The algorithm "threestep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, and then minimizes the negative log-likelihood + with free degradation and error model parameters. + + The algorithm "fourstep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, then optimizes the degradation model again + with fixed error model parameters, and finally minimizes the negative + log-likelihood with free degradation and error model parameters. + + The algorithm "IRLS" starts with unweighted least squares, + and then iterates optimization of the error model parameters and subsequent + optimization of the degradation model using those error model parameters, + until the error model parameters converge. + } + \item{reweight.tol}{ + Tolerance for the convergence criterion calculated from the error model + parameters in IRLS fits. + } + \item{reweight.max.iter}{ + Maximum number of iterations in IRLS fits. + } \item{trace_parms}{ Should a trace of the parameter values be listed? } diff --git a/man/plot.mkinfit.Rd b/man/plot.mkinfit.Rd index 9514c5e5..5e20ad90 100644 --- a/man/plot.mkinfit.Rd +++ b/man/plot.mkinfit.Rd @@ -115,6 +115,7 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, \dots) \examples{ # One parent compound, one metabolite, both single first order, path from # parent to sink included +\dontrun{ SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"), m1 = mkinsub("SFO", full = "Metabolite M1" )) fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE, error_model = "tc") @@ -136,6 +137,7 @@ plot_sep(fit, lpos = c("topright", "bottomright")) plot(fit, sep_obs = TRUE, show_errplot = TRUE, lpos = c("topright", "bottomright"), show_errmin = TRUE) } +} \author{ Johannes Ranke } diff --git a/test.log b/test.log index 0fcca094..30196966 100644 --- a/test.log +++ b/test.log @@ -2,28 +2,396 @@ 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.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 | 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 ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 11 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 30: 65.71278 + ⠹ | 13 | Error model fittingNegative log-likelihood at call 1: 4104.4 +Negative log-likelihood at call 2: 4104.4 +Negative log-likelihood at call 4: 4104.399 +Negative log-likelihood at call 6: 85.79717 +Negative log-likelihood at call 11: 72.50327 +Negative log-likelihood at call 12: 72.50327 +Negative log-likelihood at call 17: 71.79809 +Negative log-likelihood at call 22: 71.10373 +Negative log-likelihood at call 26: 71.10373 +Negative log-likelihood at call 27: 70.84093 +Negative log-likelihood at call 29: 70.84093 +Negative log-likelihood at call 32: 70.64538 +Negative log-likelihood at call 37: 70.64538 +Negative log-likelihood at call 38: 70.33707 +Negative log-likelihood at call 40: 70.33707 +Negative log-likelihood at call 42: 70.33707 +Negative log-likelihood at call 43: 69.89484 +Negative log-likelihood at call 48: 69.05915 +Negative log-likelihood at call 53: 67.99547 +Negative log-likelihood at call 56: 67.99547 +Negative log-likelihood at call 58: 66.59808 +Negative log-likelihood at call 63: 66.59808 +Negative log-likelihood at call 64: 66.2343 +Negative log-likelihood at call 65: 66.23429 +Negative log-likelihood at call 68: 66.23428 +Negative log-likelihood at call 69: 65.67228 +Negative log-likelihood at call 70: 65.67228 +Negative log-likelihood at call 73: 65.67227 +Negative log-likelihood at call 74: 65.33106 +Negative log-likelihood at call 79: 65.31005 +Negative log-likelihood at call 80: 65.31005 +Negative log-likelihood at call 81: 65.31005 +Negative log-likelihood at call 83: 65.31004 +Negative log-likelihood at call 84: 65.17731 +Negative log-likelihood at call 85: 65.17731 +Negative log-likelihood at call 89: 65.16821 +Negative log-likelihood at call 94: 65.13357 +Negative log-likelihood at call 96: 65.13357 +Negative log-likelihood at call 98: 65.13357 +Negative log-likelihood at call 99: 65.08107 +Negative log-likelihood at call 104: 64.86685 +Negative log-likelihood at call 105: 64.86685 +Negative log-likelihood at call 109: 64.50332 +Negative log-likelihood at call 112: 64.50332 +Negative log-likelihood at call 114: 64.10889 +Negative log-likelihood at call 119: 63.57448 +Negative log-likelihood at call 120: 63.57448 +Negative log-likelihood at call 123: 63.57448 +Negative log-likelihood at call 124: 63.5456 +Negative log-likelihood at call 127: 63.5456 +Negative log-likelihood at call 129: 63.48903 +Negative log-likelihood at call 131: 63.48903 +Negative log-likelihood at call 135: 63.47608 +Negative log-likelihood at call 140: 63.47181 +Negative log-likelihood at call 141: 63.47181 +Negative log-likelihood at call 145: 63.4714 +Negative log-likelihood at call 146: 63.4714 +Negative log-likelihood at call 151: 63.4714 +Negative log-likelihood at call 152: 63.4714 +Negative log-likelihood at call 160: 63.4714 +Negative log-likelihood at call 169: 63.4714 + ⠸ | 14 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.014 +Negative log-likelihood at call 34: 7208.013 +Negative log-likelihood at call 36: 132.2815 +Negative log-likelihood at call 41: 75.57291 +Negative log-likelihood at call 42: 75.57291 +Negative log-likelihood at call 45: 75.57291 +Negative log-likelihood at call 47: 73.57761 +Negative log-likelihood at call 52: 70.3766 +Negative log-likelihood at call 57: 68.75449 +Negative log-likelihood at call 62: 68.50149 +Negative log-likelihood at call 64: 68.50149 +Negative log-likelihood at call 66: 68.50146 +Negative log-likelihood at call 67: 68.2035 +Negative log-likelihood at call 71: 68.2035 +Negative log-likelihood at call 72: 68.13162 +Negative log-likelihood at call 77: 67.94078 +Negative log-likelihood at call 78: 67.60889 +Negative log-likelihood at call 80: 67.60889 +Negative log-likelihood at call 83: 66.72645 +Negative log-likelihood at call 88: 65.66209 +Negative log-likelihood at call 93: 64.79703 +Negative log-likelihood at call 98: 64.6745 +Negative log-likelihood at call 101: 64.6745 +Negative log-likelihood at call 102: 64.6745 +Negative log-likelihood at call 103: 64.60902 +Negative log-likelihood at call 108: 64.56616 +Negative log-likelihood at call 113: 64.55458 +Negative log-likelihood at call 117: 64.55458 +Negative log-likelihood at call 119: 64.50796 +Negative log-likelihood at call 121: 64.50796 +Negative log-likelihood at call 124: 64.41361 +Negative log-likelihood at call 129: 64.2052 +Negative log-likelihood at call 134: 63.92264 +Negative log-likelihood at call 139: 63.66033 +Negative log-likelihood at call 140: 63.66033 +Negative log-likelihood at call 142: 63.66033 +Negative log-likelihood at call 144: 63.55606 +Negative log-likelihood at call 146: 63.55606 +Negative log-likelihood at call 149: 63.48537 +Negative log-likelihood at call 150: 63.48537 +Negative log-likelihood at call 154: 63.47183 +Negative log-likelihood at call 156: 63.47183 +Negative log-likelihood at call 157: 63.47183 +Negative log-likelihood at call 159: 63.47141 +Negative log-likelihood at call 160: 63.47141 +Negative log-likelihood at call 162: 63.47141 +Negative log-likelihood at call 164: 63.4714 +Negative log-likelihood at call 165: 63.4714 +Negative log-likelihood at call 168: 63.4714 +Negative log-likelihood at call 172: 63.4714 +Negative log-likelihood at call 173: 63.4714 +Negative log-likelihood at call 181: 63.4714 +Negative log-likelihood at call 182: 63.4714 +Negative log-likelihood at call 191: 63.4714 + ⠼ | 15 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.013 +Negative log-likelihood at call 34: 164.0572 +Negative log-likelihood at call 37: 139.4622 +Negative log-likelihood at call 40: 138.9749 +Negative log-likelihood at call 43: 134.4266 +Negative log-likelihood at call 46: 108.9584 +Negative log-likelihood at call 49: 98.97929 +Negative log-likelihood at call 52: 91.49458 +Negative log-likelihood at call 55: 87.49741 +Negative log-likelihood at call 57: 87.49741 +Negative log-likelihood at call 58: 85.29177 +Negative log-likelihood at call 61: 84.23711 +Negative log-likelihood at call 64: 83.76617 +Negative log-likelihood at call 67: 83.53472 +Negative log-likelihood at call 70: 83.33848 +Negative log-likelihood at call 73: 83.00488 +Negative log-likelihood at call 76: 82.06707 +Negative log-likelihood at call 77: 82.06707 +Negative log-likelihood at call 79: 75.48058 +Negative log-likelihood at call 82: 69.27829 +Negative log-likelihood at call 85: 66.14308 +Negative log-likelihood at call 86: 66.14306 +Negative log-likelihood at call 90: 65.73421 +Negative log-likelihood at call 91: 65.73421 +Negative log-likelihood at call 94: 65.71278 +Negative log-likelihood at call 98: 65.71278 +Negative log-likelihood at call 99: 65.71278 +Negative log-likelihood at call 127: 65.71278 + ⠴ | 16 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.013 +Negative log-likelihood at call 34: 164.0572 +Negative log-likelihood at call 37: 139.4622 +Negative log-likelihood at call 40: 138.9749 +Negative log-likelihood at call 43: 134.4266 +Negative log-likelihood at call 46: 108.9584 +Negative log-likelihood at call 49: 98.97929 +Negative log-likelihood at call 52: 91.49458 +Negative log-likelihood at call 55: 87.49741 +Negative log-likelihood at call 57: 87.49741 +Negative log-likelihood at call 58: 85.29177 +Negative log-likelihood at call 61: 84.23711 +Negative log-likelihood at call 64: 83.76617 +Negative log-likelihood at call 67: 83.53472 +Negative log-likelihood at call 70: 83.33848 +Negative log-likelihood at call 73: 83.00488 +Negative log-likelihood at call 76: 82.06707 +Negative log-likelihood at call 77: 82.06707 +Negative log-likelihood at call 79: 75.48058 +Negative log-likelihood at call 82: 69.27829 +Negative log-likelihood at call 85: 66.14308 +Negative log-likelihood at call 86: 66.14306 +Negative log-likelihood at call 90: 65.73421 +Negative log-likelihood at call 91: 65.73421 +Negative log-likelihood at call 94: 65.71278 +Negative log-likelihood at call 98: 65.71278 +Negative log-likelihood at call 99: 65.71278 +Negative log-likelihood at call 132: 65.71278 + ⠦ | 17 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.013 +Negative log-likelihood at call 34: 164.0572 +Negative log-likelihood at call 37: 139.4622 +Negative log-likelihood at call 40: 138.9749 +Negative log-likelihood at call 43: 134.4266 +Negative log-likelihood at call 46: 108.9584 +Negative log-likelihood at call 49: 98.97929 +Negative log-likelihood at call 52: 91.49458 +Negative log-likelihood at call 55: 87.49741 +Negative log-likelihood at call 57: 87.49741 +Negative log-likelihood at call 58: 85.29177 +Negative log-likelihood at call 61: 84.23711 +Negative log-likelihood at call 64: 83.76617 +Negative log-likelihood at call 67: 83.53472 +Negative log-likelihood at call 70: 83.33848 +Negative log-likelihood at call 73: 83.00488 +Negative log-likelihood at call 76: 82.06707 +Negative log-likelihood at call 77: 82.06707 +Negative log-likelihood at call 79: 75.48058 +Negative log-likelihood at call 82: 69.27829 +Negative log-likelihood at call 85: 66.14308 +Negative log-likelihood at call 86: 66.14306 +Negative log-likelihood at call 90: 65.73421 +Negative log-likelihood at call 91: 65.73421 +Negative log-likelihood at call 94: 65.71278 +Negative log-likelihood at call 98: 65.71278 +Negative log-likelihood at call 99: 65.71278 +Negative log-likelihood at call 118: 65.71278 +Negative log-likelihood at call 134: 65.71278 + ⠧ | 18 | Error model fittingNegative log-likelihood at call 1: 4104.4 +Negative log-likelihood at call 2: 4104.4 +Negative log-likelihood at call 4: 4104.399 +Negative log-likelihood at call 6: 85.79717 +Negative log-likelihood at call 11: 72.50327 +Negative log-likelihood at call 12: 72.50327 +Negative log-likelihood at call 17: 71.79809 +Negative log-likelihood at call 22: 71.10373 +Negative log-likelihood at call 26: 71.10373 +Negative log-likelihood at call 27: 70.84093 +Negative log-likelihood at call 29: 70.84093 +Negative log-likelihood at call 32: 70.64538 +Negative log-likelihood at call 37: 70.64538 +Negative log-likelihood at call 38: 70.33707 +Negative log-likelihood at call 40: 70.33707 +Negative log-likelihood at call 42: 70.33707 +Negative log-likelihood at call 43: 69.89484 +Negative log-likelihood at call 48: 69.05915 +Negative log-likelihood at call 53: 67.99547 +Negative log-likelihood at call 56: 67.99547 +Negative log-likelihood at call 58: 66.59808 +Negative log-likelihood at call 63: 66.59808 +Negative log-likelihood at call 64: 66.2343 +Negative log-likelihood at call 65: 66.23429 +Negative log-likelihood at call 68: 66.23428 +Negative log-likelihood at call 69: 65.67228 +Negative log-likelihood at call 70: 65.67228 +Negative log-likelihood at call 73: 65.67227 +Negative log-likelihood at call 74: 65.33106 +Negative log-likelihood at call 79: 65.31005 +Negative log-likelihood at call 80: 65.31005 +Negative log-likelihood at call 81: 65.31005 +Negative log-likelihood at call 83: 65.31004 +Negative log-likelihood at call 84: 65.17731 +Negative log-likelihood at call 85: 65.17731 +Negative log-likelihood at call 89: 65.16821 +Negative log-likelihood at call 94: 65.13357 +Negative log-likelihood at call 96: 65.13357 +Negative log-likelihood at call 98: 65.13357 +Negative log-likelihood at call 99: 65.08107 +Negative log-likelihood at call 104: 64.86685 +Negative log-likelihood at call 105: 64.86685 +Negative log-likelihood at call 109: 64.50332 +Negative log-likelihood at call 112: 64.50332 +Negative log-likelihood at call 114: 64.10889 +Negative log-likelihood at call 119: 63.57448 +Negative log-likelihood at call 120: 63.57448 +Negative log-likelihood at call 123: 63.57448 +Negative log-likelihood at call 124: 63.5456 +Negative log-likelihood at call 127: 63.5456 +Negative log-likelihood at call 129: 63.48903 +Negative log-likelihood at call 131: 63.48903 +Negative log-likelihood at call 135: 63.47608 +Negative log-likelihood at call 140: 63.47181 +Negative log-likelihood at call 141: 63.47181 +Negative log-likelihood at call 145: 63.4714 +Negative log-likelihood at call 146: 63.4714 +Negative log-likelihood at call 151: 63.4714 +Negative log-likelihood at call 152: 63.4714 +Negative log-likelihood at call 160: 63.4714 +Negative log-likelihood at call 169: 63.4714 +Sum of squared residuals at call 179: 1590.602 +Sum of squared residuals at call 181: 1590.601 +Sum of squared residuals at call 183: 999.7593 +Sum of squared residuals at call 185: 999.7513 +Sum of squared residuals at call 186: 979.5713 +Sum of squared residuals at call 187: 948.3366 +Sum of squared residuals at call 188: 855.9518 +Sum of squared residuals at call 191: 836.4547 +Sum of squared residuals at call 192: 836.4547 +Sum of squared residuals at call 194: 836.422 +Sum of squared residuals at call 197: 836.422 +Sum of squared residuals at call 201: 836.422 +Sum of squared residuals at call 202: 836.422 +Negative log-likelihood at call 210: 7208.013 +Negative log-likelihood at call 212: 164.0572 +Negative log-likelihood at call 215: 139.4622 +Negative log-likelihood at call 218: 138.9749 +Negative log-likelihood at call 221: 134.4266 +Negative log-likelihood at call 224: 108.9584 +Negative log-likelihood at call 227: 98.97929 +Negative log-likelihood at call 230: 91.49458 +Negative log-likelihood at call 233: 87.49741 +Negative log-likelihood at call 235: 87.49741 +Negative log-likelihood at call 236: 85.29177 +Negative log-likelihood at call 239: 84.23711 +Negative log-likelihood at call 242: 83.76617 +Negative log-likelihood at call 245: 83.53472 +Negative log-likelihood at call 248: 83.33848 +Negative log-likelihood at call 251: 83.00488 +Negative log-likelihood at call 254: 82.06707 +Negative log-likelihood at call 255: 82.06707 +Negative log-likelihood at call 257: 75.48058 +Negative log-likelihood at call 260: 69.27829 +Negative log-likelihood at call 263: 66.14308 +Negative log-likelihood at call 264: 66.14306 +Negative log-likelihood at call 268: 65.73421 +Negative log-likelihood at call 269: 65.73421 +Negative log-likelihood at call 272: 65.71278 +Negative log-likelihood at call 276: 65.71278 +Negative log-likelihood at call 277: 65.71278 +Negative log-likelihood at call 305: 65.71278 + ⠇ | 19 | Error model fitting ⠏ | 20 | Error model fitting ✔ | 20 | Error model fitting [506.4 s] + ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ⠼ | 5 | Calculation of FOCUS chi2 error levels ✔ | 5 | Calculation of FOCUS chi2 error levels [3.6 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 ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.9 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.7 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.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 | 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.9 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 | 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.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] + ⠏ | 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.4 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.2 s] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 289.7 s +Duration: 584.3 s -OK: 115 +OK: 125 Failed: 0 Warnings: 0 Skipped: 0 diff --git a/tests/testthat/AIC_exp_d_3.out b/tests/testthat/AIC_exp_d_3.out new file mode 100644 index 00000000..e69de29b diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf index da2e2fbe..43215ec4 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-08 +Date: 2019-06-04 Optimiser: IRLS [Data] diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index c656f7d2..6bb93d48 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -178,84 +178,49 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { expect_true(all(abs(tcf_met_2_15_tc_error_model_errors) < 0.10)) }) -test_that("The two-component error model finds the best known AIC values for parent models", { +test_that("The different error model fitting methods work for parent fits", { skip_on_cran() - library(parallel) - source("~/git/mkin/R/mkinfit.R") - source("~/git/mkin/R/mmkin.R") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data) - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "direct") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "twostep") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "threestep") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "fourstep") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "IRLS") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "d_3") - AIC(f_9) - f_10 <- mkinfit("DFOP", experimental_data_for_UBA_2019[[10]]$data, - error_model = "tc", error_model_algorithm = "IRLS") - f_tc_exp_direct <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "direct", - quiet = TRUE) - f_tc_exp_twostep <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "twostep", - quiet = TRUE) - f_tc_exp_threestep <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "threestep", - quiet = TRUE) - f_tc_exp_fourstep <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "fourstep", - quiet = TRUE) - f_tc_exp_IRLS <- mmkin(c("SFO", "DFOP", "HS"), + + f_9_OLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + quiet = TRUE) + expect_equivalent(round(AIC(f_9_OLS), 2), 137.43) + + f_9_direct <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "direct", quiet = TRUE) + expect_equivalent(round(AIC(f_9_direct), 2), 134.94) + + f_9_twostep <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "twostep", quiet = TRUE) + expect_equivalent(round(AIC(f_9_twostep), 2), 134.94) + + f_9_threestep <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "threestep", quiet = TRUE) + expect_equivalent(round(AIC(f_9_threestep), 2), 139.43) + + f_9_fourstep <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "fourstep", quiet = TRUE) + expect_equivalent(round(AIC(f_9_fourstep), 2), 139.43) + + f_9_IRLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "IRLS", quiet = TRUE) + expect_equivalent(round(AIC(f_9_IRLS), 2), 139.43) + + f_9_d_3 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "d_3", quiet = TRUE) + expect_equivalent(round(AIC(f_9_d_3), 2), 134.94) +}) + +test_that("The default error model algorithm finds the best known AIC values for parent fits", { + f_tc_exp_d_3 <- mmkin(c("SFO", "DFOP", "HS"), lapply(experimental_data_for_UBA_2019, function(x) x$data), error_model = "tc", - error_model_algorithm = "IRLS", + error_model_algorithm = "d_3", quiet = TRUE) - AIC_exp_direct <- lapply(f_tc_exp_direct, AIC) - AIC_exp_direct <- lapply(AIC_exp_direct, round, 1) - dim(AIC_exp_direct) <- dim(f_tc_exp_direct) - dimnames(AIC_exp_direct) <- dimnames(f_tc_exp_direct) - - AIC_exp_twostep <- lapply(f_tc_exp_twostep, AIC) - AIC_exp_twostep <- lapply(AIC_exp_twostep, round, 1) - dim(AIC_exp_twostep) <- dim(f_tc_exp_twostep) - dimnames(AIC_exp_twostep) <- dimnames(f_tc_exp_twostep) - - AIC_exp_threestep <- lapply(f_tc_exp_threestep, AIC) - AIC_exp_threestep <- lapply(AIC_exp_threestep, round, 1) - dim(AIC_exp_threestep) <- dim(f_tc_exp_threestep) - dimnames(AIC_exp_threestep) <- dimnames(f_tc_exp_threestep) - - AIC_exp_fourstep <- lapply(f_tc_exp_fourstep, AIC) - AIC_exp_fourstep <- lapply(AIC_exp_fourstep, round, 1) - dim(AIC_exp_fourstep) <- dim(f_tc_exp_fourstep) - dimnames(AIC_exp_fourstep) <- dimnames(f_tc_exp_fourstep) - - AIC_exp_IRLS <- lapply(f_tc_exp_IRLS, AIC) - AIC_exp_IRLS <- lapply(AIC_exp_IRLS, round, 1) - dim(AIC_exp_IRLS) <- dim(f_tc_exp_IRLS) - dimnames(AIC_exp_IRLS) <- dimnames(f_tc_exp_IRLS) - - AIC_exp <- lapply(f_tc_exp, AIC) - dim(AIC_exp) <- dim(f_tc_exp) - dimnames(AIC_exp) <- dimnames(f_tc_exp) - unlist(AIC_exp["SFO", c(9, 11, 12)]) - expect_equivalent(round(unlist(AIC_exp["SFO", c(9, 11, 12)]), 1), - c(134.9, 125.5, 82.0)) -}) - + AIC_exp_d_3 <- lapply(f_tc_exp_d_3, AIC) + AIC_exp_d_3 <- lapply(AIC_exp_d_3, round, 1) + dim(AIC_exp_d_3) <- dim(f_tc_exp_d_3) + dimnames(AIC_exp_d_3) <- dimnames(f_tc_exp_d_3) + expect_known_output(AIC_exp_d_3, "AIC_exp_d_3.out") +}) diff --git a/vignettes/mkin_benchmarks.rda b/vignettes/mkin_benchmarks.rda index e7a1bed1..3e160a06 100644 Binary files a/vignettes/mkin_benchmarks.rda and b/vignettes/mkin_benchmarks.rda differ -- cgit v1.2.1 From 1406e590f853bb46bd69dc9c4ca78d7202952386 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 16:05:04 +0200 Subject: Let travis wait longer for the check to finish --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 4b1b59e1..73f66007 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,5 +9,9 @@ addons: - gcc github_packages: - r-lib/covr +script: + - | + R CMD build . + travis_wait 30 R CMD check mkin.tar.gz after_success: - Rscript -e 'covr::codecov()' -- cgit v1.2.1 From 1a9887c3278ac97feb5972c68d9756be430ea132 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 16:27:07 +0200 Subject: Fix travis configuration (hopefully) --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 73f66007..25960287 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,6 @@ github_packages: script: - | R CMD build . - travis_wait 30 R CMD check mkin.tar.gz + travis_wait 30 R CMD check mkin_*.tar.gz after_success: - Rscript -e 'covr::codecov()' -- cgit v1.2.1 From 7b5624ce352d4865026b5ccbf7b397f33fef58a3 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 16:53:41 +0200 Subject: Also wait for codecov... --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 25960287..172d0236 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,4 +14,4 @@ script: R CMD build . travis_wait 30 R CMD check mkin_*.tar.gz after_success: - - Rscript -e 'covr::codecov()' + - travis_wait 30 Rscript -e 'covr::codecov()' -- cgit v1.2.1 From e36a5db313365bc5acc85126792c767fe18acd71 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 19:12:47 +0200 Subject: Add sources for test data for better transparency --- man/experimental_data_for_UBA.Rd | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/man/experimental_data_for_UBA.Rd b/man/experimental_data_for_UBA.Rd index 797444d8..e3386a2f 100644 --- a/man/experimental_data_for_UBA.Rd +++ b/man/experimental_data_for_UBA.Rd @@ -11,6 +11,37 @@ results are shown here do not imply a license to use them in the context of pesticide registrations, as the use of the data may be constrained by data protection regulations. + + Preprocessing of data was performed based on the recommendations of the FOCUS + kinetics workgroup (FOCUS, 2014) as described below. + + Datasets 1 and 2 are from the Renewal Assessment Report (RAR) for imazamox + (France, 2015, p. 15). For setting values reported as zero, an LOQ of 0.1 + was assumed. Metabolite residues reported for day zero were added to the + parent compound residues. + + Datasets 3 and 4 are from the Renewal Assessment Report (RAR) for isofetamid + (Belgium, 2014, p. 8) and show the data for two different radiolabels. For + dataset 4, the value given for the metabolite in the day zero sampling + in replicate B was added to the parent compound, following the respective + FOCUS recommendation. + + Dataset 5 is from the Renewal Assessment Report (RAR) for ethofumesate + (Austria, 2015, p. 16). + + Datasets 6 to 10 are from the Renewal Assessment Report (RAR) for glyphosate + (Germany, 2013a, pages 8, 28, 50, 51). For the initial sampling, + the residues given for the metabolite were added to the parent + value, following the recommendation of the FOCUS kinetics workgroup. + + Dataset 11 is from the Renewal Assessment Report (RAR) for 2,4-D + (Germany, 2013b, p. 644). Values reported as zero were set to NA, with + the exception of the day three sampling of metabolite A2, which was set + to one half of the LOD reported to be 1\% AR. + + Dataset 12 is from the Renewal Assessment Report (RAR) for thifensulfuron-methyl + (United Kingdom, 2014, p. 81). + } \usage{experimental_data_for_UBA_2019} \format{ @@ -22,8 +53,32 @@ } } \source{ + + Austria (2015). Ethofumesate Renewal Assessment Report Volume 3 Annex B.8 (AS) + + Belgium (2014). Isofetamid (IKF-5411) Draft Assessment Report Volume 3 Annex B.8 (AS) + + France (2015). Imazamox Draft Renewal Assessment Report Volume 3 Annex B.8 (AS) + + FOCUS (2014) \dQuote{Generic guidance for Estimating Persistence and + Degradation Kinetics from Environmental Fate Studies on Pesticides in EU + Registration} Report of the FOCUS Work Group on Degradation Kinetics, + Version 1.1, 18 December 2014 + \url{http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics} + + Germany (2013a). Renewal Assessment Report Glyphosate Volume 3 Annex B.8: Environmental Fate + and Behaviour + + Germany (2013b). Renewal Assessment Report 2,4-D Volume 3 Annex B.8: Fate and behaviour in the + environment + Ranke (2019) Documentation of results obtained for the error model expertise written for the German Umweltbundesamt. + + United Kingdom (2014). Thifensulfuron-methyl - Annex B.8 (Volume 3) to the Report and Proposed + Decision of the United Kingdom made to the European Commission under Regulation (EC) No. + 1141/2010 for renewal of an active substance + } \examples{\dontrun{ -- cgit v1.2.1 From 2bc4adb7080e5893ab423768fe2e24777b292f19 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 19:46:55 +0200 Subject: For the d_3 algorithm, report which was better, if any --- R/mkinfit.R | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 33e13d8e..13c7aa90 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -505,8 +505,19 @@ mkinfit <- function(mkinmod, observed, upper = upper[names(parms.start)], control = control, ...) fit$logLik <- - nlogLik.current - if (error_model_algorithm == "d_3" && fit_direct$logLik > fit$logLik) { - fit <- fit_direct + if (error_model_algorithm == "d_3") { + if (abs((fit_direct$logLik - fit$logLik))/mean(c(fit_direct$logLik, fit$logLik)) < 0.001) { + if (!quiet) { + message("Direct fitting and three-step fitting yield approximately the same likelihood") + } + } else { + if (fit_direct$logLik < fit$logLik) { + if (!quiet) message("Three-step fitting yielded a higher likelihood than direct fitting") + } else { + if (!quiet) message("Direct fitting yielded a higher likelihood than three-step fitting") + fit <- fit_direct + } + } } } if (err_mod != "const" & error_model_algorithm == "IRLS") { -- cgit v1.2.1 From 307a317666b8a1cdfe2293371ad8671403680a36 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 21:10:58 +0200 Subject: Fix a bug introduced in the last commit --- R/mkinfit.R | 6 ++++-- tests/testthat/test_error_models.R | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 13c7aa90..60697cb1 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -505,13 +505,15 @@ mkinfit <- function(mkinmod, observed, upper = upper[names(parms.start)], control = control, ...) fit$logLik <- - nlogLik.current + if (error_model_algorithm == "d_3") { - if (abs((fit_direct$logLik - fit$logLik))/mean(c(fit_direct$logLik, fit$logLik)) < 0.001) { + rel_diff <- abs((fit_direct$logLik - fit$logLik))/-mean(c(fit_direct$logLik, fit$logLik)) + if (rel_diff < 0.0001) { if (!quiet) { message("Direct fitting and three-step fitting yield approximately the same likelihood") } } else { - if (fit_direct$logLik < fit$logLik) { + if (fit$logLik > fit_direct$logLik) { if (!quiet) message("Three-step fitting yielded a higher likelihood than direct fitting") } else { if (!quiet) message("Direct fitting yielded a higher likelihood than three-step fitting") diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index 6bb93d48..404f02ab 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -181,7 +181,7 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { test_that("The different error model fitting methods work for parent fits", { skip_on_cran() - f_9_OLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + f_9_OLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, quiet = TRUE) expect_equivalent(round(AIC(f_9_OLS), 2), 137.43) -- cgit v1.2.1 From b6027bbd157734e1c7f8c3ba6373451f5c85fc38 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 5 Jun 2019 15:16:59 +0200 Subject: Add error model algorithm to output --- R/mkinfit.R | 27 ++++++--- docs/articles/FOCUS_D.html | 13 +++-- docs/articles/FOCUS_L.html | 77 ++++++++++++++------------ docs/articles/mkin.html | 2 +- docs/articles/twa.html | 2 +- docs/articles/web_only/FOCUS_Z.html | 2 +- docs/articles/web_only/NAFTA_examples.html | 2 +- docs/articles/web_only/benchmarks.html | 24 ++++---- docs/articles/web_only/compiled_models.html | 12 ++-- docs/reference/Extract.mmkin.html | 8 +-- docs/reference/experimental_data_for_UBA.html | 66 +++++++++++++++++++++- docs/reference/mkinfit.html | 50 +++++++++-------- docs/reference/mkinmod.html | 2 +- docs/reference/mkinpredict.html | 6 +- docs/reference/mmkin.html | 4 +- docs/reference/summary.mkinfit.html | 11 ++-- vignettes/mkin_benchmarks.rda | Bin 874 -> 876 bytes 17 files changed, 198 insertions(+), 110 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 60697cb1..2af4e493 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -506,18 +506,23 @@ mkinfit <- function(mkinmod, observed, control = control, ...) fit$logLik <- - nlogLik.current + d_3_messages = c( + same = "Direct fitting and three-step fitting yield approximately the same likelihood", + threestep = "Three-step fitting yielded a higher likelihood than direct fitting", + direct = "Direct fitting yielded a higher likelihood than three-step fitting") if (error_model_algorithm == "d_3") { rel_diff <- abs((fit_direct$logLik - fit$logLik))/-mean(c(fit_direct$logLik, fit$logLik)) if (rel_diff < 0.0001) { - if (!quiet) { - message("Direct fitting and three-step fitting yield approximately the same likelihood") - } + if (!quiet) message(d_3_messages["same"]) + fit$d_3_message <- d_3_messages["same"] } else { if (fit$logLik > fit_direct$logLik) { - if (!quiet) message("Three-step fitting yielded a higher likelihood than direct fitting") + if (!quiet) message(d_3_messages["threestep"]) + fit$d_3_message <- d_3_messages["threestep"] } else { - if (!quiet) message("Direct fitting yielded a higher likelihood than three-step fitting") + if (!quiet) message(d_3_messages["direct"]) fit <- fit_direct + fit$d_3_message <- d_3_messages["direct"] } } } @@ -553,6 +558,7 @@ mkinfit <- function(mkinmod, observed, } } } + fit$error_model_algorithm <- error_model_algorithm # We include the error model in the parameter uncertainty analysis, also # for constant variance, to get a confidence interval for it @@ -725,6 +731,7 @@ summary.mkinfit <- function(object, data = TRUE, distimes = TRUE, alpha = 0.05, solution_type = object$solution_type, warning = object$warning, use_of_ff = object$mkinmod$use_of_ff, + error_model_algorithm = object$error_model_algorithm, df = c(p, rdf), cov.unscaled = covar, err_mod = object$err_mod, @@ -763,8 +770,9 @@ summary.mkinfit <- function(object, data = TRUE, distimes = TRUE, alpha = 0.05, ep <- endpoints(object) if (length(ep$ff) != 0) ans$ff <- ep$ff - if(distimes) ans$distimes <- ep$distimes - if(length(ep$SFORB) != 0) ans$SFORB <- ep$SFORB + if (distimes) ans$distimes <- ep$distimes + if (length(ep$SFORB) != 0) ans$SFORB <- ep$SFORB + if (!is.null(object$d_3_message)) ans$d_3_message <- object$d_3_message class(ans) <- c("summary.mkinfit", "summary.modFit") return(ans) } @@ -794,12 +802,15 @@ print.summary.mkinfit <- function(x, digits = max(3, getOption("digits") - 3), . cat("\nFitted using", x$calls, "model solutions performed in", x$time[["elapsed"]], "s\n") - cat("\nError model:\n") + cat("\nError model: ") cat(switch(x$err_mod, const = "Constant variance", obs = "Variance unique to each observed variable", tc = "Two-component variance function"), "\n") + cat("\nError model algorithm:", x$error_model_algorithm, "\n") + if (!is.null(x$d_3_message)) cat(x$d_3_message, "\n") + cat("\nStarting values for parameters to be optimised:\n") print(x$start) diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html index 698ccebc..be1f40f5 100644 --- a/docs/articles/FOCUS_D.html +++ b/docs/articles/FOCUS_D.html @@ -88,7 +88,7 @@

Example evaluation of FOCUS Example Dataset D

Johannes Ranke

-

2019-06-04

+

2019-06-05

@@ -168,8 +168,8 @@
summary(fit)
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:18 2019 
-## Date of summary: Tue Jun  4 15:03:18 2019 
+## Date of fit:     Wed Jun  5 15:10:49 2019 
+## Date of summary: Wed Jun  5 15:10:50 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -177,10 +177,11 @@
 ## 
 ## Model predictions using solution type deSolve 
 ## 
-## Fitted using 389 model solutions performed in 0.978 s
+## Fitted using 389 model solutions performed in 0.984 s
 ## 
-## Error model:
-## Constant variance 
+## Error model: Constant variance 
+## 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##                    value   type
diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html
index 75b2cf10..4388edd2 100644
--- a/docs/articles/FOCUS_L.html
+++ b/docs/articles/FOCUS_L.html
@@ -88,7 +88,7 @@
       

Example evaluation of FOCUS Laboratory Data L1 to L3

Johannes Ranke

-

2019-06-04

+

2019-06-05

@@ -114,18 +114,19 @@ summary(m.L1.SFO)
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:20 2019 
-## Date of summary: Tue Jun  4 15:03:20 2019 
+## Date of fit:     Wed Jun  5 15:10:52 2019 
+## Date of summary: Wed Jun  5 15:10:52 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted using 133 model solutions performed in 0.28 s
+## Fitted using 133 model solutions performed in 0.277 s
 ## 
-## Error model:
-## Constant variance 
+## Error model: Constant variance 
+## 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##                   value   type
@@ -215,8 +216,8 @@
 ## finite result is doubtful
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:22 2019 
-## Date of summary: Tue Jun  4 15:03:22 2019 
+## Date of fit:     Wed Jun  5 15:10:54 2019 
+## Date of summary: Wed Jun  5 15:10:54 2019 
 ## 
 ## 
 ## Warning: Optimisation did not converge:
@@ -228,10 +229,11 @@
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted using 899 model solutions performed in 1.868 s
+## Fitted using 899 model solutions performed in 1.877 s
+## 
+## Error model: Constant variance 
 ## 
-## Error model:
-## Constant variance 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##              value   type
@@ -319,18 +321,19 @@
 
summary(m.L2.FOMC, data = FALSE)
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:23 2019 
-## Date of summary: Tue Jun  4 15:03:23 2019 
+## Date of fit:     Wed Jun  5 15:10:55 2019 
+## Date of summary: Wed Jun  5 15:10:55 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.484 s
+## Fitted using 239 model solutions performed in 0.492 s
 ## 
-## Error model:
-## Constant variance 
+## Error model: Constant variance 
+## 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##              value   type
@@ -394,8 +397,8 @@
 
summary(m.L2.DFOP, data = FALSE)
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:25 2019 
-## Date of summary: Tue Jun  4 15:03:25 2019 
+## Date of fit:     Wed Jun  5 15:10:56 2019 
+## Date of summary: Wed Jun  5 15:10:56 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -404,10 +407,11 @@
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted using 572 model solutions performed in 1.193 s
+## Fitted using 572 model solutions performed in 1.183 s
+## 
+## Error model: Constant variance 
 ## 
-## Error model:
-## Constant variance 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##              value   type
@@ -493,8 +497,8 @@
 
summary(mm.L3[["DFOP", 1]])
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:26 2019 
-## Date of summary: Tue Jun  4 15:03:27 2019 
+## Date of fit:     Wed Jun  5 15:10:58 2019 
+## Date of summary: Wed Jun  5 15:10:58 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -503,10 +507,11 @@
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted using 373 model solutions performed in 0.767 s
+## Fitted using 373 model solutions performed in 0.773 s
 ## 
-## Error model:
-## Constant variance 
+## Error model: Constant variance 
+## 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##              value   type
@@ -598,8 +603,8 @@
 
summary(mm.L4[["SFO", 1]], data = FALSE)
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:27 2019 
-## Date of summary: Tue Jun  4 15:03:28 2019 
+## Date of fit:     Wed Jun  5 15:10:59 2019 
+## Date of summary: Wed Jun  5 15:10:59 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent
@@ -608,8 +613,9 @@
 ## 
 ## Fitted using 142 model solutions performed in 0.288 s
 ## 
-## Error model:
-## Constant variance 
+## Error model: Constant variance 
+## 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##                  value   type
@@ -662,18 +668,19 @@
 
summary(mm.L4[["FOMC", 1]], data = FALSE)
## mkin version used for fitting:    0.9.49.5 
 ## R version used for fitting:       3.6.0 
-## Date of fit:     Tue Jun  4 15:03:28 2019 
-## Date of summary: Tue Jun  4 15:03:28 2019 
+## Date of fit:     Wed Jun  5 15:10:59 2019 
+## Date of summary: Wed Jun  5 15:10:59 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.449 s
+## Fitted using 224 model solutions performed in 0.453 s
+## 
+## Error model: Constant variance 
 ## 
-## Error model:
-## Constant variance 
+## Error model algorithm: d_3 
 ## 
 ## Starting values for parameters to be optimised:
 ##              value   type
diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html
index 09b1b8ea..5977d642 100644
--- a/docs/articles/mkin.html
+++ b/docs/articles/mkin.html
@@ -88,7 +88,7 @@
       

Introduction to mkin

Johannes Ranke

-

2019-06-04

+

2019-06-05

diff --git a/docs/articles/twa.html b/docs/articles/twa.html index ede27942..f98026e7 100644 --- a/docs/articles/twa.html +++ b/docs/articles/twa.html @@ -88,7 +88,7 @@

Calculation of time weighted average concentrations with mkin

Johannes Ranke

-

2019-06-04

+

2019-06-05

diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html index 555400df..542deb14 100644 --- a/docs/articles/web_only/FOCUS_Z.html +++ b/docs/articles/web_only/FOCUS_Z.html @@ -88,7 +88,7 @@

Example evaluation of FOCUS dataset Z

Johannes Ranke

-

2019-06-04

+

2019-06-05

diff --git a/docs/articles/web_only/NAFTA_examples.html b/docs/articles/web_only/NAFTA_examples.html index 7f3cc76b..4cd16437 100644 --- a/docs/articles/web_only/NAFTA_examples.html +++ b/docs/articles/web_only/NAFTA_examples.html @@ -88,7 +88,7 @@

Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance

Johannes Ranke

-

2019-06-04

+

2019-06-05

diff --git a/docs/articles/web_only/benchmarks.html b/docs/articles/web_only/benchmarks.html index 43f8d238..507bdb61 100644 --- a/docs/articles/web_only/benchmarks.html +++ b/docs/articles/web_only/benchmarks.html @@ -88,7 +88,7 @@

Benchmark timings for mkin on various systems

Johannes Ranke

-

2019-06-04

+

2019-06-05

@@ -202,77 +202,77 @@ ## 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.936 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 5.805 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 5.828 ## 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 20.545 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 35.748 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 35.869 ## 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.446 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.403 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.412 ## 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 15.335 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 30.613 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 30.497 ## 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 6.002 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.309 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.329 ## 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.635 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 2.546 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 2.548 ## 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.259 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.214 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.192 ## 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.737 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.871 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.827 ## 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 7.763 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 15.738 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 15.653 ## 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 3.427 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.763 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.762 ## 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 5.626 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.527
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.512
save(mkin_benchmarks, file = "~/git/mkin/vignettes/mkin_benchmarks.rda")
diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html index f3062c66..5f0301fc 100644 --- a/docs/articles/web_only/compiled_models.html +++ b/docs/articles/web_only/compiled_models.html @@ -88,7 +88,7 @@

Performance benefit by using compiled model definitions in mkin

Johannes Ranke

-

2019-06-04

+

2019-06-05

@@ -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
##                    test replications elapsed relative user.self sys.self
-## 3     deSolve, compiled            3   3.053    1.000     3.052        0
-## 1 deSolve, not compiled            3  28.457    9.321    28.442        0
-## 2      Eigenvalue based            3   4.296    1.407     4.293        0
+## 3     deSolve, compiled            3   3.041    1.000     3.039        0
+## 1 deSolve, not compiled            3  28.429    9.349    28.415        0
+## 2      Eigenvalue based            3   4.291    1.411     4.288        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
##                    test replications elapsed relative user.self sys.self
-## 2     deSolve, compiled            3   4.828    1.000     4.825        0
-## 1 deSolve, not compiled            3  53.153   11.009    53.125        0
+## 2     deSolve, compiled            3   4.927    1.000     4.924        0
+## 1 deSolve, not compiled            3  53.138   10.785    53.108        0
 ##   user.child sys.child
 ## 2          0         0
 ## 1          0         0
diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html index 1d1da50e..37c0b361 100644 --- a/docs/reference/Extract.mmkin.html +++ b/docs/reference/Extract.mmkin.html @@ -172,16 +172,16 @@ cores = 1, quiet = TRUE) fits["FOMC", ]
#> dataset #> model B C -#> FOMC List,36 List,36 +#> FOMC List,37 List,37 #> attr(,"class") #> [1] "mmkin"
fits[, "B"]
#> dataset #> model B -#> SFO List,36 -#> FOMC List,36 +#> SFO List,37 +#> FOMC List,37 #> attr(,"class") #> [1] "mmkin"
fits["SFO", "B"]
#> dataset #> model B -#> SFO List,36 +#> SFO List,37 #> attr(,"class") #> [1] "mmkin"
head( diff --git a/docs/reference/experimental_data_for_UBA.html b/docs/reference/experimental_data_for_UBA.html index 3e8d20ef..bb94fd11 100644 --- a/docs/reference/experimental_data_for_UBA.html +++ b/docs/reference/experimental_data_for_UBA.html @@ -37,7 +37,30 @@ and advance error model specifications. The fact that these data and some results are shown here do not imply a license to use them in the context of pesticide registrations, as the use of the data may be constrained by - data protection regulations." /> + data protection regulations. +Preprocessing of data was performed based on the recommendations of the FOCUS + kinetics workgroup (FOCUS, 2014) as described below. +Datasets 1 and 2 are from the Renewal Assessment Report (RAR) for imazamox + (France, 2015, p. 15). For setting values reported as zero, an LOQ of 0.1 + was assumed. Metabolite residues reported for day zero were added to the + parent compound residues. +Datasets 3 and 4 are from the Renewal Assessment Report (RAR) for isofetamid + (Belgium, 2014, p. 8) and show the data for two different radiolabels. For + dataset 4, the value given for the metabolite in the day zero sampling + in replicate B was added to the parent compound, following the respective + FOCUS recommendation. +Dataset 5 is from the Renewal Assessment Report (RAR) for ethofumesate + (Austria, 2015, p. 16). +Datasets 6 to 10 are from the Renewal Assessment Report (RAR) for glyphosate + (Germany, 2013a, pages 8, 28, 50, 51). For the initial sampling, + the residues given for the metabolite were added to the parent + value, following the recommendation of the FOCUS kinetics workgroup. +Dataset 11 is from the Renewal Assessment Report (RAR) for 2,4-D + (Germany, 2013b, p. 644). Values reported as zero were set to NA, with + the exception of the day three sampling of metabolite A2, which was set + to one half of the LOD reported to be 1% AR. +Dataset 12 is from the Renewal Assessment Report (RAR) for thifensulfuron-methyl + (United Kingdom, 2014, p. 81)." /> @@ -139,6 +162,29 @@ results are shown here do not imply a license to use them in the context of pesticide registrations, as the use of the data may be constrained by data protection regulations.

+

Preprocessing of data was performed based on the recommendations of the FOCUS + kinetics workgroup (FOCUS, 2014) as described below.

+

Datasets 1 and 2 are from the Renewal Assessment Report (RAR) for imazamox + (France, 2015, p. 15). For setting values reported as zero, an LOQ of 0.1 + was assumed. Metabolite residues reported for day zero were added to the + parent compound residues.

+

Datasets 3 and 4 are from the Renewal Assessment Report (RAR) for isofetamid + (Belgium, 2014, p. 8) and show the data for two different radiolabels. For + dataset 4, the value given for the metabolite in the day zero sampling + in replicate B was added to the parent compound, following the respective + FOCUS recommendation.

+

Dataset 5 is from the Renewal Assessment Report (RAR) for ethofumesate + (Austria, 2015, p. 16).

+

Datasets 6 to 10 are from the Renewal Assessment Report (RAR) for glyphosate + (Germany, 2013a, pages 8, 28, 50, 51). For the initial sampling, + the residues given for the metabolite were added to the parent + value, following the recommendation of the FOCUS kinetics workgroup.

+

Dataset 11 is from the Renewal Assessment Report (RAR) for 2,4-D + (Germany, 2013b, p. 644). Values reported as zero were set to NA, with + the exception of the day three sampling of metabolite A2, which was set + to one half of the LOD reported to be 1% AR.

+

Dataset 12 is from the Renewal Assessment Report (RAR) for thifensulfuron-methyl + (United Kingdom, 2014, p. 81).

@@ -154,8 +200,24 @@

Source

-

Ranke (2019) Documentation of results obtained for the error model expertise + +

Austria (2015). Ethofumesate Renewal Assessment Report Volume 3 Annex B.8 (AS)

+

Belgium (2014). Isofetamid (IKF-5411) Draft Assessment Report Volume 3 Annex B.8 (AS)

+

France (2015). Imazamox Draft Renewal Assessment Report Volume 3 Annex B.8 (AS)

+

FOCUS (2014) “Generic guidance for Estimating Persistence and + Degradation Kinetics from Environmental Fate Studies on Pesticides in EU + Registration” Report of the FOCUS Work Group on Degradation Kinetics, + Version 1.1, 18 December 2014 + http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics

+

Germany (2013a). Renewal Assessment Report Glyphosate Volume 3 Annex B.8: Environmental Fate + and Behaviour

+

Germany (2013b). Renewal Assessment Report 2,4-D Volume 3 Annex B.8: Fate and behaviour in the + environment

+

Ranke (2019) Documentation of results obtained for the error model expertise written for the German Umweltbundesamt.

+

United Kingdom (2014). Thifensulfuron-methyl - Annex B.8 (Volume 3) to the Report and Proposed + Decision of the United Kingdom made to the European Commission under Regulation (EC) No. + 1141/2010 for renewal of an active substance

Examples

diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html index 8cabcb21..700b6805 100644 --- a/docs/reference/mkinfit.html +++ b/docs/reference/mkinfit.html @@ -399,18 +399,19 @@ Per default, parameters in the kinetic models are internally transformed in fit <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE) summary(fit)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:15 2019 -#> Date of summary: Tue Jun 4 15:01:15 2019 +#> Date of fit: Wed Jun 5 15:08:20 2019 +#> Date of summary: Wed Jun 5 15:08:20 2019 #> #> Equations: #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 222 model solutions performed in 0.461 s +#> Fitted using 222 model solutions performed in 0.469 s #> -#> Error model: -#> Constant variance +#> Error model: Constant variance +#> +#> Error model algorithm: d_3 #> #> Starting values for parameters to be optimised: #> value type @@ -480,7 +481,7 @@ Per default, parameters in the kinetic models are internally transformed in m1 = mkinsub("SFO"))
#> Successfully compiled differential equation model from auto-generated C code.
# Fit the model to the FOCUS example dataset D using defaults print(system.time(fit <- mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet = TRUE)))
#> Warning: Observations with value of zero were removed from the data
#> User System verstrichen -#> 1.521 0.000 1.526
coef(fit)
#> NULL
#> $ff +#> 1.579 0.000 1.581
coef(fit)
#> NULL
#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -552,7 +553,7 @@ Per default, parameters in the kinetic models are internally transformed in #> Sum of squared residuals at call 126: 371.2134 #> Sum of squared residuals at call 135: 371.2134 #> Negative log-likelihood at call 145: 97.22429
#> Optimisation successfully terminated.
#> User System verstrichen -#> 1.093 0.000 1.093
coef(fit.deSolve)
#> NULL
endpoints(fit.deSolve)
#> $ff +#> 1.159 0.000 1.160
coef(fit.deSolve)
#> NULL
endpoints(fit.deSolve)
#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -584,8 +585,8 @@ Per default, parameters in the kinetic models are internally transformed in SFO_SFO.ff <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
f.noweight <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.noweight)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:31 2019 -#> Date of summary: Tue Jun 4 15:01:31 2019 +#> Date of fit: Wed Jun 5 15:08:36 2019 +#> Date of summary: Wed Jun 5 15:08:36 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -593,10 +594,11 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 421 model solutions performed in 1.096 s +#> Fitted using 421 model solutions performed in 1.181 s +#> +#> Error model: Constant variance #> -#> Error model: -#> Constant variance +#> Error model algorithm: d_3 #> #> Starting values for parameters to be optimised: #> value type @@ -702,8 +704,8 @@ Per default, parameters in the kinetic models are internally transformed in #> 120 m1 25.15 28.78984 -3.640e+00 #> 120 m1 33.31 28.78984 4.520e+00
f.obs <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "obs", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.obs)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:34 2019 -#> Date of summary: Tue Jun 4 15:01:34 2019 +#> Date of fit: Wed Jun 5 15:08:39 2019 +#> Date of summary: Wed Jun 5 15:08:39 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -711,10 +713,12 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 979 model solutions performed in 2.603 s +#> Fitted using 979 model solutions performed in 2.672 s #> -#> Error model: -#> Variance unique to each observed variable +#> Error model: Variance unique to each observed variable +#> +#> Error model algorithm: d_3 +#> Direct fitting and three-step fitting yield approximately the same likelihood #> #> Starting values for parameters to be optimised: #> value type @@ -832,8 +836,8 @@ Per default, parameters in the kinetic models are internally transformed in #> 120 m1 25.15 28.80429 -3.654e+00 #> 120 m1 33.31 28.80429 4.506e+00
f.tc <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "tc", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
summary(f.tc)
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:43 2019 -#> Date of summary: Tue Jun 4 15:01:43 2019 +#> Date of fit: Wed Jun 5 15:08:50 2019 +#> Date of summary: Wed Jun 5 15:08:50 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -841,10 +845,12 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 2289 model solutions performed in 9.499 s +#> Fitted using 2289 model solutions performed in 10.959 s +#> +#> Error model: Two-component variance function #> -#> Error model: -#> Two-component variance function +#> Error model algorithm: d_3 +#> Direct fitting and three-step fitting yield approximately the same likelihood #> #> Starting values for parameters to be optimised: #> value type diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html index 2c5f056e..ddab656c 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 SFO_SFO <- mkinmod( parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"), verbose = TRUE)
#> Compilation argument: -#> /usr/lib/R/bin/R CMD SHLIB filebbe6b539c4f.c 2> filebbe6b539c4f.c.err.txt +#> /usr/lib/R/bin/R CMD SHLIB file50a55c3108b2.c 2> file50a55c3108b2.c.err.txt #> Program source: #> 1: #include <R.h> #> 2: diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html index f339b26a..7e71ec27 100644 --- a/docs/reference/mkinpredict.html +++ b/docs/reference/mkinpredict.html @@ -328,17 +328,17 @@ c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "eigen")[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.003 0.000 0.003
system.time( +#> 0.004 0.000 0.004
system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve")[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.002 0.000 0.002
system.time( +#> 0.003 0.000 0.002
system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve", use_compiled = FALSE)[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.021 0.000 0.022
+#> 0.022 0.000 0.022
# Predict from a fitted model f <- mkinfit(SFO_SFO, FOCUS_2006_C)
#> Ordinary least squares optimisation
#> Sum of squared residuals at call 1: 552.5739 #> Sum of squared residuals at call 3: 552.5739 diff --git a/docs/reference/mmkin.html b/docs/reference/mmkin.html index a830646f..61a029fc 100644 --- a/docs/reference/mmkin.html +++ b/docs/reference/mmkin.html @@ -194,8 +194,8 @@ time_1 <- system.time(fits.4 <- mmkin(models, datasets, cores = 1, quiet = TRUE)) time_default
#> User System verstrichen -#> 0.046 0.032 5.094
time_1
#> User System verstrichen -#> 19.798 0.004 19.814
+#> 0.038 0.050 6.779
time_1
#> User System verstrichen +#> 27.209 0.004 27.278
endpoints(fits.0[["SFO_lin", 2]])
#> $ff #> parent_M1 parent_sink M1_M2 M1_sink #> 0.7340481 0.2659519 0.7505684 0.2494316 diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index ffe1edb1..68b36542 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -211,18 +211,19 @@

Examples

summary(mkinfit(mkinmod(parent = mkinsub("SFO")), FOCUS_2006_A, quiet = TRUE))
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:03:02 2019 -#> Date of summary: Tue Jun 4 15:03:02 2019 +#> Date of fit: Wed Jun 5 15:10:34 2019 +#> Date of summary: Wed Jun 5 15:10:34 2019 #> #> Equations: #> d_parent/dt = - k_parent_sink * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 131 model solutions performed in 0.266 s +#> Fitted using 131 model solutions performed in 0.268 s #> -#> Error model: -#> Constant variance +#> Error model: Constant variance +#> +#> Error model algorithm: d_3 #> #> Starting values for parameters to be optimised: #> value type diff --git a/vignettes/mkin_benchmarks.rda b/vignettes/mkin_benchmarks.rda index 3e160a06..17cf86ce 100644 Binary files a/vignettes/mkin_benchmarks.rda and b/vignettes/mkin_benchmarks.rda differ -- cgit v1.2.1 From 4b323789265213bd65165873e7efe5e45a579275 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 5 Jun 2019 15:45:31 +0200 Subject: Adapt tests to new algorithms and output One of the tests exceeded the number of iterations when using the d_3 error model algorithm, so only use "direct" in this case. --- test.log | 386 +------------------------------- tests/testthat/FOCUS_2006_D.csf | 2 +- tests/testthat/summary_DFOP_FOCUS_C.txt | 5 +- tests/testthat/test_error_models.R | 2 +- 4 files changed, 14 insertions(+), 381 deletions(-) diff --git a/test.log b/test.log index 30196966..58aa129f 100644 --- a/test.log +++ b/test.log @@ -2,394 +2,26 @@ 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 ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 11 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 30: 65.71278 - ⠹ | 13 | Error model fittingNegative log-likelihood at call 1: 4104.4 -Negative log-likelihood at call 2: 4104.4 -Negative log-likelihood at call 4: 4104.399 -Negative log-likelihood at call 6: 85.79717 -Negative log-likelihood at call 11: 72.50327 -Negative log-likelihood at call 12: 72.50327 -Negative log-likelihood at call 17: 71.79809 -Negative log-likelihood at call 22: 71.10373 -Negative log-likelihood at call 26: 71.10373 -Negative log-likelihood at call 27: 70.84093 -Negative log-likelihood at call 29: 70.84093 -Negative log-likelihood at call 32: 70.64538 -Negative log-likelihood at call 37: 70.64538 -Negative log-likelihood at call 38: 70.33707 -Negative log-likelihood at call 40: 70.33707 -Negative log-likelihood at call 42: 70.33707 -Negative log-likelihood at call 43: 69.89484 -Negative log-likelihood at call 48: 69.05915 -Negative log-likelihood at call 53: 67.99547 -Negative log-likelihood at call 56: 67.99547 -Negative log-likelihood at call 58: 66.59808 -Negative log-likelihood at call 63: 66.59808 -Negative log-likelihood at call 64: 66.2343 -Negative log-likelihood at call 65: 66.23429 -Negative log-likelihood at call 68: 66.23428 -Negative log-likelihood at call 69: 65.67228 -Negative log-likelihood at call 70: 65.67228 -Negative log-likelihood at call 73: 65.67227 -Negative log-likelihood at call 74: 65.33106 -Negative log-likelihood at call 79: 65.31005 -Negative log-likelihood at call 80: 65.31005 -Negative log-likelihood at call 81: 65.31005 -Negative log-likelihood at call 83: 65.31004 -Negative log-likelihood at call 84: 65.17731 -Negative log-likelihood at call 85: 65.17731 -Negative log-likelihood at call 89: 65.16821 -Negative log-likelihood at call 94: 65.13357 -Negative log-likelihood at call 96: 65.13357 -Negative log-likelihood at call 98: 65.13357 -Negative log-likelihood at call 99: 65.08107 -Negative log-likelihood at call 104: 64.86685 -Negative log-likelihood at call 105: 64.86685 -Negative log-likelihood at call 109: 64.50332 -Negative log-likelihood at call 112: 64.50332 -Negative log-likelihood at call 114: 64.10889 -Negative log-likelihood at call 119: 63.57448 -Negative log-likelihood at call 120: 63.57448 -Negative log-likelihood at call 123: 63.57448 -Negative log-likelihood at call 124: 63.5456 -Negative log-likelihood at call 127: 63.5456 -Negative log-likelihood at call 129: 63.48903 -Negative log-likelihood at call 131: 63.48903 -Negative log-likelihood at call 135: 63.47608 -Negative log-likelihood at call 140: 63.47181 -Negative log-likelihood at call 141: 63.47181 -Negative log-likelihood at call 145: 63.4714 -Negative log-likelihood at call 146: 63.4714 -Negative log-likelihood at call 151: 63.4714 -Negative log-likelihood at call 152: 63.4714 -Negative log-likelihood at call 160: 63.4714 -Negative log-likelihood at call 169: 63.4714 - ⠸ | 14 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.014 -Negative log-likelihood at call 34: 7208.013 -Negative log-likelihood at call 36: 132.2815 -Negative log-likelihood at call 41: 75.57291 -Negative log-likelihood at call 42: 75.57291 -Negative log-likelihood at call 45: 75.57291 -Negative log-likelihood at call 47: 73.57761 -Negative log-likelihood at call 52: 70.3766 -Negative log-likelihood at call 57: 68.75449 -Negative log-likelihood at call 62: 68.50149 -Negative log-likelihood at call 64: 68.50149 -Negative log-likelihood at call 66: 68.50146 -Negative log-likelihood at call 67: 68.2035 -Negative log-likelihood at call 71: 68.2035 -Negative log-likelihood at call 72: 68.13162 -Negative log-likelihood at call 77: 67.94078 -Negative log-likelihood at call 78: 67.60889 -Negative log-likelihood at call 80: 67.60889 -Negative log-likelihood at call 83: 66.72645 -Negative log-likelihood at call 88: 65.66209 -Negative log-likelihood at call 93: 64.79703 -Negative log-likelihood at call 98: 64.6745 -Negative log-likelihood at call 101: 64.6745 -Negative log-likelihood at call 102: 64.6745 -Negative log-likelihood at call 103: 64.60902 -Negative log-likelihood at call 108: 64.56616 -Negative log-likelihood at call 113: 64.55458 -Negative log-likelihood at call 117: 64.55458 -Negative log-likelihood at call 119: 64.50796 -Negative log-likelihood at call 121: 64.50796 -Negative log-likelihood at call 124: 64.41361 -Negative log-likelihood at call 129: 64.2052 -Negative log-likelihood at call 134: 63.92264 -Negative log-likelihood at call 139: 63.66033 -Negative log-likelihood at call 140: 63.66033 -Negative log-likelihood at call 142: 63.66033 -Negative log-likelihood at call 144: 63.55606 -Negative log-likelihood at call 146: 63.55606 -Negative log-likelihood at call 149: 63.48537 -Negative log-likelihood at call 150: 63.48537 -Negative log-likelihood at call 154: 63.47183 -Negative log-likelihood at call 156: 63.47183 -Negative log-likelihood at call 157: 63.47183 -Negative log-likelihood at call 159: 63.47141 -Negative log-likelihood at call 160: 63.47141 -Negative log-likelihood at call 162: 63.47141 -Negative log-likelihood at call 164: 63.4714 -Negative log-likelihood at call 165: 63.4714 -Negative log-likelihood at call 168: 63.4714 -Negative log-likelihood at call 172: 63.4714 -Negative log-likelihood at call 173: 63.4714 -Negative log-likelihood at call 181: 63.4714 -Negative log-likelihood at call 182: 63.4714 -Negative log-likelihood at call 191: 63.4714 - ⠼ | 15 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.013 -Negative log-likelihood at call 34: 164.0572 -Negative log-likelihood at call 37: 139.4622 -Negative log-likelihood at call 40: 138.9749 -Negative log-likelihood at call 43: 134.4266 -Negative log-likelihood at call 46: 108.9584 -Negative log-likelihood at call 49: 98.97929 -Negative log-likelihood at call 52: 91.49458 -Negative log-likelihood at call 55: 87.49741 -Negative log-likelihood at call 57: 87.49741 -Negative log-likelihood at call 58: 85.29177 -Negative log-likelihood at call 61: 84.23711 -Negative log-likelihood at call 64: 83.76617 -Negative log-likelihood at call 67: 83.53472 -Negative log-likelihood at call 70: 83.33848 -Negative log-likelihood at call 73: 83.00488 -Negative log-likelihood at call 76: 82.06707 -Negative log-likelihood at call 77: 82.06707 -Negative log-likelihood at call 79: 75.48058 -Negative log-likelihood at call 82: 69.27829 -Negative log-likelihood at call 85: 66.14308 -Negative log-likelihood at call 86: 66.14306 -Negative log-likelihood at call 90: 65.73421 -Negative log-likelihood at call 91: 65.73421 -Negative log-likelihood at call 94: 65.71278 -Negative log-likelihood at call 98: 65.71278 -Negative log-likelihood at call 99: 65.71278 -Negative log-likelihood at call 127: 65.71278 - ⠴ | 16 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.013 -Negative log-likelihood at call 34: 164.0572 -Negative log-likelihood at call 37: 139.4622 -Negative log-likelihood at call 40: 138.9749 -Negative log-likelihood at call 43: 134.4266 -Negative log-likelihood at call 46: 108.9584 -Negative log-likelihood at call 49: 98.97929 -Negative log-likelihood at call 52: 91.49458 -Negative log-likelihood at call 55: 87.49741 -Negative log-likelihood at call 57: 87.49741 -Negative log-likelihood at call 58: 85.29177 -Negative log-likelihood at call 61: 84.23711 -Negative log-likelihood at call 64: 83.76617 -Negative log-likelihood at call 67: 83.53472 -Negative log-likelihood at call 70: 83.33848 -Negative log-likelihood at call 73: 83.00488 -Negative log-likelihood at call 76: 82.06707 -Negative log-likelihood at call 77: 82.06707 -Negative log-likelihood at call 79: 75.48058 -Negative log-likelihood at call 82: 69.27829 -Negative log-likelihood at call 85: 66.14308 -Negative log-likelihood at call 86: 66.14306 -Negative log-likelihood at call 90: 65.73421 -Negative log-likelihood at call 91: 65.73421 -Negative log-likelihood at call 94: 65.71278 -Negative log-likelihood at call 98: 65.71278 -Negative log-likelihood at call 99: 65.71278 -Negative log-likelihood at call 132: 65.71278 - ⠦ | 17 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.013 -Negative log-likelihood at call 34: 164.0572 -Negative log-likelihood at call 37: 139.4622 -Negative log-likelihood at call 40: 138.9749 -Negative log-likelihood at call 43: 134.4266 -Negative log-likelihood at call 46: 108.9584 -Negative log-likelihood at call 49: 98.97929 -Negative log-likelihood at call 52: 91.49458 -Negative log-likelihood at call 55: 87.49741 -Negative log-likelihood at call 57: 87.49741 -Negative log-likelihood at call 58: 85.29177 -Negative log-likelihood at call 61: 84.23711 -Negative log-likelihood at call 64: 83.76617 -Negative log-likelihood at call 67: 83.53472 -Negative log-likelihood at call 70: 83.33848 -Negative log-likelihood at call 73: 83.00488 -Negative log-likelihood at call 76: 82.06707 -Negative log-likelihood at call 77: 82.06707 -Negative log-likelihood at call 79: 75.48058 -Negative log-likelihood at call 82: 69.27829 -Negative log-likelihood at call 85: 66.14308 -Negative log-likelihood at call 86: 66.14306 -Negative log-likelihood at call 90: 65.73421 -Negative log-likelihood at call 91: 65.73421 -Negative log-likelihood at call 94: 65.71278 -Negative log-likelihood at call 98: 65.71278 -Negative log-likelihood at call 99: 65.71278 -Negative log-likelihood at call 118: 65.71278 -Negative log-likelihood at call 134: 65.71278 - ⠧ | 18 | Error model fittingNegative log-likelihood at call 1: 4104.4 -Negative log-likelihood at call 2: 4104.4 -Negative log-likelihood at call 4: 4104.399 -Negative log-likelihood at call 6: 85.79717 -Negative log-likelihood at call 11: 72.50327 -Negative log-likelihood at call 12: 72.50327 -Negative log-likelihood at call 17: 71.79809 -Negative log-likelihood at call 22: 71.10373 -Negative log-likelihood at call 26: 71.10373 -Negative log-likelihood at call 27: 70.84093 -Negative log-likelihood at call 29: 70.84093 -Negative log-likelihood at call 32: 70.64538 -Negative log-likelihood at call 37: 70.64538 -Negative log-likelihood at call 38: 70.33707 -Negative log-likelihood at call 40: 70.33707 -Negative log-likelihood at call 42: 70.33707 -Negative log-likelihood at call 43: 69.89484 -Negative log-likelihood at call 48: 69.05915 -Negative log-likelihood at call 53: 67.99547 -Negative log-likelihood at call 56: 67.99547 -Negative log-likelihood at call 58: 66.59808 -Negative log-likelihood at call 63: 66.59808 -Negative log-likelihood at call 64: 66.2343 -Negative log-likelihood at call 65: 66.23429 -Negative log-likelihood at call 68: 66.23428 -Negative log-likelihood at call 69: 65.67228 -Negative log-likelihood at call 70: 65.67228 -Negative log-likelihood at call 73: 65.67227 -Negative log-likelihood at call 74: 65.33106 -Negative log-likelihood at call 79: 65.31005 -Negative log-likelihood at call 80: 65.31005 -Negative log-likelihood at call 81: 65.31005 -Negative log-likelihood at call 83: 65.31004 -Negative log-likelihood at call 84: 65.17731 -Negative log-likelihood at call 85: 65.17731 -Negative log-likelihood at call 89: 65.16821 -Negative log-likelihood at call 94: 65.13357 -Negative log-likelihood at call 96: 65.13357 -Negative log-likelihood at call 98: 65.13357 -Negative log-likelihood at call 99: 65.08107 -Negative log-likelihood at call 104: 64.86685 -Negative log-likelihood at call 105: 64.86685 -Negative log-likelihood at call 109: 64.50332 -Negative log-likelihood at call 112: 64.50332 -Negative log-likelihood at call 114: 64.10889 -Negative log-likelihood at call 119: 63.57448 -Negative log-likelihood at call 120: 63.57448 -Negative log-likelihood at call 123: 63.57448 -Negative log-likelihood at call 124: 63.5456 -Negative log-likelihood at call 127: 63.5456 -Negative log-likelihood at call 129: 63.48903 -Negative log-likelihood at call 131: 63.48903 -Negative log-likelihood at call 135: 63.47608 -Negative log-likelihood at call 140: 63.47181 -Negative log-likelihood at call 141: 63.47181 -Negative log-likelihood at call 145: 63.4714 -Negative log-likelihood at call 146: 63.4714 -Negative log-likelihood at call 151: 63.4714 -Negative log-likelihood at call 152: 63.4714 -Negative log-likelihood at call 160: 63.4714 -Negative log-likelihood at call 169: 63.4714 -Sum of squared residuals at call 179: 1590.602 -Sum of squared residuals at call 181: 1590.601 -Sum of squared residuals at call 183: 999.7593 -Sum of squared residuals at call 185: 999.7513 -Sum of squared residuals at call 186: 979.5713 -Sum of squared residuals at call 187: 948.3366 -Sum of squared residuals at call 188: 855.9518 -Sum of squared residuals at call 191: 836.4547 -Sum of squared residuals at call 192: 836.4547 -Sum of squared residuals at call 194: 836.422 -Sum of squared residuals at call 197: 836.422 -Sum of squared residuals at call 201: 836.422 -Sum of squared residuals at call 202: 836.422 -Negative log-likelihood at call 210: 7208.013 -Negative log-likelihood at call 212: 164.0572 -Negative log-likelihood at call 215: 139.4622 -Negative log-likelihood at call 218: 138.9749 -Negative log-likelihood at call 221: 134.4266 -Negative log-likelihood at call 224: 108.9584 -Negative log-likelihood at call 227: 98.97929 -Negative log-likelihood at call 230: 91.49458 -Negative log-likelihood at call 233: 87.49741 -Negative log-likelihood at call 235: 87.49741 -Negative log-likelihood at call 236: 85.29177 -Negative log-likelihood at call 239: 84.23711 -Negative log-likelihood at call 242: 83.76617 -Negative log-likelihood at call 245: 83.53472 -Negative log-likelihood at call 248: 83.33848 -Negative log-likelihood at call 251: 83.00488 -Negative log-likelihood at call 254: 82.06707 -Negative log-likelihood at call 255: 82.06707 -Negative log-likelihood at call 257: 75.48058 -Negative log-likelihood at call 260: 69.27829 -Negative log-likelihood at call 263: 66.14308 -Negative log-likelihood at call 264: 66.14306 -Negative log-likelihood at call 268: 65.73421 -Negative log-likelihood at call 269: 65.73421 -Negative log-likelihood at call 272: 65.71278 -Negative log-likelihood at call 276: 65.71278 -Negative log-likelihood at call 277: 65.71278 -Negative log-likelihood at call 305: 65.71278 - ⠇ | 19 | Error model fitting ⠏ | 20 | Error model fitting ✔ | 20 | Error model fitting [506.4 s] - ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ⠼ | 5 | Calculation of FOCUS chi2 error levels ✔ | 5 | Calculation of FOCUS chi2 error levels [3.6 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 | 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 ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 11 | Error model fitting ⠹ | 13 | Error model fitting ⠸ | 14 | Error model fitting ⠼ | 15 | Error model fitting ⠴ | 16 | Error model fitting ⠦ | 17 | Error model fitting ⠧ | 18 | Error model fitting ⠇ | 19 | Error model fitting ⠏ | 20 | Error model fitting ✔ | 20 | Error model fitting [414.2 s] + ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ⠼ | 5 | Calculation of FOCUS chi2 error levels ✔ | 5 | Calculation of FOCUS chi2 error levels [3.5 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 | 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 ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.7 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.6 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.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.9 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.7 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 | 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.4 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.2 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.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] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 584.3 s +Duration: 491.4 s OK: 125 Failed: 0 diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf index 43215ec4..668b1151 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-06-04 +Date: 2019-06-05 Optimiser: IRLS [Data] diff --git a/tests/testthat/summary_DFOP_FOCUS_C.txt b/tests/testthat/summary_DFOP_FOCUS_C.txt index fb8051c5..5c6f4257 100644 --- a/tests/testthat/summary_DFOP_FOCUS_C.txt +++ b/tests/testthat/summary_DFOP_FOCUS_C.txt @@ -12,8 +12,9 @@ Model predictions using solution type analytical Fitted using test 0 model solutions performed in test time 0 s -Error model: -Constant variance +Error model: Constant variance + +Error model algorithm: d_3 Starting values for parameters to be optimised: value type diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index 404f02ab..fa1f7131 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -153,7 +153,7 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { # For a single fit, we get a relative error of less than 10% in the error # model components f_met_2_tc_e4 <- mkinfit(m_synth_DFOP_lin, d_met_2_15[[1]], quiet = TRUE, - error_model = "tc") + error_model = "tc", error_model_algorithm = "direct") parm_errors_met_2_tc_e4 <- (f_met_2_tc_e4$errparms - c(0.5, 0.07)) / c(0.5, 0.07) expect_true(all(abs(parm_errors_met_2_tc_e4) < 0.1)) -- cgit v1.2.1