From 194659fcaccdd1ee37851725b8c72e99daa3a8cf Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 10 Apr 2019 10:17:35 +0200 Subject: Adapt tests, vignettes and examples - Write the NEWS - Static documentation rebuilt by pkgdown - Adapt mkinerrmin - Fix (hopefully all) remaining problems in mkinfit --- DESCRIPTION | 7 +- NEWS.md | 17 + R/mkinerrmin.R | 2 +- R/mkinfit.R | 152 +- R/nafta.R | 4 +- build.log | 9 + docs/articles/FOCUS_D.html | 94 +- docs/articles/FOCUS_D_files/figure-html/plot-1.png | Bin 98934 -> 98391 bytes .../FOCUS_D_files/figure-html/plot_2-1.png | Bin 14308 -> 14288 bytes docs/articles/FOCUS_L.html | 448 ++-- .../figure-html/unnamed-chunk-12-1.png | Bin 55024 -> 55027 bytes .../figure-html/unnamed-chunk-6-1.png | Bin 23973 -> 23974 bytes docs/articles/index.html | 3 +- docs/articles/mkin.html | 4 +- docs/articles/twa.html | 4 +- docs/articles/web_only/FOCUS_Z.html | 253 +- .../figure-html/FOCUS_2006_Z_fits_1-1.png | Bin 86312 -> 85595 bytes .../figure-html/FOCUS_2006_Z_fits_10-1.png | Bin 129920 -> 128677 bytes .../figure-html/FOCUS_2006_Z_fits_11-1.png | Bin 129452 -> 127712 bytes .../figure-html/FOCUS_2006_Z_fits_11a-1.png | Bin 97933 -> 96892 bytes .../figure-html/FOCUS_2006_Z_fits_11b-1.png | Bin 22321 -> 22308 bytes .../figure-html/FOCUS_2006_Z_fits_2-1.png | Bin 86923 -> 86200 bytes .../figure-html/FOCUS_2006_Z_fits_3-1.png | Bin 86529 -> 85813 bytes .../figure-html/FOCUS_2006_Z_fits_5-1.png | Bin 102872 -> 101996 bytes .../figure-html/FOCUS_2006_Z_fits_6-1.png | Bin 130096 -> 128965 bytes .../figure-html/FOCUS_2006_Z_fits_7-1.png | Bin 130164 -> 128634 bytes .../figure-html/FOCUS_2006_Z_fits_9-1.png | Bin 109280 -> 108421 bytes docs/articles/web_only/NAFTA_examples.html | 537 +++-- .../NAFTA_examples_files/figure-html/p13-1.png | Bin 51514 -> 51514 bytes .../NAFTA_examples_files/figure-html/p14-1.png | Bin 54064 -> 54065 bytes .../NAFTA_examples_files/figure-html/p5a-1.png | Bin 55421 -> 55413 bytes .../NAFTA_examples_files/figure-html/p9a-1.png | Bin 53090 -> 53089 bytes .../NAFTA_examples_files/figure-html/p9b-1.png | Bin 50040 -> 50039 bytes docs/articles/web_only/benchmarks.html | 292 +++ docs/articles/web_only/compiled_models.html | 110 +- docs/authors.html | 2 +- docs/index.html | 2 +- docs/news/index.html | 20 +- docs/pkgdown.yml | 1 + docs/reference/AIC.mmkin.html | 24 +- docs/reference/CAKE_export.html | 2 +- docs/reference/DFOP.solution.html | 2 +- docs/reference/Extract.mmkin.html | 22 +- docs/reference/FOCUS_2006_DFOP_ref_A_to_B.html | 2 +- docs/reference/FOCUS_2006_FOMC_ref_A_to_F.html | 2 +- docs/reference/FOCUS_2006_HS_ref_A_to_F.html | 2 +- docs/reference/FOCUS_2006_SFO_ref_A_to_F.html | 2 +- docs/reference/FOCUS_2006_datasets.html | 2 +- docs/reference/FOMC.solution.html | 2 +- docs/reference/HS.solution.html | 2 +- docs/reference/IORE.solution.html | 26 +- docs/reference/NAFTA_SOP_2015.html | 30 +- docs/reference/NAFTA_SOP_Attachment-1.png | Bin 42277 -> 42277 bytes docs/reference/NAFTA_SOP_Attachment.html | 31 +- docs/reference/SFO.solution.html | 2 +- docs/reference/SFORB.solution.html | 2 +- docs/reference/add_err-1.png | Bin 89876 -> 89854 bytes docs/reference/add_err-2.png | Bin 51188 -> 51200 bytes docs/reference/add_err-3.png | Bin 52612 -> 52620 bytes docs/reference/add_err.html | 10 +- docs/reference/endpoints.html | 2 +- docs/reference/geometric_mean.html | 2 +- docs/reference/ilr.html | 2 +- docs/reference/index.html | 2 +- docs/reference/logLik.mkinfit.html | 51 +- docs/reference/logistic.solution.html | 24 +- docs/reference/max_twa_parent.html | 2 +- docs/reference/mccall81_245T-1.png | Bin 0 -> 58660 bytes docs/reference/mccall81_245T.html | 75 +- docs/reference/mkin_long_to_wide.html | 14 +- docs/reference/mkin_wide_to_long.html | 8 +- docs/reference/mkinds.html | 2 +- docs/reference/mkinerrmin.html | 5 +- docs/reference/mkinfit.html | 1147 +++------- docs/reference/mkinmod.html | 4 +- docs/reference/mkinparplot-1.png | Bin 16495 -> 16555 bytes docs/reference/mkinparplot.html | 6 +- docs/reference/mkinplot.html | 2 +- docs/reference/mkinpredict.html | 76 +- docs/reference/mkinresplot-1.png | Bin 15020 -> 14889 bytes docs/reference/mkinresplot.html | 5 +- docs/reference/mkinsub.html | 2 +- docs/reference/mmkin-3.png | Bin 85755 -> 85751 bytes docs/reference/mmkin-5.png | Bin 57629 -> 57629 bytes docs/reference/mmkin.html | 12 +- docs/reference/nafta.html | 30 +- docs/reference/plot.mkinfit-1.png | Bin 45512 -> 45173 bytes docs/reference/plot.mkinfit-2.png | Bin 53185 -> 52916 bytes docs/reference/plot.mkinfit-3.png | Bin 43963 -> 43743 bytes docs/reference/plot.mkinfit-4.png | Bin 60143 -> 59806 bytes docs/reference/plot.mkinfit.html | 7 +- docs/reference/plot.mmkin-1.png | Bin 34395 -> 34400 bytes docs/reference/plot.mmkin-2.png | Bin 34836 -> 34840 bytes docs/reference/plot.mmkin-3.png | Bin 25453 -> 25445 bytes docs/reference/plot.mmkin.html | 6 +- docs/reference/plot.nafta.html | 2 +- docs/reference/print.mkinds.html | 2 +- docs/reference/print.mkinmod.html | 2 +- docs/reference/print.nafta.html | 2 +- docs/reference/schaefer07_complex_case-1.png | Bin 55656 -> 55662 bytes docs/reference/schaefer07_complex_case.html | 12 +- docs/reference/sigma_twocomp.html | 2 +- docs/reference/summary.mkinfit.html | 64 +- docs/reference/synthetic_data_for_UBA.html | 2 +- docs/reference/test_data_from_UBA_2014-1.png | Bin 53543 -> 53400 bytes docs/reference/test_data_from_UBA_2014-2.png | Bin 69982 -> 69202 bytes docs/reference/test_data_from_UBA_2014.html | 70 +- docs/reference/transform_odeparms.html | 82 +- inst/benchmark_data/mkin_benchmarks.rda | Bin 0 -> 788 bytes man/IORE.solution.Rd | 19 +- man/add_err.Rd | 8 +- man/logLik.mkinfit.Rd | 29 +- man/mccall81_245T.Rd | 6 +- man/mkin_long_to_wide.Rd | 6 +- man/mkin_wide_to_long.Rd | 4 +- man/mkinfit.Rd | 177 +- man/plot.mkinfit.Rd | 4 +- man/plot.mmkin.Rd | 6 +- man/summary.mkinfit.Rd | 12 +- test.log | 39 +- tests/figs/deps.txt | 2 +- .../plot-nafta-analysis.svg | 2 +- .../figs/plotting/mkinparplot-for-focus-c-sfo.svg | 48 +- tests/testthat/DFOP_FOCUS_C_messages.txt | 444 ++-- tests/testthat/FOCUS_2006_D.csf | 2 +- tests/testthat/NAFTA_SOP_Appendix_B.txt | 21 +- tests/testthat/NAFTA_SOP_Appendix_D.txt | 25 +- tests/testthat/summary_DFOP_FOCUS_C.txt | 48 +- tests/testthat/test_FOCUS_D_UBA_expertise.R | 7 +- tests/testthat/test_FOCUS_chi2_error_level.R | 3 +- tests/testthat/test_error_models.R | 17 +- tests/testthat/test_from_max_mean.R | 12 +- tests/testthat/test_mkinfit_errors.R | 24 +- tests/testthat/test_nafta.R | 4 +- tests/testthat/test_plots_summary_twa.R | 4 +- tests/testthat/test_schaefer07_complex_case.R | 9 +- vignettes/web_only/NAFTA_examples.html | 2405 ++++++++++++++++++++ vignettes/web_only/benchmarks.Rmd | 90 + vignettes/web_only/benchmarks.html | 1817 +++++++++++++++ 139 files changed, 6813 insertions(+), 2333 deletions(-) create mode 100644 docs/articles/web_only/benchmarks.html create mode 100644 docs/reference/mccall81_245T-1.png create mode 100644 inst/benchmark_data/mkin_benchmarks.rda create mode 100644 vignettes/web_only/NAFTA_examples.html create mode 100644 vignettes/web_only/benchmarks.Rmd create mode 100644 vignettes/web_only/benchmarks.html diff --git a/DESCRIPTION b/DESCRIPTION index 527d79d1..ba8e8035 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: mkin Type: Package Title: Kinetic Evaluation of Chemical Degradation Data -Version: 0.9.49.1 -Date: 2019-04-04 +Version: 0.9.49.4 +Date: 2019-04-09 Authors@R: c(person("Johannes", "Ranke", role = c("aut", "cre", "cph"), email = "jranke@uni-bremen.de", comment = c(ORCID = "0000-0003-4371-6538")), @@ -19,7 +19,8 @@ Description: Calculation routines based on the FOCUS Kinetics Report (2006, purpose. Imports: stats, graphics, methods, deSolve, R6, inline, parallel, plyr, numDeriv -Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr, vdiffr +Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr, vdiffr, + benchmarkme, tibble License: GPL LazyLoad: yes LazyData: yes diff --git a/NEWS.md b/NEWS.md index af3d184e..e95a8284 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,20 @@ +# mkin 0.9.49.4 (2019-04-09) +- 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 + +- Remove dependency on FME, only use nlminb for optimisation + +- Use the numDeriv package to calculate hessians + +- Add a benchmark vignette to document the impact on performance. For very simple fits, the new code is a bit slower, presumably because of the time it takes to calculate the hessian matrices with and without parameter transformation + +- The code for manual weighting was removed + +- The fitting time reported in the summary now includes the calculation of the hessians + +- Adapt tests + # mkin 0.9.48.1 (2019-03-04) - Add the function 'logLik.mkinfit' which makes it possible to calculate an AIC for mkinfit objects diff --git a/R/mkinerrmin.R b/R/mkinerrmin.R index b361c466..c0c6fad7 100644 --- a/R/mkinerrmin.R +++ b/R/mkinerrmin.R @@ -42,7 +42,7 @@ mkinerrmin <- function(fit, alpha = 0.05) fixed_initials = gsub("_0$", "", rownames(subset(fit$fixed, type = "state"))) errdata <- subset(errdata, !(time == 0 & name %in% fixed_initials)) - n.optim.overall <- length(parms.optim) + n.optim.overall <- length(parms.optim) - length(fit$errparms) errmin.overall <- kinerrmin(errdata, n.optim.overall) errmin <- data.frame(err.min = errmin.overall$err.min, diff --git a/R/mkinfit.R b/R/mkinfit.R index 6c12d027..55b57aa6 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -1,9 +1,6 @@ # Copyright (C) 2010-2019 Johannes Ranke # Portions of this code are copyright (C) 2013 Eurofins Regulatory AG # Contact: jranke@uni-bremen.de -# The summary function is an adapted and extended version of summary.modFit -# from the FME package, v 1.1 by Soetart and Petzoldt, which was in turn -# inspired by summary.nls.lm # This file is part of the R package mkin @@ -33,9 +30,9 @@ mkinfit <- function(mkinmod, observed, control = list(eval.max = 300, iter.max = 200), transform_rates = TRUE, transform_fractions = TRUE, - plot = FALSE, quiet = FALSE, + quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, - error_model = c("const", "obs", "tc", "obs_tc"), + error_model = c("const", "obs", "tc"), trace_parms = FALSE, ...) { @@ -243,23 +240,12 @@ mkinfit <- function(mkinmod, observed, } } - # Get the error model and specify starting values as well as fixed components + # Get the error model err_mod <- match.arg(error_model) - if (err_mod == "const") { - errparms = c(sigma = 1) - } - if (err_mod == "obs") { - errparms <- rep(1, length(obs_vars)) - names(errparms) = paste0("sigma_", obs_vars) - } - if (err_mod == "tc") { - errparms <- c(sigma_low = 0.5, rsd_high = 0.07) - } - if (err_mod == "obs_tc") { - errparms <- rep(1, length(obs_vars)) - names(errparms) = paste0("sigma_", obs_vars) - errparms <- c(errparms, a = 0.1) - } + errparm_names <- switch(err_mod, + "const" = "sigma", + "obs" = paste0("sigma_", obs_vars), + "tc" = c("sigma_low", "rsd_high")) # Define outtimes for model solution. # Include time points at which observed data are available @@ -268,9 +254,9 @@ mkinfit <- function(mkinmod, observed, length.out = n.outtimes)))) # Define log-likelihood function for optimisation, including (back)transformations - nlogLik <- function(P, trans = TRUE) + nlogLik <- function(P, trans = TRUE, OLS = FALSE, update_data = TRUE, ...) { - assign("calls", calls+1, inherits=TRUE) # Increase the model solution counter + assign("calls", calls + 1, inherits = TRUE) # Increase the model solution counter # Trace parameter values if requested if(trace_parms) cat(P, "\n") @@ -284,7 +270,11 @@ mkinfit <- function(mkinmod, observed, names(odeini) <- state.ini.fixed.boxnames } - odeparms.optim <- P[(length(state.ini.optim) + 1):(length(P) - length(errparms))] + if (OLS) { + odeparms.optim <- P[(length(state.ini.optim) + 1):length(P)] + } else { + odeparms.optim <- P[(length(state.ini.optim) + 1):(length(P) - length(errparms))] + } if (trans == TRUE) { odeparms <- c(odeparms.optim, transparms.fixed) @@ -305,8 +295,6 @@ mkinfit <- function(mkinmod, observed, out_long <- mkin_wide_to_long(out, time = "time") - assign("out_predicted", out_long, inherits=TRUE) - if (err_mod == "const") { observed$std <- P["sigma"] } @@ -320,19 +308,22 @@ mkinfit <- function(mkinmod, observed, tmp <- tmp[order(tmp$name, tmp$time), ] observed$std <- sqrt(P["sigma_low"]^2 + tmp$value.y^2 * P["rsd_high"]^2) } - if (err_mod == "obs_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), ] - std_names <- paste0("sigma_", observed$name) - observed$std <- sqrt(P[std_names] * (1 + P["a"] * tmp$value.y^2)) - } data_log_lik <- merge(observed[c("name", "time", "value", "std")], out_long, - by = c("name", "time")) + by = c("name", "time"), suffixes = c(".observed", ".predicted")) + + if (OLS) { + nlogLik <- with(data_log_lik, sum((value.observed - value.predicted)^2)) + } else { + nlogLik <- - with(data_log_lik, + sum(dnorm(x = value.observed, mean = value.predicted, sd = std, log = TRUE))) + } - nlogLik <- - with(data_log_lik, - sum(dnorm(x = value.x, mean = value.y, sd = std, log = TRUE))) + # We need the data at optimised parameters + if (update_data) { + assign("out_predicted", out_long, inherits = TRUE) + assign("data_errmod", data_log_lik, inherits = TRUE) + } if (nlogLik < nlogLik.current) { assign("nlogLik.current", nlogLik, inherits = TRUE) @@ -341,10 +332,10 @@ mkinfit <- function(mkinmod, observed, return(nlogLik) } - n_optim <- length(c(state.ini.optim, transparms.optim, errparms)) + n_optim <- length(c(state.ini.optim, transparms.optim, errparm_names)) names_optim <- c(names(state.ini.optim), names(transparms.optim), - names(errparms)) + errparm_names) # Define lower and upper bounds other than -Inf and Inf for parameters # for which no internal transformation is requested in the call to mkinfit @@ -353,7 +344,7 @@ mkinfit <- function(mkinmod, observed, upper <- rep(Inf, n_optim) names(lower) <- names(upper) <- names_optim - # IORE exponentes are not transformed, but need a lower bound of zero + # IORE exponents are not transformed, but need a lower bound index_N <- grep("^N", names(lower)) lower[index_N] <- 0 @@ -386,24 +377,66 @@ mkinfit <- function(mkinmod, observed, lower["sigma_low"] <- 0 lower["rsd_high"] <- 0 } - if (err_mod == "obs_tc") { - index_sigma <- grep("^sigma_", names(lower)) - lower[index_sigma] <- 0 - lower["a"] <- 0 - } # Counter for likelihood evaluations calls = 0 nlogLik.current <- Inf + out_predicted <- NA + data_errmod <- NA # Show parameter names if tracing is requested if(trace_parms) cat(names_optim, "\n") - # Do the fit and take the time + # Do the fit and take the time until the hessians are calculated fit_time <- system.time({ - fit <- nlminb(c(state.ini.optim, transparms.optim, errparms), - nlogLik, control = control, - lower = lower, upper = upper, ...)}) + # For constant variance, we do not include sigma in the optimisation, as it + # is unnecessary and leads to instability of the fit which are most obvious + # when fitting the IORE model + if (err_mod == "const") { + fit.ols <- nlminb(c(state.ini.optim, transparms.optim), + nlogLik, control = control, + lower = lower, upper = upper, OLS = TRUE, ...) + + # Get the maximum likelihood estimate for sigma at the optimum parameter values + # This is equivalent to including sigma in the optimisation, but more stable + data_errmod$residual <- data_errmod$value.observed - data_errmod$value.predicted + 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 { + if (err_mod == "obs") { + errparms = rep(3, length(obs_vars)) + } + if (err_mod == "tc") { + errparms <- c(sigma_low = 0.5, rsd_high = 0.07) + } + names(errparms) <- errparm_names + + fit <- nlminb(c(state.ini.optim, transparms.optim, errparms), + nlogLik, control = control, + lower = lower, upper = upper, ...) + 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 + if (err_mod == "const") { + fit$par <- c(fit$par, sigma = sigma_mle) + } + fit$hessian <- try(hessian(nlogLik, fit$par, update_data = FALSE), silent = TRUE) + + # Backtransform parameters + bparms.optim = backtransform_odeparms(fit$par, mkinmod, + transform_rates = transform_rates, + transform_fractions = transform_fractions) + bparms.fixed = c(state.ini.fixed, parms.fixed) + bparms.all = c(bparms.optim, parms.fixed) + + fit$hessian_notrans <- try(hessian(nlogLik, c(bparms.optim, fit$par[names(errparms)]), + trans = FALSE, update_data = FALSE), silent = TRUE) + }) if (fit$convergence != 0) { fit$warning = paste0("Optimisation did not converge:\n", fit$message) @@ -411,7 +444,6 @@ mkinfit <- function(mkinmod, observed, } else { if(!quiet) cat("Optimisation successfully terminated.\n") } - fit$logLik <- - nlogLik.current # We need to return some more data for summary and plotting fit$solution_type <- solution_type @@ -429,19 +461,9 @@ mkinfit <- function(mkinmod, observed, fit$obs_vars <- obs_vars fit$predicted <- out_predicted - # Backtransform parameters - bparms.optim = backtransform_odeparms(fit$par, fit$mkinmod, - transform_rates = transform_rates, - transform_fractions = transform_fractions) - bparms.fixed = c(state.ini.fixed, parms.fixed) - bparms.all = c(bparms.optim, parms.fixed) - # Attach the negative log-likelihood function for post-hoc parameter uncertainty analysis fit$nlogLik <- nlogLik - fit$hessian <- hessian(nlogLik, fit$par) - fit$hessian_notrans <- hessian(nlogLik, c(bparms.optim, fit$par[names(errparms)]), trans = FALSE) - # Collect initial parameter values in three dataframes fit$start <- data.frame(value = c(state.ini.optim, parms.optim, errparms)) @@ -458,15 +480,15 @@ mkinfit <- function(mkinmod, observed, fit$fixed$type = c(rep("state", length(state.ini.fixed)), rep("deparm", length(parms.fixed))) - # Collect observed, predicted, residuals and weighting - data <- merge(fit$observed, fit$predicted, by = c("time", "name")) - data$name <- ordered(data$name, levels = obs_vars) - data <- data[order(data$name, data$time), ] + # Sort observed, predicted and residuals + data_errmod$name <- ordered(data_errmod$name, levels = obs_vars) + + data <- data_errmod[order(data_errmod$name, data_errmod$time), ] fit$data <- data.frame(time = data$time, variable = data$name, - observed = data$value.x, - predicted = data$value.y) + observed = data$value.observed, + predicted = data$value.predicted) fit$data$residual <- fit$data$observed - fit$data$predicted diff --git a/R/nafta.R b/R/nafta.R index 6a8ad42f..a98a7852 100644 --- a/R/nafta.R +++ b/R/nafta.R @@ -42,8 +42,8 @@ nafta <- function(ds, title = NA, quiet = FALSE, ...) { # Compare the sum of squared residuals (SSR) to the upper bound of the # confidence region of the SSR for the IORE model - result$S <- sapply(result$mmkin, function(x) x$ssr) - names(result$S) <- models + result$S <- sapply(result$mmkin, function(x) sum(x$data$residual^2)) + names(result$S) <- c("SFO", "IORE", "DFOP") # Equation (3) on p. 3 p <- 3 result$S["IORE"] diff --git a/build.log b/build.log index 976d27d4..9728241a 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.4.tar.gz’ + diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html index 376acee2..e63feb07 100644 --- a/docs/articles/FOCUS_D.html +++ b/docs/articles/FOCUS_D.html @@ -30,7 +30,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -88,7 +88,7 @@

Example evaluation of FOCUS Example Dataset D

Johannes Ranke

-

2019-03-04

+

2019-04-10

@@ -156,18 +156,20 @@ ## "d_m1 = + k_parent_m1 * parent - k_m1_sink * m1"

We do the fitting without progress report (quiet = TRUE).

fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE)
+
## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
+## value of zero were removed from the data

A plot of the fit including a residual plot for both observed variables is obtained using the plot_sep method for mkinfit objects, which shows separate graphs for all compounds and their residuals.

-
plot_sep(fit, lpos = c("topright", "bottomright"))
+
plot_sep(fit, lpos = c("topright", "bottomright"))

Confidence intervals for the parameter estimates are obtained using the mkinparplot function.

-
mkinparplot(fit)
+
mkinparplot(fit)

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

-
summary(fit)
-
## mkin version used for fitting:    0.9.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:39 2019 
-## Date of summary: Mon Mar  4 14:06:39 2019 
+
summary(fit)
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:31 2019 
+## Date of summary: Wed Apr 10 10:11:31 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -175,16 +177,18 @@
 ## 
 ## Model predictions using solution type deSolve 
 ## 
-## Fitted with method Port using 153 model solutions performed in 0.693 s
+## Fitted with method using 396 model solutions performed in 1.048 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##                  value   type
-## parent_0      100.7500  state
-## k_parent_sink   0.1000 deparm
-## k_parent_m1     0.1001 deparm
-## k_m1_sink       0.1002 deparm
+##                    value   type
+## parent_0      100.750000  state
+## k_parent_sink   0.100000 deparm
+## k_parent_m1     0.100100 deparm
+## k_m1_sink       0.100200 deparm
+## sigma           3.125504  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##                        value lower upper
@@ -192,6 +196,7 @@
 ## log_k_parent_sink  -2.302585  -Inf   Inf
 ## log_k_parent_m1    -2.301586  -Inf   Inf
 ## log_k_m1_sink      -2.300587  -Inf   Inf
+## sigma               3.125504     0   Inf
 ## 
 ## Fixed parameter values:
 ##      value  type
@@ -199,29 +204,36 @@
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
 ##                   Estimate Std. Error  Lower   Upper
-## parent_0            99.600    1.61400 96.330 102.900
-## log_k_parent_sink   -3.038    0.07826 -3.197  -2.879
-## log_k_parent_m1     -2.980    0.04124 -3.064  -2.897
-## log_k_m1_sink       -5.248    0.13610 -5.523  -4.972
+## parent_0            99.600    1.57000 96.400 102.800
+## log_k_parent_sink   -3.038    0.07626 -3.193  -2.883
+## log_k_parent_m1     -2.980    0.04033 -3.062  -2.898
+## log_k_m1_sink       -5.248    0.13320 -5.518  -4.977
+## sigma                3.126    0.35850  2.396   3.855
 ## 
 ## Parameter correlation:
-##                   parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink
-## parent_0           1.00000            0.6075        -0.06625       -0.1701
-## log_k_parent_sink  0.60752            1.0000        -0.08740       -0.6253
-## log_k_parent_m1   -0.06625           -0.0874         1.00000        0.4716
-## log_k_m1_sink     -0.17006           -0.6253         0.47164        1.0000
-## 
-## Residual standard error: 3.211 on 36 degrees of freedom
+##                     parent_0 log_k_parent_sink log_k_parent_m1
+## parent_0           1.000e+00         6.067e-01      -6.372e-02
+## log_k_parent_sink  6.067e-01         1.000e+00      -8.550e-02
+## log_k_parent_m1   -6.372e-02        -8.550e-02       1.000e+00
+## log_k_m1_sink     -1.688e-01        -6.252e-01       4.731e-01
+## sigma             -3.368e-07         3.365e-08       8.420e-07
+##                   log_k_m1_sink      sigma
+## parent_0             -1.688e-01 -3.368e-07
+## log_k_parent_sink    -6.252e-01  3.365e-08
+## log_k_parent_m1       4.731e-01  8.420e-07
+## log_k_m1_sink         1.000e+00  1.958e-08
+## sigma                 1.958e-08  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
 ##                Estimate t value    Pr(>t)     Lower     Upper
-## parent_0      99.600000  61.720 2.024e-38 96.330000 1.029e+02
-## k_parent_sink  0.047920  12.780 3.050e-15  0.040890 5.616e-02
-## k_parent_m1    0.050780  24.250 3.407e-24  0.046700 5.521e-02
-## k_m1_sink      0.005261   7.349 5.758e-09  0.003992 6.933e-03
+## parent_0      99.600000  63.430 2.298e-36 96.400000 1.028e+02
+## k_parent_sink  0.047920  13.110 6.126e-15  0.041030 5.596e-02
+## k_parent_m1    0.050780  24.800 3.269e-23  0.046780 5.512e-02
+## k_m1_sink      0.005261   7.510 6.165e-09  0.004012 6.898e-03
+## sigma          3.126000   8.718 2.235e-10  2.396000 3.855e+00
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -246,10 +258,10 @@
 ##     0   parent   102.04  99.59848  2.442e+00
 ##     1   parent    93.50  90.23787  3.262e+00
 ##     1   parent    92.50  90.23787  2.262e+00
-##     3   parent    63.23  74.07320 -1.084e+01
-##     3   parent    68.99  74.07320 -5.083e+00
-##     7   parent    52.32  49.91207  2.408e+00
-##     7   parent    55.13  49.91207  5.218e+00
+##     3   parent    63.23  74.07319 -1.084e+01
+##     3   parent    68.99  74.07319 -5.083e+00
+##     7   parent    52.32  49.91206  2.408e+00
+##     7   parent    55.13  49.91206  5.218e+00
 ##    14   parent    27.27  25.01257  2.257e+00
 ##    14   parent    26.64  25.01257  1.627e+00
 ##    21   parent    11.50  12.53462 -1.035e+00
@@ -259,23 +271,21 @@
 ##    50   parent     0.69   0.71624 -2.624e-02
 ##    50   parent     0.63   0.71624 -8.624e-02
 ##    75   parent     0.05   0.06074 -1.074e-02
-##    75   parent     0.06   0.06074 -7.382e-04
-##     0       m1     0.00   0.00000  0.000e+00
-##     0       m1     0.00   0.00000  0.000e+00
+##    75   parent     0.06   0.06074 -7.381e-04
 ##     1       m1     4.84   4.80296  3.704e-02
 ##     1       m1     5.64   4.80296  8.370e-01
 ##     3       m1    12.91  13.02400 -1.140e-01
 ##     3       m1    12.96  13.02400 -6.400e-02
 ##     7       m1    22.97  25.04476 -2.075e+00
 ##     7       m1    24.47  25.04476 -5.748e-01
-##    14       m1    41.69  36.69002  5.000e+00
-##    14       m1    33.21  36.69002 -3.480e+00
+##    14       m1    41.69  36.69003  5.000e+00
+##    14       m1    33.21  36.69003 -3.480e+00
 ##    21       m1    44.37  41.65310  2.717e+00
 ##    21       m1    46.44  41.65310  4.787e+00
 ##    35       m1    41.22  43.31312 -2.093e+00
 ##    35       m1    37.95  43.31312 -5.363e+00
-##    50       m1    41.19  41.21831 -2.831e-02
-##    50       m1    40.01  41.21831 -1.208e+00
+##    50       m1    41.19  41.21832 -2.832e-02
+##    50       m1    40.01  41.21832 -1.208e+00
 ##    75       m1    40.09  36.44704  3.643e+00
 ##    75       m1    33.85  36.44704 -2.597e+00
 ##   100       m1    31.04  31.98163 -9.416e-01
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 c0fab72d..b8f2fe94 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 47916477..79ec3aaf 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 5dac9999..8af99f6c 100644
--- a/docs/articles/FOCUS_L.html
+++ b/docs/articles/FOCUS_L.html
@@ -30,7 +30,7 @@
       
       
         mkin
-        0.9.48.1
+        0.9.49.4
       
     
 
@@ -88,7 +88,7 @@
       

Example evaluation of FOCUS Laboratory Data L1 to L3

Johannes Ranke

-

2019-03-04

+

2019-04-10

@@ -112,52 +112,56 @@

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.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:41 2019 
-## Date of summary: Mon Mar  4 14:06:41 2019 
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:33 2019 
+## Date of summary: Wed Apr 10 10:11:33 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 37 model solutions performed in 0.095 s
+## Fitted with method using 133 model solutions performed in 0.344 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##               value   type
-## parent_0      89.85  state
-## k_parent_sink  0.10 deparm
+##                   value   type
+## parent_0      89.850000  state
+## k_parent_sink  0.100000 deparm
+## sigma          2.779827  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##                       value lower upper
 ## parent_0          89.850000  -Inf   Inf
 ## log_k_parent_sink -2.302585  -Inf   Inf
+## sigma              2.779827     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
 ##                   Estimate Std. Error  Lower  Upper
-## parent_0            92.470    1.36800 89.570 95.370
-## log_k_parent_sink   -2.347    0.04057 -2.433 -2.261
+## parent_0            92.470    1.28200 89.740 95.200
+## log_k_parent_sink   -2.347    0.03763 -2.428 -2.267
+## sigma                2.780    0.46330  1.792  3.767
 ## 
 ## Parameter correlation:
-##                   parent_0 log_k_parent_sink
-## parent_0            1.0000            0.6248
-## log_k_parent_sink   0.6248            1.0000
-## 
-## Residual standard error: 2.948 on 16 degrees of freedom
+##                     parent_0 log_k_parent_sink      sigma
+## parent_0           1.000e+00         6.186e-01 -1.712e-09
+## log_k_parent_sink  6.186e-01         1.000e+00 -3.237e-09
+## sigma             -1.712e-09        -3.237e-09  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
 ##               Estimate t value    Pr(>t)    Lower   Upper
-## parent_0      92.47000   67.58 2.170e-21 89.57000 95.3700
-## k_parent_sink  0.09561   24.65 1.867e-14  0.08773  0.1042
+## parent_0      92.47000   72.13 8.824e-21 89.74000 95.2000
+## k_parent_sink  0.09561   26.57 2.487e-14  0.08824  0.1036
+## sigma          2.78000    6.00 1.216e-05  1.79200  3.7670
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -199,61 +203,76 @@
 
mkinresplot(m.L1.SFO, ylab = "Observed", xlab = "Time")

For comparison, the FOMC model is fitted as well, and the \(\chi^2\) error level is checked.

-
m.L1.FOMC <- mkinfit("FOMC", FOCUS_2006_L1_mkin, quiet=TRUE)
-plot(m.L1.FOMC, show_errmin = TRUE, main = "FOCUS L1 - FOMC")
+
m.L1.FOMC <- mkinfit("FOMC", FOCUS_2006_L1_mkin, quiet=TRUE)
+
## Warning in mkinfit("FOMC", FOCUS_2006_L1_mkin, quiet = TRUE): Optimisation did not converge:
+## false convergence (8)
+
plot(m.L1.FOMC, show_errmin = TRUE, main = "FOCUS L1 - FOMC")

-
summary(m.L1.FOMC, data = FALSE)
-
## mkin version used for fitting:    0.9.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:43 2019 
-## Date of summary: Mon Mar  4 14:06:43 2019 
+
summary(m.L1.FOMC, data = FALSE)
+
## 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
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:34 2019 
+## Date of summary: Wed Apr 10 10:11:34 2019 
+## 
+## 
+## Warning: Optimisation did not converge:
+## false convergence (8) 
+## 
 ## 
 ## Equations:
 ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 611 model solutions performed in 1.502 s
+## Fitted with method using 344 model solutions performed in 0.778 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##          value   type
-## parent_0 89.85  state
-## alpha     1.00 deparm
-## beta     10.00 deparm
+##             value   type
+## parent_0 89.85000  state
+## alpha     1.00000 deparm
+## beta     10.00000 deparm
+## sigma     2.77987  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##               value lower upper
 ## parent_0  89.850000  -Inf   Inf
 ## log_alpha  0.000000  -Inf   Inf
 ## log_beta   2.302585  -Inf   Inf
+## sigma      2.779870     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
-##           Estimate Std. Error    Lower   Upper
-## parent_0     92.47      1.482    89.31   95.63
-## log_alpha    11.25    598.200 -1264.00 1286.00
-## log_beta     13.60    598.200 -1261.00 1289.00
+##           Estimate Std. Error  Lower  Upper
+## parent_0     92.47     1.2810 89.720 95.220
+## log_alpha    10.60        NaN    NaN    NaN
+## log_beta     12.95        NaN    NaN    NaN
+## sigma         2.78     0.4554  1.803  3.757
 ## 
 ## Parameter correlation:
-##           parent_0 log_alpha log_beta
-## parent_0    1.0000   -0.3016  -0.3016
-## log_alpha  -0.3016    1.0000   1.0000
-## log_beta   -0.3016    1.0000   1.0000
-## 
-## Residual standard error: 3.045 on 15 degrees of freedom
+##           parent_0 log_alpha log_beta    sigma
+## parent_0  1.000000       NaN      NaN 0.008714
+## log_alpha      NaN         1      NaN      NaN
+## log_beta       NaN       NaN        1      NaN
+## sigma     0.008714       NaN      NaN 1.000000
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
-##           Estimate  t value    Pr(>t) Lower Upper
-## parent_0     92.47 64.45000 4.757e-20 89.31 95.63
-## alpha     76830.00  0.02852 4.888e-01  0.00   Inf
-## beta     803500.00  0.02852 4.888e-01  0.00   Inf
+##           Estimate  t value    Pr(>t)  Lower  Upper
+## parent_0     92.47 72.13000 1.052e-19 89.720 95.220
+## alpha     40090.00  0.02388 4.906e-01     NA     NA
+## beta     419300.00  0.02388 4.906e-01     NA     NA
+## sigma         2.78  6.00000 1.628e-05  1.803  3.757
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -262,7 +281,7 @@
 ## 
 ## Estimated disappearance times:
 ##         DT50  DT90 DT50back
-## parent 7.249 24.08    7.249
+## parent 7.249 24.08 7.25

We get a warning that the default optimisation algorithm Port did not converge, which is an indication that the model is overparameterised, i.e. contains too many parameters that are ill-defined as a consequence.

And in fact, due to the higher number of parameters, and the lower number of degrees of freedom of the fit, the \(\chi^2\) error level is actually higher for the FOMC model (3.6%) than for the SFO model (3.4%). Additionally, the parameters log_alpha and log_beta internally fitted in the model have excessive confidence intervals, that span more than 25 orders of magnitude (!) when backtransformed to the scale of alpha and beta. Also, the t-test for significant difference from zero does not indicate such a significant difference, with p-values greater than 0.1, and finally, the parameter correlation of log_alpha and log_beta is 1.000, clearly indicating that the model is overparameterised.

The \(\chi^2\) error levels reported in Appendix 3 and Appendix 7 to the FOCUS kinetics report are rounded to integer percentages and partly deviate by one percentage point from the results calculated by mkin. The reason for this is not known. However, mkin gives the same \(\chi^2\) error levels as the kinfit package and the calculation routines of the kinfit package have been extensively compared to the results obtained by the KinGUI software, as documented in the kinfit package vignette. KinGUI was the first widely used standard package in this field. Also, the calculation of \(\chi^2\) error levels was compared with KinGUII, CAKE and DegKin manager in a project sponsored by the German Umweltbundesamt (Ranke 2014).

@@ -271,19 +290,19 @@

Laboratory Data L2

The following code defines example dataset L2 from the FOCUS kinetics report, p. 287:

- +

SFO fit for L2

Again, the SFO model is fitted and the result is plotted. The residual plot can be obtained simply by adding the argument show_residuals to the plot command.

-
m.L2.SFO <- mkinfit("SFO", FOCUS_2006_L2_mkin, quiet=TRUE)
-plot(m.L2.SFO, show_residuals = TRUE, show_errmin = TRUE,
-     main = "FOCUS L2 - SFO")
+
m.L2.SFO <- mkinfit("SFO", FOCUS_2006_L2_mkin, quiet=TRUE)
+plot(m.L2.SFO, show_residuals = TRUE, show_errmin = TRUE,
+     main = "FOCUS L2 - SFO")

The \(\chi^2\) error level of 14% suggests that the model does not fit very well. This is also obvious from the plots of the fit, in which we have included the residual plot.

In the FOCUS kinetics report, it is stated that there is no apparent systematic error observed from the residual plot up to the measured DT90 (approximately at day 5), and there is an underestimation beyond that point.

@@ -293,62 +312,66 @@

FOMC fit for L2

For comparison, the FOMC model is fitted as well, and the \(\chi^2\) error level is checked.

-
m.L2.FOMC <- mkinfit("FOMC", FOCUS_2006_L2_mkin, quiet = TRUE)
-plot(m.L2.FOMC, show_residuals = TRUE,
-     main = "FOCUS L2 - FOMC")
+
m.L2.FOMC <- mkinfit("FOMC", FOCUS_2006_L2_mkin, quiet = TRUE)
+plot(m.L2.FOMC, show_residuals = TRUE,
+     main = "FOCUS L2 - FOMC")

-
summary(m.L2.FOMC, data = FALSE)
-
## mkin version used for fitting:    0.9.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:43 2019 
-## Date of summary: Mon Mar  4 14:06:43 2019 
+
summary(m.L2.FOMC, data = FALSE)
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:35 2019 
+## Date of summary: Wed Apr 10 10:11:35 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 81 model solutions performed in 0.196 s
+## Fitted with method using 240 model solutions performed in 0.564 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##          value   type
-## parent_0 93.95  state
-## alpha     1.00 deparm
-## beta     10.00 deparm
+##              value   type
+## parent_0 93.950000  state
+## alpha     1.000000 deparm
+## beta     10.000000 deparm
+## sigma     2.275722  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##               value lower upper
 ## parent_0  93.950000  -Inf   Inf
 ## log_alpha  0.000000  -Inf   Inf
 ## log_beta   2.302585  -Inf   Inf
+## sigma      2.275722     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
-##           Estimate Std. Error   Lower   Upper
-## parent_0   93.7700     1.8560 89.5700 97.9700
-## log_alpha   0.3180     0.1867 -0.1044  0.7405
-## log_beta    0.2102     0.2943 -0.4555  0.8759
+##           Estimate Std. Error    Lower   Upper
+## parent_0   93.7700     1.6130 90.05000 97.4900
+## log_alpha   0.3180     0.1559 -0.04149  0.6776
+## log_beta    0.2102     0.2493 -0.36460  0.7850
+## sigma       2.2760     0.4645  1.20500  3.3470
 ## 
 ## Parameter correlation:
-##           parent_0 log_alpha log_beta
-## parent_0   1.00000  -0.09553  -0.1863
-## log_alpha -0.09553   1.00000   0.9757
-## log_beta  -0.18628   0.97567   1.0000
-## 
-## Residual standard error: 2.628 on 9 degrees of freedom
+##             parent_0  log_alpha   log_beta      sigma
+## parent_0   1.000e+00 -1.151e-01 -2.085e-01  1.606e-08
+## log_alpha -1.151e-01  1.000e+00  9.741e-01 -1.168e-07
+## log_beta  -2.085e-01  9.741e-01  1.000e+00 -1.029e-07
+## sigma      1.606e-08 -1.168e-07 -1.029e-07  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
 ##          Estimate t value    Pr(>t)   Lower  Upper
-## parent_0   93.770  50.510 1.173e-12 89.5700 97.970
-## alpha       1.374   5.355 2.296e-04  0.9009  2.097
-## beta        1.234   3.398 3.949e-03  0.6341  2.401
+## parent_0   93.770  58.120 4.267e-12 90.0500 97.490
+## alpha       1.374   6.414 1.030e-04  0.9594  1.969
+## beta        1.234   4.012 1.942e-03  0.6945  2.192
+## sigma       2.276   4.899 5.977e-04  1.2050  3.347
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -364,17 +387,15 @@
 

DFOP fit for L2

Fitting the four parameter DFOP model further reduces the \(\chi^2\) error level.

-
m.L2.DFOP <- mkinfit("DFOP", FOCUS_2006_L2_mkin, quiet = TRUE)
-plot(m.L2.DFOP, show_residuals = TRUE, show_errmin = TRUE,
-     main = "FOCUS L2 - DFOP")
+
m.L2.DFOP <- mkinfit("DFOP", FOCUS_2006_L2_mkin, quiet = TRUE)
+plot(m.L2.DFOP, show_residuals = TRUE, show_errmin = TRUE,
+     main = "FOCUS L2 - DFOP")

-
summary(m.L2.DFOP, data = FALSE)
-
## Warning in summary.mkinfit(m.L2.DFOP, data = FALSE): Could not estimate
-## covariance matrix; singular system.
-
## mkin version used for fitting:    0.9.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:44 2019 
-## Date of summary: Mon Mar  4 14:06:44 2019 
+
summary(m.L2.DFOP, data = FALSE)
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:37 2019 
+## Date of summary: Wed Apr 10 10:11:37 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -383,16 +404,18 @@
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 336 model solutions performed in 0.84 s
+## Fitted with method using 585 model solutions performed in 1.296 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##          value   type
-## parent_0 93.95  state
-## k1        0.10 deparm
-## k2        0.01 deparm
-## g         0.50 deparm
+##              value   type
+## parent_0 93.950000  state
+## k1        0.100000 deparm
+## k2        0.010000 deparm
+## g         0.500000 deparm
+## sigma     1.413899  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##              value lower upper
@@ -400,30 +423,37 @@
 ## log_k1   -2.302585  -Inf   Inf
 ## log_k2   -4.605170  -Inf   Inf
 ## g_ilr     0.000000  -Inf   Inf
+## sigma     1.413899     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
-##          Estimate Std. Error Lower Upper
-## parent_0  93.9500         NA    NA    NA
-## log_k1     3.1370         NA    NA    NA
-## log_k2    -1.0880         NA    NA    NA
-## g_ilr     -0.2821         NA    NA    NA
+##          Estimate Std. Error      Lower     Upper
+## parent_0  93.9500  9.998e-01    91.5900   96.3100
+## log_k1     3.1350  2.336e+03 -5522.0000 5528.0000
+## log_k2    -1.0880  6.285e-02    -1.2370   -0.9394
+## g_ilr     -0.2821  7.033e-02    -0.4484   -0.1158
+## sigma      1.4140  2.886e-01     0.7314    2.0960
 ## 
 ## Parameter correlation:
-## Could not estimate covariance matrix; singular system.
-## Residual standard error: 1.732 on 8 degrees of freedom
+##            parent_0     log_k1     log_k2      g_ilr      sigma
+## parent_0  1.000e+00  5.247e-07 -1.026e-10  2.665e-01 -8.076e-11
+## log_k1    5.247e-07  1.000e+00  8.592e-05 -1.690e-04 -7.938e-06
+## log_k2   -1.026e-10  8.592e-05  1.000e+00 -7.903e-01  5.048e-10
+## g_ilr     2.665e-01 -1.690e-04 -7.903e-01  1.000e+00 -6.476e-10
+## sigma    -8.076e-11 -7.938e-06  5.048e-10 -6.476e-10  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
-##          Estimate t value Pr(>t) Lower Upper
-## parent_0  93.9500      NA     NA    NA    NA
-## k1        23.0400      NA     NA    NA    NA
-## k2         0.3369      NA     NA    NA    NA
-## g          0.4016      NA     NA    NA    NA
+##          Estimate   t value    Pr(>t)   Lower   Upper
+## parent_0  93.9500 9.397e+01 2.036e-12 91.5900 96.3100
+## k1        23.0000 4.377e-04 4.998e-01  0.0000     Inf
+## k2         0.3369 1.591e+01 4.697e-07  0.2904  0.3909
+## g          0.4016 1.680e+01 3.238e-07  0.3466  0.4591
+## sigma      1.4140 4.899e+00 8.776e-04  0.7314  2.0960
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -432,7 +462,7 @@
 ## 
 ## Estimated disappearance times:
 ##          DT50  DT90 DT50_k1 DT50_k2
-## parent 0.5335 5.311 0.03009   2.058
+## parent 0.5335 5.311 0.03014 2.058

Here, the DFOP model is clearly the best-fit model for dataset L2 based on the chi^2 error level criterion. However, the failure to calculate the covariance matrix indicates that the parameter estimates correlate excessively. Therefore, the FOMC model may be preferred for this dataset.

@@ -440,18 +470,18 @@

Laboratory Data L3

The following code defines example dataset L3 from the FOCUS kinetics report, p. 290.

-
FOCUS_2006_L3 = data.frame(
-  t = c(0, 3, 7, 14, 30, 60, 91, 120),
-  parent = c(97.8, 60, 51, 43, 35, 22, 15, 12))
-FOCUS_2006_L3_mkin <- mkin_wide_to_long(FOCUS_2006_L3)
+
FOCUS_2006_L3 = data.frame(
+  t = c(0, 3, 7, 14, 30, 60, 91, 120),
+  parent = c(97.8, 60, 51, 43, 35, 22, 15, 12))
+FOCUS_2006_L3_mkin <- mkin_wide_to_long(FOCUS_2006_L3)

Fit multiple models

As of mkin version 0.9-39 (June 2015), we can fit several models to one or more datasets in one call to the function mmkin. The datasets have to be passed in a list, in this case a named list holding only the L3 dataset prepared above.

-
# Only use one core here, not to offend the CRAN checks
-mm.L3 <- mmkin(c("SFO", "FOMC", "DFOP"), cores = 1,
-               list("FOCUS L3" = FOCUS_2006_L3_mkin), quiet = TRUE)
-plot(mm.L3)
+
# Only use one core here, not to offend the CRAN checks
+mm.L3 <- mmkin(c("SFO", "FOMC", "DFOP"), cores = 1,
+               list("FOCUS L3" = FOCUS_2006_L3_mkin), quiet = TRUE)
+plot(mm.L3)

The \(\chi^2\) error level of 21% as well as the plot suggest that the SFO model does not fit very well. The FOMC model performs better, with an error level at which the \(\chi^2\) test passes of 7%. Fitting the four parameter DFOP model further reduces the \(\chi^2\) error level considerably.

@@ -460,11 +490,11 @@ Accessing mmkin objects

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.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:45 2019 
-## Date of summary: Mon Mar  4 14:06:46 2019 
+
summary(mm.L3[["DFOP", 1]])
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:39 2019 
+## Date of summary: Wed Apr 10 10:11:39 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -473,16 +503,18 @@
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 137 model solutions performed in 0.343 s
+## Fitted with method using 372 model solutions performed in 0.809 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##          value   type
-## parent_0 97.80  state
-## k1        0.10 deparm
-## k2        0.01 deparm
-## g         0.50 deparm
+##              value   type
+## parent_0 97.800000  state
+## k1        0.100000 deparm
+## k2        0.010000 deparm
+## g         0.500000 deparm
+## sigma     1.017292  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##              value lower upper
@@ -490,35 +522,37 @@
 ## log_k1   -2.302585  -Inf   Inf
 ## log_k2   -4.605170  -Inf   Inf
 ## g_ilr     0.000000  -Inf   Inf
+## sigma     1.017292     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
-##          Estimate Std. Error   Lower     Upper
-## parent_0  97.7500    1.43800 93.7500 101.70000
-## log_k1    -0.6612    0.13340 -1.0310  -0.29100
-## log_k2    -4.2860    0.05902 -4.4500  -4.12200
-## g_ilr     -0.1229    0.05121 -0.2651   0.01925
+##          Estimate Std. Error   Lower      Upper
+## parent_0  97.7500    1.01900 94.5000 101.000000
+## log_k1    -0.6612    0.10050 -0.9812  -0.341300
+## log_k2    -4.2860    0.04322 -4.4230  -4.148000
+## g_ilr     -0.1229    0.03727 -0.2415  -0.004343
+## sigma      1.0170    0.25430  0.2079   1.827000
 ## 
 ## Parameter correlation:
-##          parent_0  log_k1   log_k2   g_ilr
-## parent_0  1.00000  0.1640  0.01315  0.4253
-## log_k1    0.16400  1.0000  0.46478 -0.5526
-## log_k2    0.01315  0.4648  1.00000 -0.6631
-## g_ilr     0.42526 -0.5526 -0.66310  1.0000
-## 
-## Residual standard error: 1.439 on 4 degrees of freedom
+##           parent_0     log_k1     log_k2      g_ilr      sigma
+## parent_0 1.000e+00  1.732e-01  2.282e-02  4.009e-01  1.656e-07
+## log_k1   1.732e-01  1.000e+00  4.945e-01 -5.809e-01  6.759e-08
+## log_k2   2.282e-02  4.945e-01  1.000e+00 -6.812e-01  3.867e-07
+## g_ilr    4.009e-01 -5.809e-01 -6.812e-01  1.000e+00 -3.839e-07
+## sigma    1.656e-07  6.759e-08  3.867e-07 -3.839e-07  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
 ##          Estimate t value    Pr(>t)    Lower     Upper
-## parent_0 97.75000  67.970 1.404e-07 93.75000 101.70000
-## k1        0.51620   7.499 8.460e-04  0.35650   0.74750
-## k2        0.01376  16.940 3.557e-05  0.01168   0.01621
-## g         0.45660  25.410 7.121e-06  0.40730   0.50680
+## parent_0 97.75000  95.960 1.248e-06 94.50000 101.00000
+## k1        0.51620   9.947 1.081e-03  0.37490   0.71090
+## k2        0.01376  23.140 8.840e-05  0.01199   0.01579
+## g         0.45660  34.920 2.581e-05  0.41540   0.49850
+## sigma     1.01700   4.000 1.400e-02  0.20790   1.82700
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -539,7 +573,7 @@
 ##    60   parent     22.0     23.26 -1.25919
 ##    91   parent     15.0     15.18 -0.18181
 ##   120   parent     12.0     10.19  1.81395
-
plot(mm.L3[["DFOP", 1]], show_errmin = TRUE)
+
plot(mm.L3[["DFOP", 1]], show_errmin = TRUE)

Here, a look to the model plot, the confidence intervals of the parameters and the correlation matrix suggest that the parameter estimates are reliable, and the DFOP model can be used as the best-fit model based on the \(\chi^2\) error level criterion for laboratory data L3.

This is also an example where the standard t-test for the parameter g_ilr is misleading, as it tests for a significant difference from zero. In this case, zero appears to be the correct value for this parameter, and the confidence interval for the backtransformed parameter g is quite narrow.

@@ -549,65 +583,69 @@

Laboratory Data L4

The following code defines example dataset L4 from the FOCUS kinetics report, p. 293:

-
FOCUS_2006_L4 = data.frame(
-  t = c(0, 3, 7, 14, 30, 60, 91, 120),
-  parent = c(96.6, 96.3, 94.3, 88.8, 74.9, 59.9, 53.5, 49.0))
-FOCUS_2006_L4_mkin <- mkin_wide_to_long(FOCUS_2006_L4)
+
FOCUS_2006_L4 = data.frame(
+  t = c(0, 3, 7, 14, 30, 60, 91, 120),
+  parent = c(96.6, 96.3, 94.3, 88.8, 74.9, 59.9, 53.5, 49.0))
+FOCUS_2006_L4_mkin <- mkin_wide_to_long(FOCUS_2006_L4)

Fits of the SFO and FOMC models, plots and summaries are produced below:

-
# Only use one core here, not to offend the CRAN checks
-mm.L4 <- mmkin(c("SFO", "FOMC"), cores = 1,
-               list("FOCUS L4" = FOCUS_2006_L4_mkin),
-               quiet = TRUE)
-plot(mm.L4)
+
# Only use one core here, not to offend the CRAN checks
+mm.L4 <- mmkin(c("SFO", "FOMC"), cores = 1,
+               list("FOCUS L4" = FOCUS_2006_L4_mkin),
+               quiet = TRUE)
+plot(mm.L4)

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.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:46 2019 
-## Date of summary: Mon Mar  4 14:06:46 2019 
+
summary(mm.L4[["SFO", 1]], data = FALSE)
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:39 2019 
+## Date of summary: Wed Apr 10 10:11:40 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - k_parent_sink * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 46 model solutions performed in 0.111 s
+## Fitted with method using 146 model solutions performed in 0.306 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##               value   type
-## parent_0       96.6  state
-## k_parent_sink   0.1 deparm
+##                  value   type
+## parent_0      96.60000  state
+## k_parent_sink  0.10000 deparm
+## sigma          3.16181  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##                       value lower upper
 ## parent_0          96.600000  -Inf   Inf
 ## log_k_parent_sink -2.302585  -Inf   Inf
+## sigma              3.161810     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
 ##                   Estimate Std. Error  Lower   Upper
-## parent_0             96.44    1.94900 91.670 101.200
-## log_k_parent_sink    -5.03    0.07999 -5.225  -4.834
+## parent_0            96.440    1.69900 92.070 100.800
+## log_k_parent_sink   -5.030    0.07059 -5.211  -4.848
+## sigma                3.162    0.79050  1.130   5.194
 ## 
 ## Parameter correlation:
-##                   parent_0 log_k_parent_sink
-## parent_0            1.0000            0.5865
-## log_k_parent_sink   0.5865            1.0000
-## 
-## Residual standard error: 3.651 on 6 degrees of freedom
+##                    parent_0 log_k_parent_sink      sigma
+## parent_0          1.000e+00         5.938e-01  5.612e-10
+## log_k_parent_sink 5.938e-01         1.000e+00 -4.994e-10
+## sigma             5.612e-10        -4.994e-10  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
 ##                Estimate t value    Pr(>t)     Lower     Upper
-## parent_0      96.440000   49.49 2.283e-09 91.670000 1.012e+02
-## k_parent_sink  0.006541   12.50 8.008e-06  0.005378 7.955e-03
+## parent_0      96.440000   56.77 1.604e-08 92.070000 1.008e+02
+## k_parent_sink  0.006541   14.17 1.578e-05  0.005455 7.842e-03
+## sigma          3.162000    4.00 5.162e-03  1.130000 5.194e+00
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
@@ -621,58 +659,62 @@
 ## Estimated disappearance times:
 ##        DT50 DT90
 ## parent  106  352
-
summary(mm.L4[["FOMC", 1]], data = FALSE)
-
## mkin version used for fitting:    0.9.48.1 
-## R version used for fitting:       3.5.2 
-## Date of fit:     Mon Mar  4 14:06:46 2019 
-## Date of summary: Mon Mar  4 14:06:46 2019 
+
summary(mm.L4[["FOMC", 1]], data = FALSE)
+
## mkin version used for fitting:    0.9.49.4 
+## R version used for fitting:       3.5.3 
+## Date of fit:     Wed Apr 10 10:11:40 2019 
+## Date of summary: Wed Apr 10 10:11:40 2019 
 ## 
 ## Equations:
 ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
 ## 
 ## Model predictions using solution type analytical 
 ## 
-## Fitted with method Port using 66 model solutions performed in 0.173 s
+## Fitted with method using 224 model solutions performed in 0.478 s
 ## 
-## Weighting: none
+## Error model:
+## NULL
 ## 
 ## Starting values for parameters to be optimised:
-##          value   type
-## parent_0  96.6  state
-## alpha      1.0 deparm
-## beta      10.0 deparm
+##              value   type
+## parent_0 96.600000  state
+## alpha     1.000000 deparm
+## beta     10.000000 deparm
+## sigma     1.830055  error
 ## 
 ## Starting values for the transformed parameters actually optimised:
 ##               value lower upper
 ## parent_0  96.600000  -Inf   Inf
 ## log_alpha  0.000000  -Inf   Inf
 ## log_beta   2.302585  -Inf   Inf
+## sigma      1.830055     0   Inf
 ## 
 ## Fixed parameter values:
 ## None
 ## 
 ## Optimised, transformed parameters with symmetric confidence intervals:
-##           Estimate Std. Error  Lower    Upper
-## parent_0   99.1400     1.6800 94.820 103.5000
-## log_alpha  -0.3506     0.3725 -1.308   0.6068
-## log_beta    4.1740     0.5635  2.726   5.6230
+##           Estimate Std. Error   Lower    Upper
+## parent_0   99.1400     1.2670 95.6300 102.7000
+## log_alpha  -0.3506     0.2616 -1.0770   0.3756
+## log_beta    4.1740     0.3938  3.0810   5.2670
+## sigma       1.8300     0.4575  0.5598   3.1000
 ## 
 ## Parameter correlation:
-##           parent_0 log_alpha log_beta
-## parent_0    1.0000   -0.5365  -0.6083
-## log_alpha  -0.5365    1.0000   0.9913
-## log_beta   -0.6083    0.9913   1.0000
-## 
-## Residual standard error: 2.315 on 5 degrees of freedom
+##             parent_0  log_alpha   log_beta      sigma
+## parent_0   1.000e+00 -4.696e-01 -5.543e-01 -2.460e-07
+## log_alpha -4.696e-01  1.000e+00  9.889e-01  2.351e-08
+## log_beta  -5.543e-01  9.889e-01  1.000e+00  5.079e-08
+## sigma     -2.460e-07  2.351e-08  5.079e-08  1.000e+00
 ## 
 ## Backtransformed parameters:
 ## Confidence intervals for internally transformed parameters are asymmetric.
 ## t-test (unrealistically) based on the assumption of normal distribution
 ## for estimators of untransformed parameters.
 ##          Estimate t value    Pr(>t)   Lower   Upper
-## parent_0  99.1400  59.020 1.322e-08 94.8200 103.500
-## alpha      0.7042   2.685 2.178e-02  0.2703   1.835
-## beta      64.9800   1.775 6.807e-02 15.2600 276.600
+## parent_0  99.1400  78.250 7.993e-08 95.6300 102.700
+## alpha      0.7042   3.823 9.365e-03  0.3407   1.456
+## beta      64.9800   2.540 3.201e-02 21.7800 193.900
+## sigma      1.8300   4.000 8.065e-03  0.5598   3.100
 ## 
 ## Chi2 error levels in percent:
 ##          err.min n.optim df
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 770db292..6e4ccb9d 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-6-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png
index ee225461..0a403808 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/index.html b/docs/articles/index.html
index 9381dedb..eb2d55ef 100644
--- a/docs/articles/index.html
+++ b/docs/articles/index.html
@@ -60,7 +60,7 @@
       
       
         mkin
-        0.9.48.1
+        0.9.49.4
       
     
 
@@ -132,6 +132,7 @@
         
  • Calculation of time weighted average concentrations with mkin
  • Example evaluation of FOCUS dataset Z
  • Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance
  • +
  • Benchmark timings for mkin on various systems
  • Performance benefit by using compiled model definitions in mkin
  • diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html index 93ad4b56..2e5cd759 100644 --- a/docs/articles/mkin.html +++ b/docs/articles/mkin.html @@ -30,7 +30,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -88,7 +88,7 @@

    Introduction to mkin

    Johannes Ranke

    -

    2019-03-04

    +

    2019-04-10

    diff --git a/docs/articles/twa.html b/docs/articles/twa.html index f58814e3..cdcea4d3 100644 --- a/docs/articles/twa.html +++ b/docs/articles/twa.html @@ -30,7 +30,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -88,7 +88,7 @@

    Calculation of time weighted average concentrations with mkin

    Johannes Ranke

    -

    2019-03-04

    +

    2019-04-10

    diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html index 79e39e55..33d0c90f 100644 --- a/docs/articles/web_only/FOCUS_Z.html +++ b/docs/articles/web_only/FOCUS_Z.html @@ -30,7 +30,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -88,7 +88,7 @@

    Example evaluation of FOCUS dataset Z

    Johannes Ranke

    -

    2019-03-04

    +

    2019-04-10

    @@ -125,87 +125,97 @@
    Z.2a <- mkinmod(Z0 = mkinsub("SFO", "Z1"),
                     Z1 = mkinsub("SFO"))
    ## Successfully compiled differential equation model from auto-generated C code.
    -
    m.Z.2a <- mkinfit(Z.2a, FOCUS_2006_Z_mkin, quiet = TRUE)
    -plot_sep(m.Z.2a)
    +
    m.Z.2a <- mkinfit(Z.2a, FOCUS_2006_Z_mkin, quiet = TRUE)
    +
    ## Warning in mkinfit(Z.2a, FOCUS_2006_Z_mkin, quiet = TRUE): Observations
    +## with value of zero were removed from the data
    +
    plot_sep(m.Z.2a)

    -
    summary(m.Z.2a, data = FALSE)$bpar
    -
    ## Warning in summary.mkinfit(m.Z.2a, data = FALSE): Could not estimate
    -## covariance matrix; singular system.
    -
    ##             Estimate se_notrans    t value     Pr(>t) Lower Upper
    -## Z0_0      9.7015e+01   3.553140 2.7304e+01 1.6793e-21    NA    NA
    -## k_Z0_sink 1.2790e-11   0.226895 5.6368e-11 5.0000e-01    NA    NA
    -## k_Z0_Z1   2.2360e+00   0.165073 1.3546e+01 7.3938e-14    NA    NA
    -## k_Z1_sink 4.8212e-01   0.065854 7.3212e+00 3.5520e-08    NA    NA
    +
    summary(m.Z.2a, data = FALSE)$bpar
    +
    ##             Estimate se_notrans    t value     Pr(>t)    Lower    Upper
    +## Z0_0      9.7015e+01    3.39373 2.8587e+01 6.4606e-21 91.66556 102.3642
    +## k_Z0_sink 4.0181e-10    0.22534 1.7831e-09 5.0000e-01  0.00000      Inf
    +## k_Z0_Z1   2.2360e+00    0.15915 1.4050e+01 1.1387e-13  1.95303   2.5600
    +## k_Z1_sink 4.8212e-01    0.06547 7.3641e+00 5.1396e-08  0.40341   0.5762
    +## sigma     4.8041e+00    0.63763 7.5343e+00 3.4444e-08  3.52677   6.0815

    As obvious from the parameter summary (the component of the summary), the kinetic rate constant from parent compound Z to sink is very small and the t-test for this parameter suggests that it is not significantly different from zero. This suggests, in agreement with the analysis in the FOCUS kinetics report, to simplify the model by removing the pathway to sink.

    A similar result can be obtained when formation fractions are used in the model formulation:

    - +
    ## Successfully compiled differential equation model from auto-generated C code.
    -
    m.Z.2a.ff <- mkinfit(Z.2a.ff, FOCUS_2006_Z_mkin, quiet = TRUE)
    -plot_sep(m.Z.2a.ff)
    +
    m.Z.2a.ff <- mkinfit(Z.2a.ff, FOCUS_2006_Z_mkin, quiet = TRUE)
    +
    ## Warning in mkinfit(Z.2a.ff, FOCUS_2006_Z_mkin, quiet = TRUE): Observations
    +## with value of zero were removed from the data
    +
    plot_sep(m.Z.2a.ff)

    -
    summary(m.Z.2a.ff, data = FALSE)$bpar
    -
    ## Warning in summary.mkinfit(m.Z.2a.ff, data = FALSE): Could not estimate
    -## covariance matrix; singular system.
    -
    ##            Estimate se_notrans t value     Pr(>t) Lower Upper
    -## Z0_0       97.01488   3.553145 27.3039 1.6793e-21    NA    NA
    -## k_Z0        2.23601   0.216849 10.3114 3.6623e-11    NA    NA
    -## k_Z1        0.48212   0.065854  7.3211 3.5520e-08    NA    NA
    -## f_Z0_to_Z1  1.00000   0.101473  9.8548 9.7068e-11    NA    NA
    +
    summary(m.Z.2a.ff, data = FALSE)$bpar
    +
    ##            Estimate se_notrans t value     Pr(>t)    Lower    Upper
    +## Z0_0       97.01488   3.301084 29.3888 3.2971e-21 91.66556 102.3642
    +## k_Z0        2.23601   0.207078 10.7979 3.3309e-11  1.95303   2.5600
    +## k_Z1        0.48212   0.063265  7.6207 2.8155e-08  0.40341   0.5762
    +## f_Z0_to_Z1  1.00000   0.094764 10.5525 5.3560e-11  0.00000   1.0000
    +## sigma       4.80411   0.635638  7.5579 3.2592e-08  3.52677   6.0815

    Here, the ilr transformed formation fraction fitted in the model takes a very large value, and the backtransformed formation fraction from parent Z to Z1 is practically unity. Here, the covariance matrix used for the calculation of confidence intervals is not returned as the model is overparameterised.

    A simplified model is obtained by removing the pathway to the sink.

    In the following, we use the parameterisation with formation fractions in order to be able to compare with the results in the FOCUS guidance, and as it makes it easier to use parameters obtained in a previous fit when adding a further metabolite.

    -
    Z.3 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    -               Z1 = mkinsub("SFO"), use_of_ff = "max")
    +
    Z.3 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    +               Z1 = mkinsub("SFO"), use_of_ff = "max")
    ## Successfully compiled differential equation model from auto-generated C code.
    -
    m.Z.3 <- mkinfit(Z.3, FOCUS_2006_Z_mkin, quiet = TRUE)
    -plot_sep(m.Z.3)
    +
    m.Z.3 <- mkinfit(Z.3, FOCUS_2006_Z_mkin, quiet = TRUE)
    +
    ## Warning in mkinfit(Z.3, FOCUS_2006_Z_mkin, quiet = TRUE): Observations with
    +## value of zero were removed from the data
    +
    plot_sep(m.Z.3)

    -
    summary(m.Z.3, data = FALSE)$bpar
    -
    ##      Estimate se_notrans t value     Pr(>t)    Lower   Upper
    -## Z0_0 97.01488   2.681772  36.176 2.3636e-25 91.52152 102.508
    -## k_Z0  2.23601   0.146861  15.225 2.2464e-15  1.95453   2.558
    -## k_Z1  0.48212   0.042687  11.294 3.0686e-12  0.40216   0.578
    +
    summary(m.Z.3, data = FALSE)$bpar
    +
    ##       Estimate se_notrans t value     Pr(>t)    Lower    Upper
    +## Z0_0  97.01488   2.597342  37.352 2.0106e-24 91.67597 102.3538
    +## k_Z0   2.23601   0.146904  15.221 9.1477e-15  1.95354   2.5593
    +## k_Z1   0.48212   0.041727  11.554 4.8268e-12  0.40355   0.5760
    +## sigma  4.80411   0.620208   7.746 1.6110e-08  3.52925   6.0790

    As there is only one transformation product for Z0 and no pathway to sink, the formation fraction is internally fixed to unity.

    Metabolites Z2 and Z3

    As suggested in the FOCUS report, the pathway to sink was removed for metabolite Z1 as well in the next step. While this step appears questionable on the basis of the above results, it is followed here for the purpose of comparison. Also, in the FOCUS report, it is assumed that there is additional empirical evidence that Z1 quickly and exclusively hydrolyses to Z2.

    -
    Z.5 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    -               Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    -               Z2 = mkinsub("SFO"), use_of_ff = "max")
    +
    Z.5 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    +               Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    +               Z2 = mkinsub("SFO"), use_of_ff = "max")
    ## Successfully compiled differential equation model from auto-generated C code.
    -
    m.Z.5 <- mkinfit(Z.5, FOCUS_2006_Z_mkin, quiet = TRUE)
    -plot_sep(m.Z.5)
    +
    m.Z.5 <- mkinfit(Z.5, FOCUS_2006_Z_mkin, quiet = TRUE)
    +
    ## Warning in mkinfit(Z.5, FOCUS_2006_Z_mkin, quiet = TRUE): Observations with
    +## value of zero were removed from the data
    +
    plot_sep(m.Z.5)

    Finally, metabolite Z3 is added to the model. We use the optimised differential equation parameter values from the previous fit in order to accelerate the optimization.

    -
    Z.FOCUS <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    -                   Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    -                   Z2 = mkinsub("SFO", "Z3"),
    -                   Z3 = mkinsub("SFO"),
    -                   use_of_ff = "max")
    +
    Z.FOCUS <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    +                   Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    +                   Z2 = mkinsub("SFO", "Z3"),
    +                   Z3 = mkinsub("SFO"),
    +                   use_of_ff = "max")
    ## Successfully compiled differential equation model from auto-generated C code.
    - -
    ## Warning in mkinfit(Z.FOCUS, FOCUS_2006_Z_mkin, parms.ini = m.Z.5$bparms.ode, : Optimisation by method Port did not converge:
    +
    +
    ## Warning in mkinfit(Z.FOCUS, FOCUS_2006_Z_mkin, parms.ini = m.Z.
    +## 5$bparms.ode, : Observations with value of zero were removed from the data
    +
    ## Warning in mkinfit(Z.FOCUS, FOCUS_2006_Z_mkin, parms.ini = m.Z.5$bparms.ode, : Optimisation did not converge:
     ## false convergence (8)
    -
    plot_sep(m.Z.FOCUS)
    +
    plot_sep(m.Z.FOCUS)

    -
    summary(m.Z.FOCUS, data = FALSE)$bpar
    +
    summary(m.Z.FOCUS, data = FALSE)$bpar
    ##             Estimate se_notrans t value     Pr(>t)     Lower      Upper
    -## Z0_0       96.837112   2.058861 47.0343 5.5877e-44 92.703779 100.970445
    -## k_Z0        2.215368   0.118098 18.7587 7.6563e-25  1.990525   2.465609
    -## k_Z1        0.478302   0.029289 16.3302 3.3408e-22  0.422977   0.540864
    -## k_Z2        0.451617   0.044214 10.2144 3.1133e-14  0.371034   0.549702
    -## k_Z3        0.058693   0.014296  4.1056 7.2924e-05  0.035994   0.095705
    -## f_Z2_to_Z3  0.471516   0.057057  8.2639 2.8156e-11  0.360381   0.585548
    -
    endpoints(m.Z.FOCUS)
    +## Z0_0 96.838619 1.994272 48.5584 4.0282e-42 92.826596 100.850642 +## k_Z0 2.215408 0.118459 18.7018 1.0415e-23 1.989468 2.467007 +## k_Z1 0.478300 0.028257 16.9267 6.2407e-22 0.424701 0.538663 +## k_Z2 0.451618 0.042138 10.7177 1.6308e-14 0.374327 0.544869 +## k_Z3 0.058693 0.015246 3.8498 1.7805e-04 0.034804 0.098981 +## f_Z2_to_Z3 0.471508 0.058352 8.0804 9.6647e-11 0.357725 0.588332 +## sigma 3.984431 0.383402 10.3923 4.5575e-14 3.213126 4.755736
    +
    endpoints(m.Z.FOCUS)
    ## $ff
     ##   Z2_Z3 Z2_sink 
    -## 0.47152 0.52848 
    +## 0.47151 0.52849 
     ## 
     ## $SFORB
     ## logical(0)
    @@ -213,9 +223,9 @@
     ## $distimes
     ##        DT50    DT90
     ## Z0  0.31288  1.0394
    -## Z1  1.44918  4.8141
    +## Z1  1.44919  4.8141
     ## Z2  1.53481  5.0985
    -## Z3 11.80973 39.2311
    +## Z3 11.80962 39.2307

    This fit corresponds to the final result chosen in Appendix 7 of the FOCUS report. Confidence intervals returned by mkin are based on internally transformed parameters, however.

    @@ -223,77 +233,116 @@ Using the SFORB model

    As the FOCUS report states, there is a certain tailing of the time course of metabolite Z3. Also, the time course of the parent compound is not fitted very well using the SFO model, as residues at a certain low level remain.

    Therefore, an additional model is offered here, using the single first-order reversible binding (SFORB) model for metabolite Z3. As expected, the \(\chi^2\) error level is lower for metabolite Z3 using this model and the graphical fit for Z3 is improved. However, the covariance matrix is not returned.

    -
    Z.mkin.1 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    -                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    -                    Z2 = mkinsub("SFO", "Z3"),
    -                    Z3 = mkinsub("SFORB"))
    +
    Z.mkin.1 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
    +                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    +                    Z2 = mkinsub("SFO", "Z3"),
    +                    Z3 = mkinsub("SFORB"))
    ## Successfully compiled differential equation model from auto-generated C code.
    -
    m.Z.mkin.1 <- mkinfit(Z.mkin.1, FOCUS_2006_Z_mkin, quiet = TRUE)
    -plot_sep(m.Z.mkin.1)
    +
    m.Z.mkin.1 <- mkinfit(Z.mkin.1, FOCUS_2006_Z_mkin, quiet = TRUE)
    +
    ## Warning in mkinfit(Z.mkin.1, FOCUS_2006_Z_mkin, quiet = TRUE): Observations
    +## with value of zero were removed from the data
    +
    plot_sep(m.Z.mkin.1)

    -
    summary(m.Z.mkin.1, data = FALSE)$cov.unscaled
    -
    ## Warning in summary.mkinfit(m.Z.mkin.1, data = FALSE): Could not estimate
    -## covariance matrix; singular system.
    -
    ## NULL
    +
    summary(m.Z.mkin.1, data = FALSE)$cov.unscaled
    +
    ##                            Z0_0 log_k_Z0_Z1 log_k_Z1_Z2 log_k_Z2_sink
    +## Z0_0                 3.8375e+00  5.4918e-03  3.0584e-02    1.2969e-01
    +## log_k_Z0_Z1          5.4918e-03  2.7613e-03 -1.8820e-04    2.6634e-04
    +## log_k_Z1_Z2          3.0584e-02 -1.8820e-04  3.3807e-03    3.2177e-03
    +## log_k_Z2_sink        1.2969e-01  2.6634e-04  3.2177e-03    3.4256e-02
    +## log_k_Z2_Z3_free    -2.4223e-02 -2.6169e-04 -1.1845e-03   -8.1134e-03
    +## log_k_Z3_free_sink  -6.5467e-02 -4.0815e-04 -3.2978e-03   -3.6010e-02
    +## log_k_Z3_free_bound -6.0658e-02 -4.4768e-04 -3.0588e-03   -3.9074e-02
    +## log_k_Z3_bound_free  4.7821e+00  5.5819e-03  1.0267e-01    1.1956e+00
    +## sigma               -1.4345e-08  8.6519e-11 -6.1861e-10   -4.7499e-10
    +##                     log_k_Z2_Z3_free log_k_Z3_free_sink
    +## Z0_0                     -2.4223e-02        -6.5467e-02
    +## log_k_Z0_Z1              -2.6169e-04        -4.0815e-04
    +## log_k_Z1_Z2              -1.1845e-03        -3.2978e-03
    +## log_k_Z2_sink            -8.1134e-03        -3.6010e-02
    +## log_k_Z2_Z3_free          1.5500e-02         2.1583e-02
    +## log_k_Z3_free_sink        2.1583e-02         7.5705e-02
    +## log_k_Z3_free_bound       2.5836e-02         1.1964e-01
    +## log_k_Z3_bound_free      -2.1303e-01        -9.0584e-01
    +## sigma                     5.8776e-10         1.0773e-09
    +##                     log_k_Z3_free_bound log_k_Z3_bound_free       sigma
    +## Z0_0                        -6.0658e-02          4.7821e+00 -1.4345e-08
    +## log_k_Z0_Z1                 -4.4768e-04          5.5819e-03  8.6519e-11
    +## log_k_Z1_Z2                 -3.0588e-03          1.0267e-01 -6.1861e-10
    +## log_k_Z2_sink               -3.9074e-02          1.1956e+00 -4.7499e-10
    +## log_k_Z2_Z3_free             2.5836e-02         -2.1303e-01  5.8776e-10
    +## log_k_Z3_free_sink           1.1964e-01         -9.0584e-01  1.0773e-09
    +## log_k_Z3_free_bound          6.5902e-01          4.2011e+00  2.1743e-09
    +## log_k_Z3_bound_free          4.2011e+00          3.6036e+08  7.2404e-02
    +## sigma                        2.1743e-09          7.2404e-02  1.4170e-01

    Therefore, a further stepwise model building is performed starting from the stage of parent and two metabolites, starting from the assumption that the model fit for the parent compound can be improved by using the SFORB model.

    -
    Z.mkin.3 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
    -                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    -                    Z2 = mkinsub("SFO"))
    +
    Z.mkin.3 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
    +                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    +                    Z2 = mkinsub("SFO"))
    ## Successfully compiled differential equation model from auto-generated C code.
    -
    m.Z.mkin.3 <- mkinfit(Z.mkin.3, FOCUS_2006_Z_mkin, quiet = TRUE)
    -plot_sep(m.Z.mkin.3)
    +
    m.Z.mkin.3 <- mkinfit(Z.mkin.3, FOCUS_2006_Z_mkin, quiet = TRUE)
    +
    ## Warning in mkinfit(Z.mkin.3, FOCUS_2006_Z_mkin, quiet = TRUE): Observations
    +## with value of zero were removed from the data
    +
    plot_sep(m.Z.mkin.3)

    This results in a much better representation of the behaviour of the parent compound Z0.

    Finally, Z3 is added as well. These models appear overparameterised (no covariance matrix returned) if the sink for Z1 is left in the models.

    -
    Z.mkin.4 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
    -                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    -                    Z2 = mkinsub("SFO", "Z3"),
    -                    Z3 = mkinsub("SFO"))
    +
    Z.mkin.4 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
    +                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    +                    Z2 = mkinsub("SFO", "Z3"),
    +                    Z3 = mkinsub("SFO"))
    ## Successfully compiled differential equation model from auto-generated C code.
    - + +
    ## Warning in mkinfit(Z.mkin.4, FOCUS_2006_Z_mkin, parms.ini = m.Z.mkin.
    +## 3$bparms.ode, : Observations with value of zero were removed from the data
    +
    plot_sep(m.Z.mkin.4)

    The error level of the fit, but especially of metabolite Z3, can be improved if the SFORB model is chosen for this metabolite, as this model is capable of representing the tailing of the metabolite decline phase.

    -
    Z.mkin.5 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
    -                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    -                    Z2 = mkinsub("SFO", "Z3"),
    -                    Z3 = mkinsub("SFORB"))
    +
    Z.mkin.5 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
    +                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
    +                    Z2 = mkinsub("SFO", "Z3"),
    +                    Z3 = mkinsub("SFORB"))
    ## Successfully compiled differential equation model from auto-generated C code.
    - + +
    ## Warning in mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin, parms.ini = m.Z.mkin.
    +## 4$bparms.ode[1:4], : Observations with value of zero were removed from the
    +## data
    +
    plot_sep(m.Z.mkin.5)

    The summary view of the backtransformed parameters shows that we get no confidence intervals due to overparameterisation. As the optimized is excessively small, it seems reasonable to fix it to zero.

    -
    m.Z.mkin.5a <- mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin,
    -                       parms.ini = c(m.Z.mkin.5$bparms.ode[1:7],
    -                                     k_Z3_bound_free = 0),
    -                       fixed_parms = "k_Z3_bound_free",
    -                       quiet = TRUE)
    -plot_sep(m.Z.mkin.5a)
    + +
    ## Warning in mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin, parms.ini = c(m.Z.mkin.
    +## 5$bparms.ode[1:7], : Observations with value of zero were removed from the
    +## data
    +
    plot_sep(m.Z.mkin.5a)

    As expected, the residual plots for Z0 and Z3 are more random than in the case of the all SFO model for which they were shown above. In conclusion, the model is proposed as the best-fit model for the dataset from Appendix 7 of the FOCUS report.

    A graphical representation of the confidence intervals can finally be obtained.

    -
    mkinparplot(m.Z.mkin.5a)
    +
    mkinparplot(m.Z.mkin.5a)

    The endpoints obtained with this model are

    -
    endpoints(m.Z.mkin.5a)
    +
    endpoints(m.Z.mkin.5a)
    ## $ff
     ##   Z0_free_Z1        Z1_Z2      Z2_sink   Z2_Z3_free Z3_free_sink 
     ##      1.00000      1.00000      0.46344      0.53656      1.00000 
     ## 
     ## $SFORB
     ##     Z0_b1     Z0_b2     Z3_b1     Z3_b2 
    -## 2.4471382 0.0075127 0.0800075 0.0000000 
    +## 2.4471355 0.0075125 0.0800068 0.0000000 
     ## 
     ## $distimes
     ##      DT50   DT90 DT50_Z0_b1 DT50_Z0_b2 DT50_Z3_b1 DT50_Z3_b2
    -## Z0 0.3043 1.1848    0.28325     92.264         NA         NA
    +## Z0 0.3043 1.1848    0.28325     92.266         NA         NA
     ## Z1 1.5148 5.0320         NA         NA         NA         NA
     ## Z2 1.6414 5.4526         NA         NA         NA         NA
    -## Z3     NA     NA         NA         NA     8.6635        Inf
    +## Z3 NA NA NA NA 8.6636 Inf

    It is clear the degradation rate of Z3 towards the end of the experiment is very low as DT50_Z3_b2 (the second Eigenvalue of the system of two differential equations representing the SFORB system for Z3, corresponding to the slower rate constant of the DFOP model) is reported to be infinity. However, this appears to be a feature of the data.

    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 53f2ce85..f371827f 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 90eab945..3dfb6477 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 f44737ad..c2fa5b46 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 98562168..95553b43 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 27e7eb52..8b69796f 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 236cdbfe..bac0a115 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 693c9c2c..5b6c127f 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 180f44f9..4916ee4d 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 a67e9c1d..7213dac1 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 80452f9f..292c0690 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 e6ce97cd..27c51525 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 12e5d522..0bcfca27 100644 --- a/docs/articles/web_only/NAFTA_examples.html +++ b/docs/articles/web_only/NAFTA_examples.html @@ -30,7 +30,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -88,7 +88,7 @@

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

    Johannes Ranke

    -

    2019-03-04

    +

    2019-04-10

    @@ -111,13 +111,11 @@

    Example on page 5, upper panel

    p5a <- nafta(NAFTA_SOP_Attachment[["p5a"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    ## 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(p5a)
    +
    plot(p5a)

    -
    print(p5a)
    +
    print(p5a)
    ## Sums of squares:
     ##       SFO      IORE      DFOP 
     ## 465.21753  56.27506  32.06401 
    @@ -128,28 +126,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)  Lower   Upper
    -## parent_0       95.8401 1.10e-21 92.121 99.5597
    -## k_parent_sink   0.0102 1.71e-12  0.009  0.0117
    +## parent_0       95.8401 4.67e-21 92.245 99.4357
    +## k_parent_sink   0.0102 3.92e-12  0.009  0.0117
    +## sigma           4.8230 3.81e-06  3.214  6.4318
     ## 
     ## $IORE
    -##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            1.01e+02 2.37e-26 9.89e+01 1.03e+02
    -## k__iore_parent_sink 1.54e-05 8.73e-02 3.48e-06 6.85e-05
    -## N_parent            2.57e+00 1.14e-11 2.22e+00 2.92e+00
    +##                     Estimate Pr(>t)    Lower    Upper
    +## parent_0            1.01e+02     NA 9.91e+01 1.02e+02
    +## k__iore_parent_sink 1.54e-05     NA 4.08e-06 5.84e-05
    +## N_parent            2.57e+00     NA 2.25e+00 2.89e+00
    +## sigma               1.68e+00     NA 1.12e+00 2.24e+00
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 9.99e+01 4.33e-27    NA    NA
    -## k1       2.67e-02 3.17e-05    NA    NA
    -## k2       2.16e-12 5.00e-01    NA    NA
    -## g        6.47e-01 2.13e-05    NA    NA
    +##          Estimate   Pr(>t)   Lower    Upper
    +## parent_0 9.99e+01 1.41e-26 98.8116 101.0810
    +## k1       2.67e-02 5.05e-06  0.0243   0.0295
    +## k2       3.41e-12 5.00e-01  0.0000      Inf
    +## g        6.47e-01 3.67e-06  0.6248   0.6677
    +## sigma    1.27e+00 8.91e-06  0.8395   1.6929
     ## 
     ## 
     ## DTx values:
     ##      DT50     DT90 DT50_rep
     ## SFO  67.7 2.25e+02 6.77e+01
     ## IORE 58.2 1.07e+03 3.22e+02
    -## DFOP 55.5 5.84e+11 3.21e+11
    +## DFOP 55.5 3.70e+11 2.03e+11
     ## 
     ## Representative half-life:
     ## [1] 321.5119
    @@ -157,14 +158,12 @@

    Example on page 5, lower panel

    -
    p5b <- nafta(NAFTA_SOP_Attachment[["p5b"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    p5b <- nafta(NAFTA_SOP_Attachment[["p5b"]])
    ## 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(p5b)
    +
    plot(p5b)

    -
    print(p5b)
    +
    print(p5b)
    ## Sums of squares:
     ##      SFO     IORE     DFOP 
     ## 94.81123 10.10936  7.55871 
    @@ -175,28 +174,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)    Lower    Upper
    -## parent_0        96.497 2.62e-25 94.77653 98.21774
    -## k_parent_sink    0.008 1.35e-14  0.00736  0.00871
    +## parent_0        96.497 2.32e-24 94.85271 98.14155
    +## k_parent_sink    0.008 3.42e-14  0.00737  0.00869
    +## sigma            2.295 1.22e-05  1.47976  3.11036
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            9.85e+01 1.02e-29 9.78e+01 9.93e+01
    -## k__iore_parent_sink 1.53e-04 1.15e-02 6.60e-05 3.56e-04
    -## N_parent            1.94e+00 8.18e-13 1.74e+00 2.14e+00
    +## parent_0            9.85e+01 1.17e-28 9.79e+01 9.92e+01
    +## k__iore_parent_sink 1.53e-04 6.50e-03 7.21e-05 3.26e-04
    +## N_parent            1.94e+00 5.88e-13 1.76e+00 2.12e+00
    +## sigma               7.49e-01 1.63e-05 4.82e-01 1.02e+00
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 9.84e+01 1.90e-28    NA    NA
    -## k1       1.55e-02 2.83e-03    NA    NA
    -## k2       8.17e-12 5.00e-01    NA    NA
    -## g        6.89e-01 1.31e-02    NA    NA
    +##          Estimate   Pr(>t)   Lower   Upper
    +## parent_0 9.84e+01 1.24e-27 97.8078 98.9187
    +## k1       1.55e-02 4.10e-04  0.0143  0.0167
    +## k2       1.09e-11 5.00e-01  0.0000     Inf
    +## g        6.89e-01 2.92e-03  0.6626  0.7142
    +## sigma    6.48e-01 2.38e-05  0.4147  0.8813
     ## 
     ## 
     ## DTx values:
     ##      DT50     DT90 DT50_rep
     ## SFO  86.6 2.88e+02 8.66e+01
     ## IORE 85.5 7.17e+02 2.16e+02
    -## DFOP 83.6 1.39e+11 8.48e+10
    +## DFOP 83.6 1.04e+11 6.34e+10
     ## 
     ## Representative half-life:
     ## [1] 215.8655
    @@ -204,14 +206,12 @@

    Example on page 6

    -
    p6 <- nafta(NAFTA_SOP_Attachment[["p6"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    p6 <- nafta(NAFTA_SOP_Attachment[["p6"]])
    ## 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(p6)
    +
    plot(p6)

    -
    print(p6)
    +
    print(p6)
    ## Sums of squares:
     ##       SFO      IORE      DFOP 
     ## 188.45361  51.00699  42.46931 
    @@ -222,28 +222,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)   Lower   Upper
    -## parent_0       94.7759 1.25e-24 92.2558 97.2960
    -## k_parent_sink   0.0179 2.35e-16  0.0166  0.0194
    +## parent_0       94.7759 7.29e-24 92.3479 97.2039
    +## k_parent_sink   0.0179 8.02e-16  0.0166  0.0194
    +## sigma           3.0696 3.81e-06  2.0456  4.0936
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            97.12446 5.62e-27 95.49343 98.75549
    -## k__iore_parent_sink  0.00252 3.54e-03  0.00126  0.00502
    -## N_parent             1.49587 6.13e-13  1.32380  1.66794
    +## parent_0            97.12446 2.63e-26 95.62461 98.62431
    +## k__iore_parent_sink  0.00252 1.95e-03  0.00134  0.00472
    +## N_parent             1.49587 4.07e-13  1.33896  1.65279
    +## sigma                1.59698 5.05e-06  1.06169  2.13227
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 9.66e+01 4.17e-26    NA    NA
    -## k1       2.55e-02 2.12e-05    NA    NA
    -## k2       3.09e-11 5.00e-01    NA    NA
    -## g        8.61e-01 2.10e-05    NA    NA
    +##          Estimate   Pr(>t)   Lower   Upper
    +## parent_0 9.66e+01 1.57e-25 95.3476 97.8979
    +## k1       2.55e-02 7.33e-06  0.0233  0.0278
    +## k2       3.88e-11 5.00e-01  0.0000     Inf
    +## g        8.61e-01 7.55e-06  0.8314  0.8867
    +## sigma    1.46e+00 6.93e-06  0.9661  1.9483
     ## 
     ## 
     ## DTx values:
     ##      DT50     DT90 DT50_rep
     ## SFO  38.6 1.28e+02 3.86e+01
     ## IORE 34.0 1.77e+02 5.32e+01
    -## DFOP 34.1 1.06e+10 2.24e+10
    +## DFOP 34.1 8.42e+09 1.79e+10
     ## 
     ## Representative half-life:
     ## [1] 53.16582
    @@ -251,14 +254,12 @@

    Example on page 7

    -
    p7 <- nafta(NAFTA_SOP_Attachment[["p7"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    p7 <- nafta(NAFTA_SOP_Attachment[["p7"]])
    ## 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(p7)
    +
    plot(p7)

    -
    print(p7)
    +
    print(p7)
    ## Sums of squares:
     ##      SFO     IORE     DFOP 
     ## 3661.661 3195.030 3174.145 
    @@ -269,28 +270,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)    Lower    Upper
    -## parent_0      96.41796 1.52e-53 93.29554 99.54038
    -## k_parent_sink  0.00735 3.59e-21  0.00641  0.00842
    +## parent_0      96.41796 4.80e-53 93.32245 99.51347
    +## k_parent_sink  0.00735 7.64e-21  0.00641  0.00843
    +## sigma          7.94557 1.83e-15  6.46713  9.42401
     ## 
     ## $IORE
    -##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            9.92e+01 7.33e-49 9.53e+01 1.03e+02
    -## k__iore_parent_sink 1.60e-05 3.47e-01 9.98e-08 2.57e-03
    -## N_parent            2.45e+00 6.14e-05 1.26e+00 3.63e+00
    +##                     Estimate Pr(>t)    Lower    Upper
    +## parent_0            9.92e+01     NA 9.55e+01 1.03e+02
    +## k__iore_parent_sink 1.60e-05     NA 1.45e-07 1.77e-03
    +## N_parent            2.45e+00     NA 1.35e+00 3.54e+00
    +## sigma               7.42e+00     NA 6.04e+00 8.80e+00
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 9.89e+01 8.13e-48    NA    NA
    -## k1       1.81e-02 2.20e-01    NA    NA
    -## k2       3.28e-10 5.00e-01    NA    NA
    -## g        6.06e-01 2.60e-01    NA    NA
    +##          Estimate   Pr(>t)   Lower    Upper
    +## parent_0 9.89e+01 9.44e-49 95.4640 102.2573
    +## k1       1.81e-02 1.75e-01  0.0116   0.0281
    +## k2       2.57e-10 5.00e-01  0.0000      Inf
    +## g        6.06e-01 2.19e-01  0.4826   0.7178
    +## sigma    7.40e+00 2.97e-15  6.0201   8.7754
     ## 
     ## 
     ## DTx values:
     ##      DT50     DT90 DT50_rep
     ## SFO  94.3 3.13e+02 9.43e+01
     ## IORE 96.7 1.51e+03 4.55e+02
    -## DFOP 96.4 4.18e+09 2.11e+09
    +## DFOP 96.4 5.32e+09 2.69e+09
     ## 
     ## Representative half-life:
     ## [1] 454.5528
    @@ -303,7 +307,7 @@

    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))
    +
    p8 <- nafta(NAFTA_SOP_Attachment[["p8"]], parms.ini = c(k__iore_parent_sink = 1e-3))
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
     ## singular system.
     
    @@ -311,9 +315,9 @@
     ## singular system.
    ## 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,12 +331,14 @@
     ## 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
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            9.77e+01 1.05e-35 9.44e+01 1.01e+02
    -## k__iore_parent_sink 6.14e-05 2.76e-02 2.21e-05 1.71e-04
    -## N_parent            2.27e+00 6.00e-19 2.02e+00 2.53e+00
    +## parent_0            9.77e+01 7.03e-35 9.44e+01 1.01e+02
    +## k__iore_parent_sink 6.14e-05 3.20e-02 2.12e-05 1.78e-04
    +## N_parent            2.27e+00 4.23e-18 2.00e+00 2.54e+00
    +## sigma               3.52e+00 5.36e-10 2.67e+00 4.36e+00
     ## 
     ## $DFOP
     ##                     Estimate Pr(>t) Lower Upper
    @@ -341,6 +347,7 @@
     ## k1                   0.02500     NA    NA    NA
     ## k2                   0.00273     NA    NA    NA
     ## g                    0.58835     NA    NA    NA
    +## sigma                3.90001     NA    NA    NA
     ## 
     ## 
     ## DTx values:
    @@ -359,14 +366,12 @@
     

    Example on page 9, upper panel

    -
    p9a <- nafta(NAFTA_SOP_Attachment[["p9a"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    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 
    @@ -377,28 +382,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)   Lower   Upper
    -## parent_0       88.1933 1.12e-12 79.7671 96.6195
    -## k_parent_sink   0.0409 9.50e-08  0.0326  0.0513
    +## parent_0       88.1933 3.06e-12 79.9447 96.4419
    +## k_parent_sink   0.0409 2.07e-07  0.0324  0.0516
    +## sigma           7.2429 3.92e-05  4.4768 10.0090
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            9.89e+01 5.16e-17 9.50e+01 1.03e+02
    -## k__iore_parent_sink 1.93e-05 1.48e-01 2.65e-06 1.40e-04
    -## N_parent            2.91e+00 3.74e-09 2.43e+00 3.39e+00
    +## parent_0            9.89e+01 1.12e-16 9.54e+01 1.02e+02
    +## k__iore_parent_sink 1.93e-05 1.13e-01 3.49e-06 1.06e-04
    +## N_parent            2.91e+00 1.45e-09 2.50e+00 3.32e+00
    +## sigma               2.35e+00 5.31e-05 1.45e+00 3.26e+00
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 9.85e+01 1.31e-21    NA    NA
    -## k1       1.38e-01 3.63e-09    NA    NA
    -## k2       6.02e-13 5.00e-01    NA    NA
    -## g        6.52e-01 1.50e-10    NA    NA
    +##          Estimate   Pr(>t)  Lower  Upper
    +## parent_0 9.85e+01 2.54e-20 97.390 99.672
    +## k1       1.38e-01 3.52e-05  0.131  0.146
    +## k2       5.75e-13 5.00e-01  0.000    Inf
    +## g        6.52e-01 8.13e-06  0.642  0.661
    +## sigma    7.88e-01 6.13e-02  0.481  1.095
     ## 
     ## 
     ## DTx values:
     ##      DT50     DT90 DT50_rep
     ## SFO  16.9 5.63e+01 1.69e+01
     ## IORE 11.6 3.37e+02 1.01e+02
    -## DFOP 10.5 2.07e+12 1.15e+12
    +## DFOP 10.5 2.17e+12 1.21e+12
     ## 
     ## Representative half-life:
     ## [1] 101.4264
    @@ -407,14 +415,17 @@

    Example on page 9, lower panel

    -
    p9b <- nafta(NAFTA_SOP_Attachment[["p9b"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    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
    +
    ## 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(p9b)
    +
    plot(p9b)

    -
    print(p9b)
    +
    print(p9b)
    ## Sums of squares:
     ##      SFO     IORE     DFOP 
     ## 35.64867 23.22334 35.64867 
    @@ -424,22 +435,25 @@
     ## 
     ## Parameters:
     ## $SFO
    -##               Estimate   Pr(>t)   Lower  Upper
    -## parent_0       94.7123 2.21e-20 93.0673 96.357
    -## k_parent_sink   0.0389 1.48e-14  0.0369  0.041
    +##               Estimate   Pr(>t)  Lower   Upper
    +## parent_0       94.7123 2.15e-19 93.178 96.2464
    +## k_parent_sink   0.0389 4.47e-14  0.037  0.0408
    +## sigma           1.5957 1.28e-04  0.932  2.2595
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)   Lower  Upper
    -## parent_0              93.863 2.91e-19 92.2996 95.426
    -## k__iore_parent_sink    0.127 2.73e-02  0.0457  0.354
    -## N_parent               0.711 3.13e-05  0.4605  0.961
    +## parent_0              93.863 2.32e-18 92.4565 95.269
    +## k__iore_parent_sink    0.127 1.85e-02  0.0504  0.321
    +## N_parent               0.711 1.88e-05  0.4843  0.937
    +## sigma                  1.288 1.76e-04  0.7456  1.830
     ## 
     ## $DFOP
    -##          Estimate Pr(>t) Lower Upper
    -## parent_0  94.7123     NA    NA    NA
    -## k1         0.0389     NA    NA    NA
    -## k2         0.0389     NA    NA    NA
    -## g          0.7742     NA    NA    NA
    +##          Estimate   Pr(>t)   Lower   Upper
    +## parent_0  94.7123 1.61e-16 93.1355 96.2891
    +## k1         0.0389      NaN  0.0316  0.0478
    +## k2         0.0389 1.13e-08  0.0203  0.0743
    +## g          0.7599      NaN      NA      NA
    +## sigma      1.5957 2.50e-04  0.9135  2.2779
     ## 
     ## 
     ## DTx values:
    @@ -455,14 +469,12 @@
     

    Example on page 10

    -
    p10 <- nafta(NAFTA_SOP_Attachment[["p10"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    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 
    @@ -473,21 +485,24 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)   Lower    Upper
    -## parent_0      101.7315 4.95e-11 90.9683 112.4947
    -## k_parent_sink   0.0495 3.40e-07  0.0393   0.0624
    +## parent_0      101.7315 6.42e-11 91.9259 111.5371
    +## k_parent_sink   0.0495 1.70e-07  0.0404   0.0607
    +## sigma           8.0152 1.28e-04  4.6813  11.3491
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)  Lower   Upper
    -## parent_0               96.86 2.71e-12 89.884 103.826
    -## k__iore_parent_sink     2.96 1.31e-01  0.461  19.020
    -## N_parent                0.00 5.00e-01 -0.473   0.473
    +## parent_0               96.86 3.32e-12 90.848 102.863
    +## k__iore_parent_sink     2.96 7.91e-02  0.687  12.761
    +## N_parent                0.00 5.00e-01 -0.372   0.372
    +## sigma                   4.90 1.77e-04  2.837   6.968
     ## 
     ## $DFOP
    -##          Estimate Pr(>t) Lower Upper
    -## parent_0 101.7315     NA    NA    NA
    -## k1         0.0495     NA    NA    NA
    -## k2         0.0495     NA    NA    NA
    -## g          0.6634     NA    NA    NA
    +##          Estimate   Pr(>t)   Lower    Upper
    +## parent_0 101.7315 1.41e-09 91.6534 111.8097
    +## k1         0.0495 6.41e-04  0.0303   0.0809
    +## k2         0.0495 1.66e-02  0.0201   0.1219
    +## g          0.6634 5.00e-01  0.0000   1.0000
    +## sigma      8.0152 2.50e-04  4.5886  11.4418
     ## 
     ## 
     ## DTx values:
    @@ -507,14 +522,12 @@
     

    Example on page 11

    -
    p11 <- nafta(NAFTA_SOP_Attachment[["p11"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    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 
    @@ -525,28 +538,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)    Lower    Upper
    -## parent_0      96.15820 1.56e-13 89.91373 1.02e+02
    -## k_parent_sink  0.00321 5.27e-05  0.00218 4.71e-03
    +## parent_0      96.15820 4.83e-13 90.24934 1.02e+02
    +## k_parent_sink  0.00321 4.71e-05  0.00222 4.64e-03
    +## sigma          6.43473 1.28e-04  3.75822 9.11e+00
     ## 
     ## $IORE
     ##                     Estimate Pr(>t)    Lower    Upper
    -## parent_0            1.05e+02     NA 9.80e+01 1.11e+02
    -## k__iore_parent_sink 3.11e-17     NA 6.88e-25 1.41e-09
    -## N_parent            8.36e+00     NA 4.40e+00 1.23e+01
    +## parent_0            1.05e+02     NA 9.90e+01 1.10e+02
    +## k__iore_parent_sink 3.11e-17     NA 1.35e-20 7.18e-14
    +## N_parent            8.36e+00     NA 6.62e+00 1.01e+01
    +## sigma               3.82e+00     NA 2.21e+00 5.44e+00
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 1.05e+02 7.50e-13    NA    NA
    -## k1       4.41e-02 3.34e-02    NA    NA
    -## k2       7.25e-13 5.00e-01    NA    NA
    -## g        3.22e-01 7.87e-03    NA    NA
    +##          Estimate   Pr(>t)    Lower    Upper
    +## parent_0 1.05e+02 9.47e-13  99.9990 109.1224
    +## k1       4.41e-02 5.95e-03   0.0296   0.0658
    +## k2       9.20e-13 5.00e-01   0.0000      Inf
    +## g        3.22e-01 1.45e-03   0.2814   0.3650
    +## sigma    3.22e+00 3.52e-04   1.8410   4.5906
     ## 
     ## 
     ## DTx values:
     ##          DT50     DT90 DT50_rep
     ## SFO  2.16e+02 7.18e+02 2.16e+02
     ## IORE 9.73e+02 1.37e+08 4.11e+07
    -## DFOP 4.21e+11 2.64e+12 9.56e+11
    +## DFOP 3.31e+11 2.08e+12 7.53e+11
     ## 
     ## Representative half-life:
     ## [1] 41148169
    @@ -560,9 +576,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 estimate covariance matrix;
     ## singular system.
    +
    ## 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
    +
    ## 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(p12a)
    @@ -578,21 +599,24 @@ ## Parameters: ## $SFO ## Estimate Pr(>t) Lower Upper -## parent_0 100.521 5.61e-12 91.687 109.355 -## k_parent_sink 0.124 7.24e-08 0.102 0.152 +## parent_0 100.521 8.75e-12 92.461 108.581 +## k_parent_sink 0.124 3.61e-08 0.104 0.148 +## sigma 7.048 1.28e-04 4.116 9.980 ## ## $IORE -## Estimate Pr(>t) Lower Upper -## parent_0 96.823 1.24e-13 91.5691 102.078 -## k__iore_parent_sink 2.436 3.89e-02 0.7854 7.556 -## N_parent 0.263 3.64e-02 -0.0288 0.554 +## Estimate Pr(>t) Lower Upper +## parent_0 96.823 NA NA NA +## k__iore_parent_sink 2.436 NA NA NA +## N_parent 0.263 NA NA NA +## sigma 3.965 NA NA NA ## ## $DFOP -## Estimate Pr(>t) Lower Upper -## parent_0 100.521 NA NA NA -## k1 0.124 NA NA NA -## k2 0.124 NA NA NA -## g 0.877 NA NA NA +## Estimate Pr(>t) Lower Upper +## parent_0 100.521 2.74e-10 92.2366 108.805 +## k1 0.124 5.43e-06 0.0959 0.161 +## k2 0.124 6.45e-02 0.0315 0.490 +## g 0.880 NaN NA NA +## sigma 7.048 2.50e-04 4.0349 10.061 ## ## ## DTx values: @@ -608,13 +632,19 @@

    Example on page 12, lower panel

    p12b <- nafta(NAFTA_SOP_Attachment[["p12b"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    ## 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
    +
    ## Warning in sqrt(diag(covar_notrans)): NaNs wurden erzeugt
    +
    ## Warning in pt(abs(tval), rdf, lower.tail = FALSE): 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(p12b)
    +
    plot(p12b)

    -
    print(p12b)
    +
    print(p12b)
    ## Sums of squares:
     ##      SFO     IORE     DFOP 
     ## 58.90242 19.06353 58.90242 
    @@ -624,22 +654,25 @@
     ## 
     ## Parameters:
     ## $SFO
    -##               Estimate   Pr(>t)   Lower    Upper
    -## parent_0       97.6840 5.36e-05 86.3205 109.0475
    -## k_parent_sink   0.0589 9.87e-04  0.0432   0.0803
    +##               Estimate  Pr(>t)   Lower    Upper
    +## parent_0       97.6840 0.00039 85.9388 109.4292
    +## k_parent_sink   0.0589 0.00261  0.0431   0.0805
    +## sigma           3.4323 0.04356 -1.2377   8.1023
     ## 
     ## $IORE
    -##                     Estimate   Pr(>t)   Lower  Upper
    -## parent_0              95.523 0.000386 84.0963 106.95
    -## k__iore_parent_sink    0.333 0.170886  0.0103  10.80
    -## N_parent               0.568 0.054881 -0.3161   1.45
    +##                     Estimate Pr(>t)     Lower  Upper
    +## parent_0              95.523 0.0055 74.539157 116.51
    +## k__iore_parent_sink    0.333 0.1433  0.000717 154.57
    +## N_parent               0.568 0.0677 -0.989464   2.13
    +## sigma                  1.953 0.0975 -5.893100   9.80
     ## 
     ## $DFOP
     ##          Estimate Pr(>t) Lower Upper
    -## parent_0  97.6840     NA    NA    NA
    -## k1         0.0589     NA    NA    NA
    -## k2         0.0589     NA    NA    NA
    -## g          0.6902     NA    NA    NA
    +## parent_0  97.6840    NaN   NaN   NaN
    +## k1         0.0589    NaN    NA    NA
    +## k2         0.0589    NaN    NA    NA
    +## g          0.8275    NaN    NA    NA
    +## sigma      3.4323    NaN   NaN   NaN
     ## 
     ## 
     ## DTx values:
    @@ -654,14 +687,12 @@
     

    Example on page 13

    -
    p13 <- nafta(NAFTA_SOP_Attachment[["p13"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    p13 <- nafta(NAFTA_SOP_Attachment[["p13"]])
    ## 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 
    @@ -671,22 +702,25 @@
     ## 
     ## Parameters:
     ## $SFO
    -##               Estimate   Pr(>t)   Lower    Upper
    -## parent_0      92.73500 1.45e-17 89.3891 96.08094
    -## k_parent_sink  0.00258 2.63e-09  0.0022  0.00303
    +##               Estimate   Pr(>t)    Lower    Upper
    +## parent_0      92.73500 5.99e-17 89.61936 95.85065
    +## k_parent_sink  0.00258 2.42e-09  0.00223  0.00299
    +## sigma          3.41172 7.07e-05  2.05455  4.76888
     ## 
     ## $IORE
    -##                     Estimate   Pr(>t)    Lower Upper
    -## parent_0             91.6016 2.93e-16 88.08711 95.12
    -## k__iore_parent_sink   0.0396 2.81e-01  0.00102  1.53
    -## N_parent              0.3541 1.97e-01 -0.51943  1.23
    +##                     Estimate   Pr(>t)    Lower  Upper
    +## parent_0             91.6016 6.34e-16 88.53086 94.672
    +## k__iore_parent_sink   0.0396 2.36e-01  0.00207  0.759
    +## N_parent              0.3541 1.46e-01 -0.35153  1.060
    +## sigma                 3.0811 9.64e-05  1.84296  4.319
     ## 
     ## $DFOP
    -##          Estimate Pr(>t) Lower Upper
    -## parent_0 92.73500     NA    NA    NA
    -## k1        0.00258     NA    NA    NA
    -## k2        0.00258     NA    NA    NA
    -## g         0.00442     NA    NA    NA
    +##          Estimate   Pr(>t)    Lower    Upper
    +## parent_0 92.73500 9.25e-15 8.95e+01 9.59e+01
    +## k1        0.00258 4.28e-01 1.38e-08 4.82e+02
    +## k2        0.00258 3.69e-08 2.20e-03 3.03e-03
    +## g         0.00442 5.00e-01 0.00e+00 1.00e+00
    +## sigma     3.41172 1.35e-04 2.02e+00 4.80e+00
     ## 
     ## 
     ## DTx values:
    @@ -702,14 +736,16 @@
     

    DT50 not observed in the study and DFOP problems in PestDF

    -
    p14 <- nafta(NAFTA_SOP_Attachment[["p14"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    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 
    @@ -720,28 +756,31 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)    Lower    Upper
    -## parent_0      99.47124 1.71e-31 98.37313 1.01e+02
    -## k_parent_sink  0.00279 2.22e-15  0.00255 3.05e-03
    +## parent_0      99.47124 2.06e-30 98.42254 1.01e+02
    +## k_parent_sink  0.00279 3.75e-15  0.00256 3.04e-03
    +## sigma          1.55616 3.81e-06  1.03704 2.08e+00
     ## 
     ## $IORE
    -##                     Estimate Pr(>t)    Lower    Upper
    -## parent_0            1.00e+02     NA 9.93e+01 1.01e+02
    -## k__iore_parent_sink 9.44e-08     NA 6.81e-11 1.31e-04
    -## N_parent            3.31e+00     NA 1.69e+00 4.93e+00
    +##                     Estimate Pr(>t) Lower Upper
    +## parent_0            1.00e+02     NA   NaN   NaN
    +## k__iore_parent_sink 9.44e-08     NA   NaN   NaN
    +## N_parent            3.31e+00     NA   NaN   NaN
    +## sigma               1.20e+00     NA 0.796   1.6
     ## 
     ## $DFOP
    -##          Estimate   Pr(>t) Lower Upper
    -## parent_0 1.00e+02 2.70e-28    NA    NA
    -## k1       9.53e-03 3.39e-01    NA    NA
    -## k2       9.19e-12 5.00e-01    NA    NA
    -## g        3.98e-01 3.92e-01    NA    NA
    +##          Estimate   Pr(>t)    Lower    Upper
    +## parent_0 1.00e+02 2.96e-28 99.40280 101.2768
    +## k1       9.53e-03 1.20e-01  0.00638   0.0143
    +## k2       6.17e-12 5.00e-01  0.00000      Inf
    +## g        3.98e-01 2.19e-01  0.30481   0.4998
    +## sigma    1.17e+00 7.68e-06  0.77406   1.5610
     ## 
     ## 
     ## DTx values:
     ##          DT50     DT90 DT50_rep
     ## SFO  2.48e+02 8.25e+02 2.48e+02
     ## IORE 4.34e+02 2.22e+04 6.70e+03
    -## DFOP 2.02e+10 1.95e+11 7.54e+10
    +## DFOP 3.00e+10 2.91e+11 1.12e+11
     ## 
     ## Representative half-life:
     ## [1] 6697.437
    @@ -750,14 +789,17 @@

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

    -
    p15a <- nafta(NAFTA_SOP_Attachment[["p15a"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    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
    +
    ## 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(p15a)
    +
    plot(p15a)

    -
    print(p15a)
    +
    print(p15a)
    ## Sums of squares:
     ##      SFO     IORE     DFOP 
     ## 245.5248 135.0132 245.5248 
    @@ -767,22 +809,25 @@
     ## 
     ## Parameters:
     ## $SFO
    -##               Estimate   Pr(>t)    Lower    Upper
    -## parent_0      97.96751 4.98e-16 94.03829 101.8967
    -## k_parent_sink  0.00952 5.24e-09  0.00813   0.0112
    +##               Estimate   Pr(>t)    Lower   Upper
    +## parent_0      97.96751 2.00e-15 94.32049 101.615
    +## k_parent_sink  0.00952 4.93e-09  0.00824   0.011
    +## sigma          4.18778 1.28e-04  2.44588   5.930
     ## 
     ## $IORE
    -##                     Estimate   Pr(>t)   Lower  Upper
    -## parent_0              95.874 8.30e-16 92.5802 99.167
    -## k__iore_parent_sink    0.629 2.39e-01  0.0316 12.519
    -## N_parent               0.000 5.00e-01 -0.7219  0.722
    +##                     Estimate   Pr(>t)  Lower  Upper
    +## parent_0              95.874 2.94e-15 92.937 98.811
    +## k__iore_parent_sink    0.629 2.11e-01  0.044  8.982
    +## N_parent               0.000 5.00e-01 -0.642  0.642
    +## sigma                  3.105 1.78e-04  1.795  4.416
     ## 
     ## $DFOP
    -##          Estimate Pr(>t) Lower Upper
    -## parent_0 97.96752     NA    NA    NA
    -## k1        0.00952     NA    NA    NA
    -## k2        0.00952     NA    NA    NA
    -## g         0.17247     NA    NA    NA
    +##          Estimate   Pr(>t)    Lower    Upper
    +## parent_0 97.96751 2.85e-13 94.21913 101.7159
    +## k1        0.00952 5.68e-02  0.00262   0.0347
    +## k2        0.00952 1.52e-04  0.00639   0.0142
    +## g         0.22357      NaN       NA       NA
    +## sigma     4.18778 2.50e-04  2.39747   5.9781
     ## 
     ## 
     ## DTx values:
    @@ -793,14 +838,12 @@
     ## 
     ## Representative half-life:
     ## [1] 41.32749
    -
    p15b <- nafta(NAFTA_SOP_Attachment[["p15b"]])
    -
    ## Warning in summary.mkinfit(x): Could not estimate covariance matrix;
    -## singular system.
    +
    p15b <- nafta(NAFTA_SOP_Attachment[["p15b"]])
    ## 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 
    @@ -811,21 +854,24 @@
     ## Parameters:
     ## $SFO
     ##               Estimate   Pr(>t)    Lower    Upper
    -## parent_0      1.01e+02 4.99e-18 98.12761 1.04e+02
    -## k_parent_sink 4.86e-03 1.76e-10  0.00432 5.46e-03
    +## parent_0      1.01e+02 3.06e-17 98.31594 1.03e+02
    +## k_parent_sink 4.86e-03 2.48e-10  0.00435 5.42e-03
    +## sigma         2.76e+00 1.28e-04  1.61402 3.91e+00
     ## 
     ## $IORE
    -##                     Estimate   Pr(>t)    Lower Upper
    -## parent_0               99.83 4.49e-17 97.19753 102.5
    -## k__iore_parent_sink     0.38 3.41e-01  0.00206  70.0
    -## N_parent                0.00 5.00e-01 -1.20105   1.2
    +##                     Estimate   Pr(>t)    Lower  Upper
    +## parent_0               99.83 1.81e-16 97.51349 102.14
    +## k__iore_parent_sink     0.38 3.22e-01  0.00352  41.05
    +## N_parent                0.00 5.00e-01 -1.07695   1.08
    +## sigma                   2.21 2.57e-04  1.23245   3.19
     ## 
     ## $DFOP
    -##          Estimate Pr(>t) Lower Upper
    -## parent_0 1.01e+02     NA    NA    NA
    -## k1       4.86e-03     NA    NA    NA
    -## k2       4.86e-03     NA    NA    NA
    -## g        1.50e-01     NA    NA    NA
    +##          Estimate Pr(>t)    Lower    Upper
    +## parent_0 1.01e+02     NA 9.82e+01 1.04e+02
    +## k1       4.86e-03     NA 6.49e-04 3.64e-02
    +## k2       4.86e-03     NA 3.36e-03 7.03e-03
    +## g        1.50e-01     NA 0.00e+00 1.00e+00
    +## sigma    2.76e+00     NA 1.58e+00 3.94e+00
     ## 
     ## 
     ## DTx values:
    @@ -841,14 +887,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 
    @@ -858,22 +904,25 @@
     ## 
     ## Parameters:
     ## $SFO
    -##               Estimate   Pr(>t)  Lower  Upper
    -## parent_0        71.953 3.92e-14 61.087 82.819
    -## k_parent_sink    0.159 2.27e-06  0.111  0.229
    +##               Estimate   Pr(>t)  Lower Upper
    +## parent_0        71.953 2.33e-13 60.509 83.40
    +## k_parent_sink    0.159 4.86e-05  0.102  0.25
    +## sigma           11.302 1.25e-08  8.308 14.30
     ## 
     ## $IORE
     ##                     Estimate   Pr(>t)    Lower    Upper
    -## parent_0            8.74e+01 1.74e-16 7.71e+01 97.70701
    -## k__iore_parent_sink 4.55e-04 2.28e-01 3.01e-05  0.00688
    -## N_parent            2.70e+00 1.87e-08 1.97e+00  3.42611
    +## parent_0            8.74e+01 2.48e-16 7.72e+01 97.52972
    +## k__iore_parent_sink 4.55e-04 2.16e-01 3.48e-05  0.00595
    +## N_parent            2.70e+00 1.21e-08 1.99e+00  3.40046
    +## sigma               8.29e+00 1.61e-08 6.09e+00 10.49062
     ## 
     ## $DFOP
    -##          Estimate Pr(>t)   Lower  Upper
    -## parent_0  88.5333     NA 79.3673 97.699
    -## k1        18.5562     NA  0.0000    Inf
    -## k2         0.0776     NA  0.0471  0.128
    -## g          0.4733     NA  0.3138  0.639
    +##          Estimate   Pr(>t)   Lower  Upper
    +## parent_0  88.5333 7.40e-18 79.9836 97.083
    +## k1        18.6317 5.00e-01  0.0000    Inf
    +## k2         0.0776 1.41e-05  0.0518  0.116
    +## g          0.4733 1.41e-09  0.3674  0.582
    +## sigma      7.1902 2.11e-08  5.2785  9.102
     ## 
     ## 
     ## DTx values:
    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 df60b257..5858c8f1 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 02975183..f0077768 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/p5a-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png
    index 3b39d9fa..0f01d16d 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/p9a-1.png b/docs/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png
    index 866f1523..3ef2018d 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 7f99d9cd..fe37b65c 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
    new file mode 100644
    index 00000000..403cb1db
    --- /dev/null
    +++ b/docs/articles/web_only/benchmarks.html
    @@ -0,0 +1,292 @@
    +
    +
    +
    +
    +
    +
    +
    +Benchmark timings for mkin on various systems • mkin
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +    
    +
    + + + +
    +
    + + + + +
    +

    +Systems

    +

    Each system is characterized by its CPU type, the operating system type and the mkin version.

    +
    cpu_model <- benchmarkme::get_cpu()$model_name
    +operating_system <- Sys.info()[["sysname"]]
    +mkin_version <- as.character(packageVersion("mkin"))
    +system_string <- paste0(operating_system, ", ", cpu_model, ", mkin version ", mkin_version)
    +load("~/git/mkin/inst/benchmark_data/mkin_benchmarks.rda")
    +mkin_benchmarks[system_string, c("CPU", "OS", "mkin")] <- c(cpu_model, operating_system, mkin_version)
    +
    +if (mkin_version > "0.9.48.1") {
    +  mmkin_bench <- function(models, datasets, error_model = "const") mmkin(models, datasets, error_model = error_model, cores = 1, quiet = TRUE)
    +} else {
    +  mmkin_bench <- function(models, datasets, error_model = NULL) mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)
    +}
    +
    # Parent only
    +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"))
    +
    ## Successfully compiled differential equation model from auto-generated C code.
    + +
    ## Successfully compiled differential equation model from auto-generated C code.
    + +
    ## 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
    +
    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
    +
    +## 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
    +
    # 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
    +##                                                                        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
    +##                                                                         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
    +##                                                                        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 6.303
    +##                                                                         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 21.837
    +##                                                                        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.487
    +##                                                                         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 14.162
    +##                                                                        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.021
    +##                                                                        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.657
    +##                                                                        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.523
    +##                                                                        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.72
    +##                                                                         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  8.364
    +##                                                                       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.623
    +##                                                                        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.95
    +
    save(mkin_benchmarks, file = "~/git/mkin/inst/benchmark_data/mkin_benchmarks.rda")
    +
    +
    + + + +
    + + +
    + +
    +

    Site built with pkgdown 1.3.0.9000.

    +
    +
    +
    + + + + + diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html index 269b1098..597b7c55 100644 --- a/docs/articles/web_only/compiled_models.html +++ b/docs/articles/web_only/compiled_models.html @@ -30,7 +30,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -88,7 +88,7 @@

    Performance benefit by using compiled model definitions in mkin

    Johannes Ranke

    -

    2019-03-04

    +

    2019-04-10

    @@ -125,49 +125,103 @@ factor_SFO_SFO <- round(b.1["1", "relative"]) } else { factor_SFO_SFO <- NA - print("R package benchmark is not available") + print("R package rbenchmark is not available") }
    ## Lade nötiges Paket: rbenchmark
    +
    ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve",
    +## use_compiled = FALSE, : Observations with value of zero were removed from
    +## the data
    +
    ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve", quiet
    +## = TRUE): Observations with value of zero were removed from the data
    +
    ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve",
    +## use_compiled = FALSE, : Observations with value of zero were removed from
    +## the data
    +
    +## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve",
    +## use_compiled = FALSE, : Observations with value of zero were removed from
    +## the data
    +
    +## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve",
    +## use_compiled = FALSE, : Observations with value of zero were removed from
    +## the data
    +
    ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    +## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    +## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve", quiet
    +## = TRUE): Observations with value of zero were removed from the data
    +
    +## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve", quiet
    +## = TRUE): Observations with value of zero were removed from the data
    +
    +## 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   2.310    1.000     2.308        0
    -## 1 deSolve, not compiled            3  17.509    7.580    17.500        0
    -## 2      Eigenvalue based            3   2.859    1.238     2.858        0
    +## 3     deSolve, compiled            3   3.215    1.000     3.213        0
    +## 1 deSolve, not compiled            3  42.468   13.209    42.445        0
    +## 2      Eigenvalue based            3   4.666    1.451     4.663        0
     ##   user.child sys.child
     ## 3          0         0
     ## 1          0         0
     ## 2          0         0
    -

    We see that using the compiled model is by a factor of around 8 faster than using the R version with the default ode solver, and it is even faster than the Eigenvalue based solution implemented in R which does not need iterative solution of the ODEs.

    +

    We see that using the compiled model is by a factor of around 13 faster than using the R version with the default ode solver, and it is even faster than the Eigenvalue based solution implemented in R which does not need iterative solution of the ODEs.

    Model that can not be solved with Eigenvalues

    This evaluation is also taken from the example section of mkinfit.

    -
    if (require(rbenchmark)) {
    -  FOMC_SFO <- mkinmod(
    -    parent = mkinsub("FOMC", "m1"),
    -    m1 = mkinsub( "SFO"))
    -
    -  b.2 <- benchmark(
    -    "deSolve, not compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D,
    -                                      use_compiled = FALSE, quiet = TRUE),
    -    "deSolve, compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE),
    -    replications = 3)
    -  print(b.2)
    -  factor_FOMC_SFO <- round(b.2["1", "relative"])
    -} else {
    -  factor_FOMC_SFO <- NA
    -  print("R package benchmark is not available")
    -}
    +
    if (require(rbenchmark)) {
    +  FOMC_SFO <- mkinmod(
    +    parent = mkinsub("FOMC", "m1"),
    +    m1 = mkinsub( "SFO"))
    +
    +  b.2 <- benchmark(
    +    "deSolve, not compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D,
    +                                      use_compiled = FALSE, quiet = TRUE),
    +    "deSolve, compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE),
    +    replications = 3)
    +  print(b.2)
    +  factor_FOMC_SFO <- round(b.2["1", "relative"])
    +} else {
    +  factor_FOMC_SFO <- NA
    +  print("R package benchmark is not available")
    +}
    ## Successfully compiled differential equation model from auto-generated C code.
    +
    ## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, use_compiled = FALSE, quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    ## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
    +## value of zero were removed from the data
    +
    ## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, use_compiled = FALSE, quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    +## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, use_compiled = FALSE, quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    +## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, use_compiled = FALSE, quiet =
    +## TRUE): Observations with value of zero were removed from the data
    +
    ## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
    +## value of zero were removed from the data
    +
    +## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
    +## value of zero were removed from the data
    +
    +## 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.074    1.000     4.072        0
    -## 1 deSolve, not compiled            3  37.219    9.136    37.203        0
    +## 2     deSolve, compiled            3   4.906    1.000     4.902        0
    +## 1 deSolve, not compiled            3  70.459   14.362    70.421        0
     ##   user.child sys.child
     ## 2          0         0
     ## 1          0         0
    -

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

    -

    This vignette was built with mkin 0.9.48.1 on

    -
    ## R version 3.5.2 (2018-12-20)
    +

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

    +

    This vignette was built with mkin 0.9.49.4 on

    +
    ## R version 3.5.3 (2019-03-11)
     ## Platform: x86_64-pc-linux-gnu (64-bit)
     ## Running under: Debian GNU/Linux 9 (stretch)
    ## CPU model: AMD Ryzen 7 1700 Eight-Core Processor
    diff --git a/docs/authors.html b/docs/authors.html index d3516580..9d47c66a 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -60,7 +60,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/index.html b/docs/index.html index f7e4c6c8..2f494511 100644 --- a/docs/index.html +++ b/docs/index.html @@ -37,7 +37,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/news/index.html b/docs/news/index.html index cb56adf5..aad50dce 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -60,7 +60,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -122,9 +122,24 @@
    +
    +

    +mkin 0.9.49.4 (2019-04-09) 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

    • +
    • Remove dependency on FME, only use nlminb for optimisation

    • +
    • Use the numDeriv package to calculate hessians

    • +
    • Add a benchmark vignette to document the impact on performance. For very simple fits, the new code is a bit slower, presumably because of the time it takes to calculate the hessian matrices with and without parameter transformation

    • +
    • The code for manual weighting was removed

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

    • +
    • Adapt tests

    • +
    +

    -mkin 0.9.48.1 (2019-03-04) Unreleased +mkin 0.9.48.1 (2019-03-04) 2019-03-04

    • Add the function ‘logLik.mkinfit’ which makes it possible to calculate an AIC for mkinfit objects

    • @@ -680,6 +695,7 @@

      Contents

      @@ -163,22 +163,22 @@

      Examples

      f <- mmkin(c("SFO", "FOMC", "DFOP"), list("FOCUS A" = FOCUS_2006_A, - "FOCUS C" = FOCUS_2006_C), cores = 1, quiet = TRUE)
      #> Warning: Optimisation by method Port did not converge: -#> false convergence (8)
      AIC(f[1, "FOCUS A"]) # We get a single number for a single fit
      #> [1] 55.32452
      + "FOCUS C" = FOCUS_2006_C), cores = 1, quiet = TRUE)
      #> Warning: Optimisation did not converge: +#> false convergence (8)
      AIC(f[1, "FOCUS A"]) # We get a single number for a single fit
      #> [1] 55.28197
      # For FOCUS A, the models fit almost equally well, so the higher the number # of parameters, the higher (worse) the AIC AIC(f[, "FOCUS A"])
      #> df AIC -#> SFO 3 55.32452 -#> FOMC 4 57.32477 -#> DFOP 5 59.32452
      AIC(f[, "FOCUS A"], k = 0) # If we do not penalize additional parameters, we get nearly the same
      #> df AIC -#> SFO 3 49.32452 -#> FOMC 4 49.32477 -#> DFOP 5 49.32452
      +#> SFO 3 55.28197 +#> FOMC 4 57.28198 +#> DFOP 5 59.28197
      AIC(f[, "FOCUS A"], k = 0) # If we do not penalize additional parameters, we get nearly the same
      #> df AIC +#> SFO 3 49.28197 +#> FOMC 4 49.28198 +#> DFOP 5 49.28197
      # For FOCUS C, the more complex models fit better AIC(f[, "FOCUS C"])
      #> df AIC -#> SFO 3 59.84675 -#> FOMC 4 44.70584 -#> DFOP 5 29.08369
      +#> SFO 3 59.29336 +#> FOMC 4 44.68652 +#> DFOP 5 29.02372
    diff --git a/docs/reference/DFOP.solution.html b/docs/reference/DFOP.solution.html index 378d6eb2..335c3a80 100644 --- a/docs/reference/DFOP.solution.html +++ b/docs/reference/DFOP.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html index 3567af48..77eff52e 100644 --- a/docs/reference/Extract.mmkin.html +++ b/docs/reference/Extract.mmkin.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -172,26 +172,26 @@ cores = 1, quiet = TRUE) fits["FOMC", ]
    #> dataset #> model B C -#> FOMC List,45 List,45 +#> FOMC List,36 List,36 #> attr(,"class") #> [1] "mmkin"
    fits[, "B"]
    #> dataset #> model B -#> SFO List,45 -#> FOMC List,45 +#> SFO List,36 +#> FOMC List,36 #> attr(,"class") #> [1] "mmkin"
    fits["SFO", "B"]
    #> dataset #> model B -#> SFO List,45 +#> SFO List,36 #> attr(,"class") #> [1] "mmkin"
    head( # This extracts an mkinfit object with lots of components fits[["FOMC", "B"]] )
    #> $par -#> parent_0 log_alpha log_beta -#> 99.666193 2.549849 5.050586 +#> parent_0 log_alpha log_beta sigma +#> 99.666193 2.549849 5.050586 1.890202 #> -#> $ssr +#> $objective #> [1] 28.58291 #> #> $convergence @@ -202,10 +202,10 @@ #> #> $evaluations #> function gradient -#> 25 78 +#> 25 76 #> -#> $counts -#> [1] "relative convergence (4)" +#> $message +#> [1] "both X-convergence and relative convergence (5)" #>
    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 0f51b1ce..cc3560ed 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.48.1 + 0.9.49.4 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 e0b8d760..5f6fc197 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.48.1 + 0.9.49.4 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 d07fb469..45d00237 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.48.1 + 0.9.49.4 diff --git a/docs/reference/FOCUS_2006_datasets.html b/docs/reference/FOCUS_2006_datasets.html index b766c88b..2b060f47 100644 --- a/docs/reference/FOCUS_2006_datasets.html +++ b/docs/reference/FOCUS_2006_datasets.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/FOMC.solution.html b/docs/reference/FOMC.solution.html index 8763c878..90a4810c 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.48.1 + 0.9.49.4 diff --git a/docs/reference/HS.solution.html b/docs/reference/HS.solution.html index 940d3186..1365e23f 100644 --- a/docs/reference/HS.solution.html +++ b/docs/reference/HS.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/IORE.solution.html b/docs/reference/IORE.solution.html index 9a497f92..c9b79512 100644 --- a/docs/reference/IORE.solution.html +++ b/docs/reference/IORE.solution.html @@ -64,7 +64,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -176,20 +176,20 @@

    Examples

    -
    plot(function(x) IORE.solution(x, 100, 0.2, 1.3), 0, 2, - ylim = c(0, 100))
    fit.fomc <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE) - fit.iore <- mkinfit("IORE", FOCUS_2006_C, quiet = TRUE) - fit.iore.deS <- mkinfit("IORE", FOCUS_2006_C, solution_type = "deSolve", quiet = TRUE) - - print(data.frame(coef(fit.fomc), coef(fit.iore), coef(fit.iore.deS), - row.names = paste("model par", 1:3)))
    #> coef.fit.fomc. coef.fit.iore. coef.fit.iore.deS. -#> model par 1 85.87489063 85.874890 85.874890 -#> model par 2 0.05192238 -4.826631 -4.826631 -#> model par 3 0.65096665 1.949403 1.949403
    print(rbind(fomc = endpoints(fit.fomc)$distimes, iore = endpoints(fit.iore)$distimes, - iore.deS = endpoints(fit.iore)$distimes))
    #> DT50 DT90 DT50back +
    plot(function(x) IORE.solution(x, 100, 0.2, 1.3), 0, 2, ylim = c(0, 100))
    fit.fomc <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE) + fit.iore <- mkinfit("IORE", FOCUS_2006_C, quiet = TRUE) + fit.iore.deS <- mkinfit("IORE", FOCUS_2006_C, solution_type = "deSolve", quiet = TRUE) + + print(data.frame(fit.fomc$par, fit.iore$par, fit.iore.deS$par, + row.names = paste("model par", 1:4)))
    #> fit.fomc.par fit.iore.par fit.iore.deS.par +#> model par 1 85.87488995 85.874890 85.874890 +#> model par 2 0.05192228 -4.826631 -4.826631 +#> model par 3 0.65096650 1.949403 1.949403 +#> model par 4 1.85744396 1.857444 1.857444
    print(rbind(fomc = endpoints(fit.fomc)$distimes, iore = endpoints(fit.iore)$distimes, + iore.deS = endpoints(fit.iore)$distimes))
    #> DT50 DT90 DT50back #> fomc 1.785233 15.1479 4.559973 #> iore 1.785233 15.1479 4.559973 -#> iore.deS 1.785233 15.1479 4.559973
    +#> iore.deS 1.785233 15.1479 4.559973
    @@ -155,8 +155,7 @@

    Examples

    -
    nafta_evaluation <- nafta(NAFTA_SOP_Appendix_D, cores = 1)
    #> Warning: Calculation of the Jacobian failed for the cost function of the untransformed model. -#> No t-test results will be available
    #> 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
    print(nafta_evaluation)
    #> Sums of squares: +
    nafta_evaluation <- nafta(NAFTA_SOP_Appendix_D, cores = 1)
    #> 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
    print(nafta_evaluation)
    #> Sums of squares: #> SFO IORE DFOP #> 1378.6832 615.7730 517.8836 #> @@ -165,22 +164,25 @@ #> #> Parameters: #> $SFO -#> Estimate Pr(>t) Lower Upper -#> parent_0 83.7558 8.08e-15 76.92822 90.58328 -#> k_parent_sink 0.0017 7.45e-05 0.00111 0.00262 +#> Estimate Pr(>t) Lower Upper +#> parent_0 83.7558 1.80e-14 77.18268 90.3288 +#> k_parent_sink 0.0017 7.43e-05 0.00112 0.0026 +#> sigma 8.7518 1.22e-05 5.64278 11.8608 #> #> $IORE #> Estimate Pr(>t) Lower Upper -#> parent_0 9.69e+01 NA 8.75e+01 1.06e+02 -#> k__iore_parent_sink 8.40e-14 NA 1.09e-19 6.47e-08 -#> N_parent 6.68e+00 NA 3.54e+00 9.83e+00 +#> parent_0 9.69e+01 NA 8.88e+01 1.05e+02 +#> k__iore_parent_sink 8.40e-14 NA 1.79e-18 3.94e-09 +#> N_parent 6.68e+00 NA 4.19e+00 9.17e+00 +#> sigma 5.85e+00 NA 3.76e+00 7.94e+00 #> #> $DFOP #> Estimate Pr(>t) Lower Upper -#> parent_0 9.76e+01 4.44e-13 8.88e+01 1.06e+02 -#> k1 4.24e-02 3.55e-02 1.41e-02 1.27e-01 -#> k2 8.24e-04 2.06e-02 3.17e-04 2.14e-03 -#> g 2.88e-01 1.31e-04 1.78e-01 4.30e-01 +#> parent_0 9.76e+01 1.94e-13 9.02e+01 1.05e+02 +#> k1 4.24e-02 5.92e-03 2.03e-02 8.88e-02 +#> k2 8.24e-04 6.48e-03 3.89e-04 1.75e-03 +#> g 2.88e-01 2.47e-05 1.95e-01 4.03e-01 +#> sigma 5.36e+00 2.22e-05 3.43e+00 7.30e+00 #> #> #> DTx values: @@ -190,7 +192,7 @@ #> DFOP 429 2380 841 #> #> Representative half-life: -#> [1] 841.4096
    plot(nafta_evaluation)
    +#> [1] 841.4094
    plot(nafta_evaluation)
    @@ -152,7 +152,7 @@

    Examples

    -
    nafta_att_p5a <- nafta(NAFTA_SOP_Attachment[["p5a"]], cores = 1)
    #> Warning: Could not estimate covariance matrix; singular system.
    #> 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
    print(nafta_att_p5a)
    #> Sums of squares: +
    nafta_att_p5a <- nafta(NAFTA_SOP_Attachment[["p5a"]], cores = 1)
    #> 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
    print(nafta_att_p5a)
    #> Sums of squares: #> SFO IORE DFOP #> 465.21753 56.27506 32.06401 #> @@ -162,28 +162,31 @@ #> Parameters: #> $SFO #> Estimate Pr(>t) Lower Upper -#> parent_0 95.8401 1.10e-21 92.121 99.5597 -#> k_parent_sink 0.0102 1.71e-12 0.009 0.0117 +#> parent_0 95.8401 4.67e-21 92.245 99.4357 +#> k_parent_sink 0.0102 3.92e-12 0.009 0.0117 +#> sigma 4.8230 3.81e-06 3.214 6.4318 #> #> $IORE -#> Estimate Pr(>t) Lower Upper -#> parent_0 1.01e+02 2.37e-26 9.89e+01 1.03e+02 -#> k__iore_parent_sink 1.54e-05 8.73e-02 3.48e-06 6.85e-05 -#> N_parent 2.57e+00 1.14e-11 2.22e+00 2.92e+00 +#> Estimate Pr(>t) Lower Upper +#> parent_0 1.01e+02 NA 9.91e+01 1.02e+02 +#> k__iore_parent_sink 1.54e-05 NA 4.08e-06 5.84e-05 +#> N_parent 2.57e+00 NA 2.25e+00 2.89e+00 +#> sigma 1.68e+00 NA 1.12e+00 2.24e+00 #> #> $DFOP -#> Estimate Pr(>t) Lower Upper -#> parent_0 9.99e+01 4.33e-27 NA NA -#> k1 2.67e-02 3.17e-05 NA NA -#> k2 2.16e-12 5.00e-01 NA NA -#> g 6.47e-01 2.13e-05 NA NA +#> Estimate Pr(>t) Lower Upper +#> parent_0 9.99e+01 1.41e-26 98.8116 101.0810 +#> k1 2.67e-02 5.05e-06 0.0243 0.0295 +#> k2 3.41e-12 5.00e-01 0.0000 Inf +#> g 6.47e-01 3.67e-06 0.6248 0.6677 +#> sigma 1.27e+00 8.91e-06 0.8395 1.6929 #> #> #> DTx values: #> DT50 DT90 DT50_rep #> SFO 67.7 2.25e+02 6.77e+01 #> IORE 58.2 1.07e+03 3.22e+02 -#> DFOP 55.5 5.84e+11 3.21e+11 +#> DFOP 55.5 3.70e+11 2.03e+11 #> #> Representative half-life: #> [1] 321.5119
    plot(nafta_att_p5a)
    diff --git a/docs/reference/SFO.solution.html b/docs/reference/SFO.solution.html index dea4527e..2eb3a9b0 100644 --- a/docs/reference/SFO.solution.html +++ b/docs/reference/SFO.solution.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/reference/SFORB.solution.html b/docs/reference/SFORB.solution.html index a09f3d94..f2743fe4 100644 --- a/docs/reference/SFORB.solution.html +++ b/docs/reference/SFORB.solution.html @@ -67,7 +67,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/add_err-1.png b/docs/reference/add_err-1.png index d099898c..e2107cc2 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 f6de95a0..2fab0ee4 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 13f54e65..6e6592a5 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 8b6668f1..2eee6131 100644 --- a/docs/reference/add_err.html +++ b/docs/reference/add_err.html @@ -65,7 +65,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -215,14 +215,12 @@ # Name the datasets for nicer plotting names(d_SFO_SFO_err) <- paste("Dataset", 1:3) -# Name the model in the list of models (with only one member in this case) -# for nicer plotting later on. -# Be quiet and use the faster Levenberg-Marquardt algorithm, as the datasets -# are easy and examples are run often. Use only one core not to offend CRAN +# Name the model in the list of models (with only one member in this case) for +# nicer plotting later on. Be quiet and use only one core not to offend CRAN # checks f_SFO_SFO <- mmkin(list("SFO-SFO" = m_SFO_SFO), d_SFO_SFO_err, cores = 1, - quiet = TRUE, method.modFit = "Marq") + quiet = TRUE) plot(f_SFO_SFO)
    # We would like to inspect the fit for dataset 3 more closely diff --git a/docs/reference/endpoints.html b/docs/reference/endpoints.html index 4d777ce2..5f419781 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.48.1 + 0.9.49.4
    diff --git a/docs/reference/geometric_mean.html b/docs/reference/geometric_mean.html index f8beb987..908aa8cc 100644 --- a/docs/reference/geometric_mean.html +++ b/docs/reference/geometric_mean.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/ilr.html b/docs/reference/ilr.html index 02c96b92..0a18d535 100644 --- a/docs/reference/ilr.html +++ b/docs/reference/ilr.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/index.html b/docs/reference/index.html index e1f149e2..42028d60 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -60,7 +60,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/logLik.mkinfit.html b/docs/reference/logLik.mkinfit.html index fc4193cb..0184d573 100644 --- a/docs/reference/logLik.mkinfit.html +++ b/docs/reference/logLik.mkinfit.html @@ -33,23 +33,12 @@ + model parameters and the fitted error model parameters." /> @@ -80,7 +69,7 @@ In the case of iterative reweighting, the variances obtained by this mkin - 0.9.48.1 + 0.9.49.4 @@ -146,23 +135,12 @@ In the case of iterative reweighting, the variances obtained by this

    This function simply calculates the product of the likelihood densities - calculated using dnorm, i.e. assuming normal distribution.

    + calculated using dnorm, i.e. assuming normal distribution, + with of the mean predicted by the degradation model, and the + standard deviation predicted by the error model.

    The total number of estimated parameters returned with the value of the likelihood is calculated as the sum of fitted degradation model parameters and the fitted error model parameters.

    -

    For the case of unweighted least squares fitting, we calculate one - constant standard deviation from the residuals using sd - and add one to the number of fitted degradation model parameters.

    -

    For the case of manual weighting, we use the weight given for each - observation as standard deviation in calculating its likelihood - and the total number of estimated parameters is equal to the - number of fitted degradation model parameters.

    -

    In the case of iterative reweighting, the variances obtained by this - procedure are used in the likelihood calculations, and the number of - estimated parameters is obtained by the number of degradation model - parameters plus the number of variance model parameters, i.e. the number of - observed variables if the reweighting method is "obs", and two if the - reweighting method is "tc".

    @@ -199,17 +177,10 @@ In the case of iterative reweighting, the variances obtained by this parent = mkinsub("SFO", to = "m1"), m1 = mkinsub("SFO") )
    #> Successfully compiled differential equation model from auto-generated C code.
    d_t <- FOCUS_2006_D - d_t[23:24, "value"] <- c(NA, NA) # can't cope with zero values at the moment - f_nw <- mkinfit(sfo_sfo, d_t, quiet = TRUE) # no weighting (weights are unity) - f_obs <- mkinfit(sfo_sfo, d_t, reweight.method = "obs", quiet = TRUE) - f_tc <- mkinfit(sfo_sfo, d_t, reweight.method = "tc", quiet = TRUE) - d_t$err <- d_t$value # Manual weighting assuming sigma ~ y - f_man <- mkinfit(sfo_sfo, d_t, err = "err", quiet = TRUE) - AIC(f_nw, f_obs, f_tc, f_man)
    #> df AIC -#> f_nw 5 204.4619 + f_nw <- mkinfit(sfo_sfo, d_t, quiet = TRUE) # no weighting (weights are unity)
    #> Warning: Observations with value of zero were removed from the data
    f_obs <- mkinfit(sfo_sfo, d_t, error_model = "obs", quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    f_tc <- mkinfit(sfo_sfo, d_t, error_model = "tc", quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    AIC(f_nw, f_obs, f_tc)
    #> df AIC +#> f_nw 5 204.4486 #> f_obs 6 205.8727 -#> f_tc 6 143.8773 -#> f_man 4 291.8000
    +#> f_tc 6 141.9656
    @@ -205,17 +205,19 @@ n = 1, reps = 2, digits = 5, LOD = 0.1, seed = 123456)[[1]] m <- mkinfit("logistic", d_2_1, quiet = TRUE) - plot_sep(m)
    summary(m)$bpar
    #> Estimate se_notrans t value Pr(>t) Lower -#> parent_0 1.057896e+02 2.3743105248 44.5559374 6.656664e-16 1.006602e+02 -#> kmax 6.398190e-02 0.0193490291 3.3067243 2.836921e-03 3.329058e-02 -#> k0 1.612775e-04 0.0009640761 0.1672871 4.348592e-01 3.972250e-10 -#> r 2.263946e-01 0.2822811886 0.8020181 2.184792e-01 1.531165e-02 + plot_sep(m)
    summary(m)$bpar
    #> Estimate se_notrans t value Pr(>t) Lower +#> parent_0 1.057896e+02 1.9023449643 55.610120 3.768361e-16 1.016451e+02 +#> kmax 6.398190e-02 0.0143201029 4.467978 3.841828e-04 3.929235e-02 +#> k0 1.612775e-04 0.0005866813 0.274898 3.940351e-01 5.846687e-08 +#> r 2.263946e-01 0.1718110718 1.317695 1.061044e-01 4.335843e-02 +#> sigma 5.332935e+00 0.9145907310 5.830952 4.036926e-05 3.340213e+00 #> Upper -#> parent_0 110.9190170 -#> kmax 0.1229682 -#> k0 65.4803698 -#> r 3.3474197
    endpoints(m)$distimes
    #> DT50 DT90 DT50_k0 DT50_kmax -#> parent 36.86533 62.41511 4297.854 10.83349
    +#> parent_0 109.9341588 +#> kmax 0.1041853 +#> k0 0.4448749 +#> r 1.1821121 +#> sigma 7.3256566
    endpoints(m)$distimes
    #> DT50 DT90 DT50_k0 DT50_kmax +#> parent 36.86533 62.41511 4297.853 10.83349
    diff --git a/docs/reference/mccall81_245T-1.png b/docs/reference/mccall81_245T-1.png new file mode 100644 index 00000000..859f315a Binary files /dev/null and b/docs/reference/mccall81_245T-1.png differ diff --git a/docs/reference/mccall81_245T.html b/docs/reference/mccall81_245T.html index 47fa6482..a336a840 100644 --- a/docs/reference/mccall81_245T.html +++ b/docs/reference/mccall81_245T.html @@ -65,7 +65,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -141,10 +141,10 @@

    Format

    A dataframe containing the following variables.

    -
    name

    the name of the compound observed. Note that T245 is used as +

    name

    the name of the compound observed. Note that T245 is used as an acronym for 2,4,5-T. T245 is a legitimate object name in R, which is necessary for specifying models using - mkinmod.

    + mkinmod.

    time

    a numeric vector containing sampling times in days after treatment

    value

    a numeric vector containing concentrations in percent of applied radioactivity

    @@ -160,23 +160,24 @@

    Examples

    SFO_SFO_SFO <- mkinmod(T245 = list(type = "SFO", to = "phenol"), phenol = list(type = "SFO", to = "anisole"), - anisole = list(type = "SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    fit.1 <- mkinfit(SFO_SFO_SFO, subset(mccall81_245T, soil == "Commerce"), quiet = TRUE) - summary(fit.1)$bpar
    #> Warning: Could not estimate covariance matrix; singular system.
    #> Estimate se_notrans t value Pr(>t) Lower -#> T245_0 1.038550e+02 2.4256088519 4.281607e+01 7.235908e-20 NA -#> k_T245_sink 1.636106e-02 0.0183803090 8.901408e-01 1.925667e-01 NA -#> k_T245_phenol 2.700936e-02 0.0179604385 1.503825e+00 7.498498e-02 NA -#> k_phenol_sink 1.286034e-11 0.2810970202 4.575054e-11 5.000000e-01 NA -#> k_phenol_anisole 4.050581e-01 0.1608928349 2.517564e+00 1.075371e-02 NA -#> k_anisole_sink 6.678742e-03 0.0008199239 8.145563e+00 9.469402e-08 NA -#> Upper -#> T245_0 NA -#> k_T245_sink NA -#> k_T245_phenol NA -#> k_phenol_sink NA -#> k_phenol_anisole NA -#> k_anisole_sink NA
    endpoints(fit.1)
    #> $ff + anisole = list(type = "SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    fit.1 <- mkinfit(SFO_SFO_SFO, subset(mccall81_245T, soil == "Commerce"), quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    summary(fit.1)$bpar
    #> Warning: NaNs wurden erzeugt
    #> Estimate se_notrans t value Pr(>t) Lower +#> T245_0 1.038550e+02 2.1508106806 48.286460 3.542223e-18 99.246062186 +#> k_T245_sink 1.636106e-02 NaN NaN NaN 0.012661557 +#> k_T245_phenol 2.700936e-02 NaN NaN NaN 0.024487315 +#> k_phenol_sink 1.054519e-10 NaN NaN NaN 0.000000000 +#> k_phenol_anisole 4.050581e-01 0.1053797258 3.843795 7.969973e-04 0.218013983 +#> k_anisole_sink 6.678742e-03 0.0006205825 10.762053 9.427693e-09 0.005370739 +#> sigma 2.514628e+00 0.3383657682 7.431685 1.054052e-06 1.706607296 +#> Upper +#> T245_0 1.084640e+02 +#> k_T245_sink 2.114150e-02 +#> k_T245_phenol 2.979116e-02 +#> k_phenol_sink Inf +#> k_phenol_anisole 7.525759e-01 +#> k_anisole_sink 8.305299e-03 +#> sigma 3.322649e+00
    endpoints(fit.1)
    #> $ff #> T245_sink T245_phenol phenol_sink phenol_anisole anisole_sink -#> 3.772401e-01 6.227599e-01 3.174937e-11 1.000000e+00 1.000000e+00 +#> 3.772401e-01 6.227599e-01 2.603376e-10 1.000000e+00 1.000000e+00 #> #> $SFORB #> logical(0) @@ -185,26 +186,26 @@ #> DT50 DT90 #> T245 15.982025 53.09114 #> phenol 1.711229 5.68458 -#> anisole 103.784093 344.76330 -#>
    # No convergence, no covariance matrix ... - # k_phenol_sink is really small, therefore fix it to zero +#> anisole 103.784092 344.76329 +#>
    # k_phenol_sink is really small, therefore fix it to zero fit.2 <- mkinfit(SFO_SFO_SFO, subset(mccall81_245T, soil == "Commerce"), parms.ini = c(k_phenol_sink = 0), - fixed_parms = "k_phenol_sink", quiet = TRUE) - summary(fit.2)$bpar
    #> Estimate se_notrans t value Pr(>t) Lower -#> T245_0 1.038550e+02 2.3517950656 44.159900 6.461715e-21 98.932670927 -#> k_T245_sink 1.636106e-02 0.0021685502 7.544701 1.978480e-07 0.012397413 -#> k_T245_phenol 2.700936e-02 0.0013511301 19.990199 1.606634e-14 0.024324422 -#> k_phenol_anisole 4.050581e-01 0.1238660786 3.270129 2.013627e-03 0.213574853 -#> k_anisole_sink 6.678742e-03 0.0007468908 8.942059 1.543812e-08 0.005284957 + fixed_parms = "k_phenol_sink", quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    summary(fit.2)$bpar
    #> Estimate se_notrans t value Pr(>t) Lower +#> T245_0 1.038550e+02 2.1623652988 48.028441 4.993105e-19 99.271024566 +#> k_T245_sink 1.636106e-02 0.0019676253 8.315129 1.673677e-07 0.012679144 +#> k_T245_phenol 2.700936e-02 0.0012421965 21.743225 1.314080e-13 0.024500318 +#> k_phenol_anisole 4.050581e-01 0.1177235385 3.440757 1.679236e-03 0.218746681 +#> k_anisole_sink 6.678743e-03 0.0006829745 9.778904 1.872891e-08 0.005377084 +#> sigma 2.514628e+00 0.3790944250 6.633250 2.875782e-06 1.710983655 #> Upper -#> T245_0 1.087774e+02 -#> k_T245_sink 2.159195e-02 -#> k_T245_phenol 2.999066e-02 -#> k_phenol_anisole 7.682180e-01 -#> k_anisole_sink 8.440105e-03
    endpoints(fit.1)
    #> $ff +#> T245_0 1.084390e+02 +#> k_T245_sink 2.111217e-02 +#> k_T245_phenol 2.977534e-02 +#> k_phenol_anisole 7.500550e-01 +#> k_anisole_sink 8.295501e-03 +#> sigma 3.318272e+00
    endpoints(fit.1)
    #> $ff #> T245_sink T245_phenol phenol_sink phenol_anisole anisole_sink -#> 3.772401e-01 6.227599e-01 3.174937e-11 1.000000e+00 1.000000e+00 +#> 3.772401e-01 6.227599e-01 2.603376e-10 1.000000e+00 1.000000e+00 #> #> $SFORB #> logical(0) @@ -213,8 +214,8 @@ #> DT50 DT90 #> T245 15.982025 53.09114 #> phenol 1.711229 5.68458 -#> anisole 103.784093 344.76330 -#>
    +#> anisole 103.784092 344.76329 +#>
    plot_sep(fit.2)
    @@ -130,9 +130,9 @@
    -

    This function takes a dataframe in the long form as required by modCost - and converts it into a dataframe with one independent variable and several - dependent variables as columns.

    +

    This function takes a dataframe in the long form, i.e. with a row + for each observed value, and converts it into a dataframe with one + independent variable and several dependent variables as columns.

    diff --git a/docs/reference/mkin_wide_to_long.html b/docs/reference/mkin_wide_to_long.html index f2b9bef7..4fc0e2ed 100644 --- a/docs/reference/mkin_wide_to_long.html +++ b/docs/reference/mkin_wide_to_long.html @@ -33,7 +33,7 @@ + dependent variable and converts it into the long form as required by mkinfit." /> @@ -64,7 +64,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -130,7 +130,7 @@

    This function simply takes a dataframe with one independent variable and several - dependent variable and converts it into the long form as required by modCost.

    + dependent variable and converts it into the long form as required by mkinfit.

    @@ -152,7 +152,7 @@

    Value

    -

    Dataframe in long format as needed for modCost.

    +

    Dataframe in long format as needed for mkinfit.

    Examples

    diff --git a/docs/reference/mkinds.html b/docs/reference/mkinds.html index 3be872e8..2c01be70 100644 --- a/docs/reference/mkinds.html +++ b/docs/reference/mkinds.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/mkinerrmin.html b/docs/reference/mkinerrmin.html index 60769486..3ebea1e4 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.48.1 + 0.9.49.4 @@ -179,8 +179,7 @@ chi-squared test as defined in the FOCUS kinetics report from 2006.

    SFO_SFO = mkinmod(parent = mkinsub("SFO", to = "m1"), m1 = mkinsub("SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    -fit_FOCUS_D = mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE) -round(mkinerrmin(fit_FOCUS_D), 4)
    #> err.min n.optim df +fit_FOCUS_D = mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    round(mkinerrmin(fit_FOCUS_D), 4)
    #> err.min n.optim df #> All data 0.0640 4 15 #> parent 0.0646 2 7 #> m1 0.0469 2 8
    fit_FOCUS_E = mkinfit(SFO_SFO, FOCUS_2006_E, quiet = TRUE) diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html index df30ef09..d3a826b9 100644 --- a/docs/reference/mkinfit.html +++ b/docs/reference/mkinfit.html @@ -32,17 +32,15 @@ - + @@ -73,7 +71,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -138,17 +136,15 @@
    -

    This function uses the Flexible Modelling Environment package - FME to create a function calculating the model cost, i.e. the - deviation between the kinetic model and the observed data. This model cost is - then minimised using the Port algorithm nlminb, - using the specified initial or fixed parameters and starting values. - Per default, parameters in the kinetic models are internally transformed in order - to better satisfy the assumption of a normal distribution of their estimators. - In each step of the optimsation, the kinetic model is solved using the - function mkinpredict. The variance of the residuals for each - observed variable can optionally be iteratively reweighted until convergence - using the argument reweight.method = "obs".

    +

    This function maximises the likelihood of the observed data using + the Port algorithm nlminb, and the specified initial or fixed + parameters and starting values. In each step of the optimsation, the kinetic + model is solved using the function mkinpredict. The parameters + of the selected error model are fitted simultaneously with the degradation + model parameters, as both of them are arguments of the likelihood function.

    +

    Per default, parameters in the kinetic models are internally transformed in + order to better satisfy the assumption of a normal distribution of their + estimators.

    @@ -160,18 +156,12 @@ solution_type = c("auto", "analytical", "eigen", "deSolve"), method.ode = "lsoda", use_compiled = "auto", - method.modFit = c("Port", "Marq", "SANN", "Nelder-Mead", "BFGS", "CG", "L-BFGS-B"), - maxit.modFit = "auto", - control.modFit = list(), + control = list(eval.max = 300, iter.max = 200), transform_rates = TRUE, transform_fractions = TRUE, - plot = FALSE, quiet = FALSE, err = NULL, - weight = c("none", "manual", "std", "mean", "tc"), - tc = c(sigma_low = 0.5, rsd_high = 0.07), - scaleVar = FALSE, + quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, - reweight.method = NULL, - reweight.tol = 1e-8, reweight.max.iter = 10, + error_model = c("const", "obs", "tc"), trace_parms = FALSE, ...)

    Arguments

    @@ -181,20 +171,20 @@ mkinmod

    A list of class mkinmod, containing the kinetic model to be fitted to the data, or one of the shorthand names ("SFO", "FOMC", "DFOP", - "HS", "SFORB"). If a shorthand name is given, a parent only degradation + "HS", "SFORB", "IORE"). If a shorthand name is given, a parent only degradation model is generated for the variable with the highest value in observed.

    observed -

    The observed data. It has to be in the long format as described in - modFit, i.e. the first column called "name" must contain the - name of the observed variable for each data point. The second column must - contain the times of observation, named "time". The third column must be - named "value" and contain the observed values. Optionally, a further column - can contain weights for each data point. Its name must be passed as a - further argument named err which is then passed on to - modFit.

    +

    A dataframe with the observed data. The first column called "name" must + contain the name of the observed variable for each data point. The second + column must contain the times of observation, named "time". The third + column must be named "value" and contain the observed values. Zero values + in the "value" column will be removed, with a warning, in order to + avoid problems with fitting the two-component error model. This is not + expected to be a problem, because in general, values of zero are not + observed in degradation data, because there is a lower limit of detection.

    parms.ini @@ -247,10 +237,10 @@ solution of the model is used. This is only implemented for simple degradation experiments with only one state variable, i.e. with no metabolites. The default is "auto", which uses "analytical" if possible, - otherwise "eigen" if the model can be expressed using eigenvalues and - eigenvectors, and finally "deSolve" for the remaining models (time - dependence of degradation rates and metabolites). This argument is passed - on to the helper function mkinpredict.

    + otherwise "deSolve" if a compiler is present, and "eigen" if no + compiler is present and the model can be expressed using eigenvalues and + eigenvectors. This argument is passed on to the helper function + mkinpredict.

    method.ode @@ -261,36 +251,12 @@ use_compiled

    If set to FALSE, no compiled version of the mkinmod - model is used, in the calls to mkinpredict even if - a compiled verion is present.

    + model is used in the calls to mkinpredict even if a compiled + version is present.

    - method.modFit -

    The optimisation method passed to modFit.

    -

    In order to optimally deal with problems where local minima occur, the - "Port" algorithm is now used per default as it is less prone to get trapped - in local minima and depends less on starting values for parameters than - the Levenberg Marquardt variant selected by "Marq". However, "Port" needs - more iterations.

    -

    The former default "Marq" is the Levenberg Marquardt algorithm - nls.lm from the package minpack.lm and usually needs - the least number of iterations.

    -

    The "Pseudo" algorithm is not included because it needs finite parameter bounds - which are currently not supported.

    -

    The "Newton" algorithm is not included because its number of iterations - can not be controlled by control.modFit and it does not appear - to provide advantages over the other algorithms.

    - - - maxit.modFit -

    Maximum number of iterations in the optimisation. If not "auto", this will - be passed to the method called by modFit, overriding - what may be specified in the next argument control.modFit.

    - - - control.modFit -

    Additional arguments passed to the optimisation method used by - modFit.

    + control +

    A list of control arguments passed to nlminb.

    transform_rates @@ -299,8 +265,8 @@ assumption of normal distribution of the estimator. If TRUE, also alpha and beta parameters of the FOMC model are log-transformed, as well as k1 and k2 rate constants for the DFOP and HS models and the break point - tb of the HS model. - If FALSE, zero is used as a lower bound for the rates in the optimisation.

    + tb of the HS model. If FALSE, zero is used as a lower bound for the rates + in the optimisation.

    transform_fractions @@ -312,37 +278,10 @@ data. The transformation used for these transformations is the ilr transformation.

    - - plot -

    Should the observed values and the numerical solutions be plotted at each - stage of the optimisation?

    - quiet -

    Suppress printing out the current model cost after each improvement?

    - - - err -

    either NULL, or the name of the column with the - error estimates, used to weigh the residuals (see details of - modCost); if NULL, then the residuals are not weighed.

    - - - weight -

    only if err=NULL: how to weight the residuals, one of "none", - "std", "mean", see details of modCost, or "tc" for the - two component error model. The option "manual" is available for - the case that err!=NULL, but it is not necessary to specify it.

    - - - tc -

    The two components of the error model as used for (initial) - weighting

    - - - scaleVar -

    Will be passed to modCost. Default is not to scale Variables - according to the number of observations.

    +

    Suppress printing out the current value of the negative log-likelihood + after each improvement?

    atol @@ -362,35 +301,17 @@ The default value is 100.

    - reweight.method -

    The method used for iteratively reweighting residuals, also known - as iteratively reweighted least squares (IRLS). Default is NULL, - i.e. no iterative weighting. - The first reweighting method is called "obs", meaning that each - observed variable is assumed to have its own variance. This variance - is estimated from the fit (mean squared residuals) and used for weighting - the residuals in each iteration until convergence of this estimate up to - reweight.tol or up to the maximum number of iterations - specified by reweight.max.iter. - The second reweighting method is called "tc" (two-component error model). - When using this method, the two components of an error model similar to - the one described by - Rocke and Lorenzato (1995) are estimated from the fit and the resulting - variances are used for weighting the residuals in each iteration until - convergence of these components or up to the maximum number of iterations - specified. Note that this method deviates from the model by Rocke and - Lorenzato, as their model implies that the errors follow a lognormal - distribution for large values, not a normal distribution as assumed by this - method.

    - - - reweight.tol -

    Tolerance for convergence criterion for the variance components - in IRLS fits.

    - - - reweight.max.iter -

    Maximum iterations in IRLS fits.

    + error_model +

    If the error model is "const", a constant standard deviation + is assumed.

    +

    If the error model is "obs", each observed variable is assumed to have its + own variance.

    +

    If the error model is "tc" (two-component error model), a two component + error model similar to the one described by Rocke and Lorenzato (1995) is + used for setting up the likelihood function. Note that this model deviates + from the model by Rocke and Lorenzato, as their model implies that the + errors follow a lognormal distribution for large values, not a normal + distribution as assumed by this method.

    trace_parms @@ -398,19 +319,18 @@ … -

    Further arguments that will be passed to modFit.

    +

    Further arguments that will be passed on to deSolve.

    Value

    -

    A list with "mkinfit" and "modFit" in the class attribute. - A summary can be obtained by summary.mkinfit.

    +

    A list with "mkinfit" in the class attribute. A summary can be obtained by + summary.mkinfit.

    See also

    -

    Plotting methods plot.mkinfit and - mkinparplot.

    +

    Plotting methods plot.mkinfit and mkinparplot.

    Comparisons of models fitted to the same data can be made using AIC by virtue of the method logLik.mkinfit.

    Fitting of several models to several datasets in a single call to @@ -418,13 +338,6 @@

    Note

    -

    The implementation of iteratively reweighted least squares is inspired by the - work of the KinGUII team at Bayer Crop Science (Walter Schmitt and Zhenglei - Gao). A similar implemention can also be found in CAKE 2.0, which is the - other GUI derivative of mkin, sponsored by Syngenta.

    - -

    Note

    -

    When using the "IORE" submodel for metabolites, fitting with "transform_rates = TRUE" (the default) often leads to failures of the numerical ODE solver. In this situation it may help to switch off the @@ -439,57 +352,61 @@

    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.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:12 2019 -#> Date of summary: Mon Mar 4 14:05:12 2019 +summary(fit)
    #> mkin version used for fitting: 0.9.49.4 +#> R version used for fitting: 3.5.3 +#> Date of fit: Wed Apr 10 10:10:01 2019 +#> Date of summary: Wed Apr 10 10:10:01 2019 #> #> Equations: #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent #> #> Model predictions using solution type analytical #> -#> Fitted with method Port using 64 model solutions performed in 0.159 s +#> Fitted with method using 221 model solutions performed in 0.508 s #> -#> Weighting: none +#> Error model: +#> NULL #> #> Starting values for parameters to be optimised: -#> value type -#> parent_0 85.1 state -#> alpha 1.0 deparm -#> beta 10.0 deparm +#> value type +#> parent_0 85.100000 state +#> alpha 1.000000 deparm +#> beta 10.000000 deparm +#> sigma 1.857444 error #> #> Starting values for the transformed parameters actually optimised: #> value lower upper #> parent_0 85.100000 -Inf Inf #> log_alpha 0.000000 -Inf Inf #> log_beta 2.302585 -Inf Inf +#> sigma 1.857444 0 Inf #> #> Fixed parameter values: #> None #> #> Optimised, transformed parameters with symmetric confidence intervals: #> Estimate Std. Error Lower Upper -#> parent_0 85.87000 2.2460 80.38000 91.3700 -#> log_alpha 0.05192 0.1605 -0.34080 0.4446 -#> log_beta 0.65100 0.2801 -0.03452 1.3360 +#> parent_0 85.87000 1.8070 81.23000 90.5200 +#> log_alpha 0.05192 0.1353 -0.29580 0.3996 +#> log_beta 0.65100 0.2287 0.06315 1.2390 +#> sigma 1.85700 0.4378 0.73200 2.9830 #> #> Parameter correlation: -#> parent_0 log_alpha log_beta -#> parent_0 1.0000 -0.2033 -0.3624 -#> log_alpha -0.2033 1.0000 0.9547 -#> log_beta -0.3624 0.9547 1.0000 -#> -#> Residual standard error: 2.275 on 6 degrees of freedom +#> parent_0 log_alpha log_beta sigma +#> parent_0 1.000e+00 -1.565e-01 -3.142e-01 -1.313e-07 +#> log_alpha -1.565e-01 1.000e+00 9.564e-01 -2.634e-07 +#> log_beta -3.142e-01 9.564e-01 1.000e+00 -2.200e-07 +#> sigma -1.313e-07 -2.634e-07 -2.200e-07 1.000e+00 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. #> t-test (unrealistically) based on the assumption of normal distribution #> for estimators of untransformed parameters. #> Estimate t value Pr(>t) Lower Upper -#> parent_0 85.870 38.230 1.069e-08 80.3800 91.370 -#> alpha 1.053 6.231 3.953e-04 0.7112 1.560 -#> beta 1.917 3.570 5.895e-03 0.9661 3.806 +#> parent_0 85.870 47.530 3.893e-08 81.2300 90.520 +#> alpha 1.053 7.393 3.562e-04 0.7439 1.491 +#> beta 1.917 4.373 3.601e-03 1.0650 3.451 +#> sigma 1.857 4.243 4.074e-03 0.7320 2.983 #> #> Chi2 error levels in percent: #> err.min n.optim df @@ -517,9 +434,8 @@ parent = mkinsub("SFO", "m1"), 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)))
    #> User System verstrichen -#> 1.013 0.000 1.014
    coef(fit)
    #> parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink -#> 99.59848 -3.03822 -2.98030 -5.24750
    #> $ff + solution_type = "eigen", quiet = TRUE)))
    #> Warning: Observations with value of zero were removed from the data
    #> User System verstrichen +#> 1.653 0.000 1.653
    coef(fit)
    #> NULL
    #> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -528,73 +444,75 @@ #> #> $distimes #> DT50 DT90 -#> parent 7.022929 23.32967 -#> m1 131.760712 437.69961 +#> parent 7.022928 23.32966 +#> m1 131.760715 437.69962 #>
    # deSolve is slower when no C compiler (gcc) was available during model generation print(system.time(fit.deSolve <- mkinfit(SFO_SFO, FOCUS_2006_D, - solution_type = "deSolve")))
    #> Model cost at call 1 : 18915.53 -#> Model cost at call 2 : 18915.53 -#> Model cost at call 6 : 11424.02 -#> Model cost at call 10 : 11424 -#> Model cost at call 12 : 4094.396 -#> Model cost at call 16 : 4094.396 -#> Model cost at call 19 : 1340.595 -#> Model cost at call 20 : 1340.593 -#> Model cost at call 25 : 1072.239 -#> Model cost at call 28 : 1072.236 -#> Model cost at call 30 : 874.2615 -#> Model cost at call 33 : 874.2611 -#> Model cost at call 35 : 616.2377 -#> Model cost at call 37 : 616.2372 -#> Model cost at call 40 : 467.4386 -#> Model cost at call 42 : 467.4381 -#> Model cost at call 46 : 398.2914 -#> Model cost at call 48 : 398.2914 -#> Model cost at call 49 : 398.2913 -#> Model cost at call 51 : 395.0712 -#> Model cost at call 54 : 395.0711 -#> Model cost at call 56 : 378.3298 -#> Model cost at call 59 : 378.3298 -#> Model cost at call 62 : 376.9812 -#> Model cost at call 64 : 376.9811 -#> Model cost at call 67 : 375.2085 -#> Model cost at call 69 : 375.2085 -#> Model cost at call 70 : 375.2085 -#> Model cost at call 71 : 375.2085 -#> Model cost at call 72 : 374.5723 -#> Model cost at call 74 : 374.5723 -#> Model cost at call 77 : 374.0075 -#> Model cost at call 79 : 374.0075 -#> Model cost at call 80 : 374.0075 -#> Model cost at call 82 : 373.1711 -#> Model cost at call 84 : 373.1711 -#> Model cost at call 87 : 372.6445 -#> Model cost at call 88 : 372.1614 -#> Model cost at call 90 : 372.1614 -#> Model cost at call 91 : 372.1614 -#> Model cost at call 94 : 371.6464 -#> Model cost at call 99 : 371.4299 -#> Model cost at call 101 : 371.4299 -#> Model cost at call 104 : 371.4071 -#> Model cost at call 106 : 371.4071 -#> Model cost at call 107 : 371.4071 -#> Model cost at call 109 : 371.2524 -#> Model cost at call 113 : 371.2524 -#> Model cost at call 114 : 371.2136 -#> Model cost at call 115 : 371.2136 -#> Model cost at call 116 : 371.2136 -#> Model cost at call 119 : 371.2134 -#> Model cost at call 120 : 371.2134 -#> Model cost at call 122 : 371.2134 -#> Model cost at call 123 : 371.2134 -#> Model cost at call 125 : 371.2134 -#> Model cost at call 126 : 371.2134 -#> Model cost at call 135 : 371.2134 -#> Model cost at call 146 : 371.2134 -#> Optimisation by method Port successfully terminated. + solution_type = "deSolve")))
    #> Warning: Observations with value of zero were removed from the data
    #> Negative log-likelihood at call 1: 18915.53 +#> Negative log-likelihood at call 2: 18915.53 +#> Negative log-likelihood at call 6: 11424.02 +#> Negative log-likelihood at call 10: 11424 +#> Negative log-likelihood at call 13: 2367.052 +#> Negative log-likelihood at call 14: 2367.05 +#> Negative log-likelihood at call 19: 1314.716 +#> Negative log-likelihood at call 22: 1314.714 +#> Negative log-likelihood at call 25: 991.8311 +#> Negative log-likelihood at call 28: 991.8305 +#> Negative log-likelihood at call 30: 893.6462 +#> Negative log-likelihood at call 33: 893.6457 +#> Negative log-likelihood at call 35: 569.4049 +#> Negative log-likelihood at call 38: 569.4047 +#> Negative log-likelihood at call 40: 565.0651 +#> Negative log-likelihood at call 41: 565.065 +#> Negative log-likelihood at call 42: 565.0637 +#> Negative log-likelihood at call 45: 428.0188 +#> Negative log-likelihood at call 46: 428.0185 +#> Negative log-likelihood at call 50: 406.732 +#> Negative log-likelihood at call 52: 406.732 +#> Negative log-likelihood at call 55: 398.9115 +#> Negative log-likelihood at call 57: 398.9113 +#> Negative log-likelihood at call 60: 394.5943 +#> Negative log-likelihood at call 62: 394.5943 +#> Negative log-likelihood at call 66: 385.26 +#> Negative log-likelihood at call 67: 385.2599 +#> Negative log-likelihood at call 69: 385.2599 +#> Negative log-likelihood at call 70: 385.2597 +#> Negative log-likelihood at call 71: 374.7604 +#> Negative log-likelihood at call 72: 374.7603 +#> Negative log-likelihood at call 76: 373.199 +#> Negative log-likelihood at call 79: 373.199 +#> Negative log-likelihood at call 80: 373.199 +#> Negative log-likelihood at call 81: 372.3772 +#> Negative log-likelihood at call 84: 372.3772 +#> Negative log-likelihood at call 86: 371.2615 +#> Negative log-likelihood at call 89: 371.2615 +#> Negative log-likelihood at call 90: 371.2615 +#> Negative log-likelihood at call 92: 371.2439 +#> Negative log-likelihood at call 93: 371.2439 +#> Negative log-likelihood at call 94: 371.2439 +#> Negative log-likelihood at call 97: 371.2198 +#> Negative log-likelihood at call 98: 371.2198 +#> Negative log-likelihood at call 102: 371.2174 +#> Negative log-likelihood at call 104: 371.2174 +#> Negative log-likelihood at call 107: 371.2147 +#> Negative log-likelihood at call 110: 371.2147 +#> Negative log-likelihood at call 111: 371.2147 +#> Negative log-likelihood at call 112: 371.2145 +#> Negative log-likelihood at call 113: 371.2145 +#> Negative log-likelihood at call 116: 371.2145 +#> Negative log-likelihood at call 119: 371.2135 +#> Negative log-likelihood at call 121: 371.2135 +#> Negative log-likelihood at call 124: 371.2135 +#> Negative log-likelihood at call 126: 371.2135 +#> Negative log-likelihood at call 127: 371.2135 +#> Negative log-likelihood at call 133: 371.2134 +#> Negative log-likelihood at call 135: 371.2134 +#> Negative log-likelihood at call 138: 371.2134 +#> Negative log-likelihood at call 142: 371.2134 +#> Negative log-likelihood at call 152: 97.22429 +#> Optimisation successfully terminated. #> User System verstrichen -#> 0.821 0.000 0.822
    coef(fit.deSolve)
    #> parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink -#> 99.59848 -3.03822 -2.98030 -5.24750
    endpoints(fit.deSolve)
    #> $ff +#> 1.136 0.000 1.135
    coef(fit.deSolve)
    #> NULL
    endpoints(fit.deSolve)
    #> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -603,36 +521,31 @@ #> #> $distimes #> DT50 DT90 -#> parent 7.022929 23.32967 -#> m1 131.760711 437.69961 +#> parent 7.022928 23.32966 +#> m1 131.760710 437.69961 #>
    # Use stepwise fitting, using optimised parameters from parent only fit, FOMC
    FOMC_SFO <- mkinmod( parent = mkinsub("FOMC", "m1"), m1 = mkinsub("SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    # Fit the model to the FOCUS example dataset D using defaults -fit.FOMC_SFO <- mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE) -# Use starting parameters from parent only FOMC fit +fit.FOMC_SFO <- mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    # Use starting parameters from parent only FOMC fit fit.FOMC = mkinfit("FOMC", FOCUS_2006_D, quiet = TRUE) fit.FOMC_SFO <- mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE, - parms.ini = fit.FOMC$bparms.ode) - + parms.ini = fit.FOMC$bparms.ode)
    #> Warning: Observations with value of zero were removed from the data
    # Use stepwise fitting, using optimised parameters from parent only fit, SFORB SFORB_SFO <- mkinmod( parent = list(type = "SFORB", to = "m1", sink = TRUE), m1 = list(type = "SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    # Fit the model to the FOCUS example dataset D using defaults -fit.SFORB_SFO <- mkinfit(SFORB_SFO, FOCUS_2006_D, quiet = TRUE) -fit.SFORB_SFO.deSolve <- mkinfit(SFORB_SFO, FOCUS_2006_D, solution_type = "deSolve", - quiet = TRUE) -# Use starting parameters from parent only SFORB fit (not really needed in this case) +fit.SFORB_SFO <- mkinfit(SFORB_SFO, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    fit.SFORB_SFO.deSolve <- mkinfit(SFORB_SFO, FOCUS_2006_D, solution_type = "deSolve", + quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    # Use starting parameters from parent only SFORB fit (not really needed in this case) fit.SFORB = mkinfit("SFORB", FOCUS_2006_D, quiet = TRUE) -fit.SFORB_SFO <- mkinfit(SFORB_SFO, FOCUS_2006_D, parms.ini = fit.SFORB$bparms.ode, quiet = TRUE)
    +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) -summary(f.noweight)
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:24 2019 -#> Date of summary: Mon Mar 4 14:05:24 2019 + 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 +#> R version used for fitting: 3.5.3 +#> Date of fit: Wed Apr 10 10:10:17 2019 +#> Date of summary: Wed Apr 10 10:10:17 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -640,16 +553,18 @@ #> #> Model predictions using solution type deSolve #> -#> Fitted with method Port using 186 model solutions performed in 0.841 s +#> Fitted with method using 404 model solutions performed in 1.105 s #> -#> Weighting: none +#> Error model: +#> NULL #> #> 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 +#> 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 3.125504 error #> #> Starting values for the transformed parameters actually optimised: #> value lower upper @@ -657,36 +572,38 @@ #> log_k_parent -2.302585 -Inf Inf #> log_k_m1 -2.301586 -Inf Inf #> f_parent_ilr_1 0.000000 -Inf Inf +#> sigma 3.125504 0 Inf #> #> Fixed parameter values: #> value type #> m1_0 0 state #> #> Optimised, transformed parameters with symmetric confidence intervals: -#> Estimate Std. Error Lower Upper -#> parent_0 99.60000 1.61400 96.3300 102.9000 -#> log_k_parent -2.31600 0.04187 -2.4010 -2.2310 -#> log_k_m1 -5.24800 0.13610 -5.5230 -4.9720 -#> f_parent_ilr_1 0.04096 0.06477 -0.0904 0.1723 +#> Estimate Std. Error Lower Upper +#> parent_0 99.60000 1.57000 96.40000 102.8000 +#> log_k_parent -2.31600 0.04087 -2.39900 -2.2330 +#> log_k_m1 -5.24800 0.13320 -5.51800 -4.9770 +#> f_parent_ilr_1 0.04096 0.06312 -0.08746 0.1694 +#> sigma 3.12600 0.35850 2.39600 3.8550 #> #> Parameter correlation: -#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 -#> parent_0 1.0000 0.5178 -0.1701 -0.5489 -#> log_k_parent 0.5178 1.0000 -0.3285 -0.5451 -#> log_k_m1 -0.1701 -0.3285 1.0000 0.7466 -#> f_parent_ilr_1 -0.5489 -0.5451 0.7466 1.0000 -#> -#> Residual standard error: 3.211 on 36 degrees of freedom +#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 sigma +#> parent_0 1.000e+00 5.174e-01 -1.688e-01 -5.471e-01 -5.940e-09 +#> log_k_parent 5.174e-01 1.000e+00 -3.263e-01 -5.426e-01 -1.406e-08 +#> log_k_m1 -1.688e-01 -3.263e-01 1.000e+00 7.478e-01 -2.306e-08 +#> f_parent_ilr_1 -5.471e-01 -5.426e-01 7.478e-01 1.000e+00 -6.664e-09 +#> sigma -5.940e-09 -1.406e-08 -2.306e-08 -6.664e-09 1.000e+00 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. #> t-test (unrealistically) based on the assumption of normal distribution #> for estimators of untransformed parameters. #> Estimate t value Pr(>t) Lower Upper -#> parent_0 99.600000 61.720 2.024e-38 96.330000 1.029e+02 -#> k_parent 0.098700 23.880 5.700e-24 0.090660 1.074e-01 -#> k_m1 0.005261 7.349 5.758e-09 0.003992 6.933e-03 -#> f_parent_to_m1 0.514500 22.490 4.375e-23 0.468100 5.606e-01 +#> parent_0 99.600000 63.430 2.298e-36 96.400000 1.028e+02 +#> k_parent 0.098700 24.470 4.955e-23 0.090820 1.073e-01 +#> k_m1 0.005261 7.510 6.165e-09 0.004012 6.898e-03 +#> f_parent_to_m1 0.514500 23.070 3.104e-22 0.469100 5.596e-01 +#> sigma 3.126000 8.718 2.235e-10 2.396000 3.855e+00 #> #> Chi2 error levels in percent: #> err.min n.optim df @@ -710,10 +627,10 @@ #> 0 parent 102.04 99.59848 2.442e+00 #> 1 parent 93.50 90.23787 3.262e+00 #> 1 parent 92.50 90.23787 2.262e+00 -#> 3 parent 63.23 74.07319 -1.084e+01 -#> 3 parent 68.99 74.07319 -5.083e+00 -#> 7 parent 52.32 49.91206 2.408e+00 -#> 7 parent 55.13 49.91206 5.218e+00 +#> 3 parent 63.23 74.07320 -1.084e+01 +#> 3 parent 68.99 74.07320 -5.083e+00 +#> 7 parent 52.32 49.91207 2.408e+00 +#> 7 parent 55.13 49.91207 5.218e+00 #> 14 parent 27.27 25.01257 2.257e+00 #> 14 parent 26.64 25.01257 1.627e+00 #> 21 parent 11.50 12.53462 -1.035e+00 @@ -723,9 +640,7 @@ #> 50 parent 0.69 0.71624 -2.624e-02 #> 50 parent 0.63 0.71624 -8.624e-02 #> 75 parent 0.05 0.06074 -1.074e-02 -#> 75 parent 0.06 0.06074 -7.381e-04 -#> 0 m1 0.00 0.00000 0.000e+00 -#> 0 m1 0.00 0.00000 0.000e+00 +#> 75 parent 0.06 0.06074 -7.382e-04 #> 1 m1 4.84 4.80296 3.704e-02 #> 1 m1 5.64 4.80296 8.370e-01 #> 3 m1 12.91 13.02400 -1.140e-01 @@ -745,11 +660,10 @@ #> 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.irls <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, reweight.method = "obs", quiet = TRUE) -summary(f.irls)
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:26 2019 -#> Date of summary: Mon Mar 4 14:05:26 2019 +#> 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 +#> R version used for fitting: 3.5.3 +#> Date of fit: Wed Apr 10 10:10:19 2019 +#> Date of summary: Wed Apr 10 10:10:19 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -757,131 +671,10 @@ #> #> Model predictions using solution type deSolve #> -#> Fitted with method Port using 551 model solutions performed in 2.517 s +#> Fitted with method using 558 model solutions performed in 1.602 s #> -#> Weighting: none -#> -#> Iterative reweighting with method obs -#> Final mean squared residuals of observed variables: -#> parent m1 -#> 11.573407 7.407845 -#> -#> 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 -#> -#> 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 -#> -#> Fixed parameter values: -#> value type -#> m1_0 0 state -#> -#> Optimised, transformed parameters with symmetric confidence intervals: -#> Estimate Std. Error Lower Upper -#> parent_0 99.67000 1.79200 96.04000 103.300 -#> log_k_parent -2.31200 0.04560 -2.40400 -2.219 -#> log_k_m1 -5.25100 0.12510 -5.50500 -4.998 -#> f_parent_ilr_1 0.03785 0.06318 -0.09027 0.166 -#> -#> Parameter correlation: -#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 -#> parent_0 1.0000 0.5083 -0.1979 -0.6148 -#> log_k_parent 0.5083 1.0000 -0.3894 -0.6062 -#> log_k_m1 -0.1979 -0.3894 1.0000 0.7417 -#> f_parent_ilr_1 -0.6148 -0.6062 0.7417 1.0000 -#> -#> Residual standard error: 1.054 on 36 degrees of freedom -#> -#> Backtransformed parameters: -#> Confidence intervals for internally transformed parameters are asymmetric. -#> t-test (unrealistically) based on the assumption of normal distribution -#> for estimators of untransformed parameters. -#> Estimate t value Pr(>t) Lower Upper -#> parent_0 99.67000 55.630 8.185e-37 96.040000 1.033e+02 -#> k_parent 0.09906 21.930 1.016e-22 0.090310 1.087e-01 -#> k_m1 0.00524 7.996 8.486e-10 0.004066 6.753e-03 -#> f_parent_to_m1 0.51340 23.000 2.038e-23 0.468100 5.584e-01 -#> -#> Chi2 error levels in percent: -#> err.min n.optim df -#> All data 6.399 4 15 -#> parent 6.466 2 7 -#> m1 4.679 2 8 -#> -#> Resulting formation fractions: -#> ff -#> parent_m1 0.5134 -#> parent_sink 0.4866 -#> -#> Estimated disappearance times: -#> DT50 DT90 -#> parent 6.997 23.24 -#> m1 132.282 439.43 -#> -#> Data: -#> time variable observed predicted residual err -#> 0 parent 99.46 99.67218 -2.122e-01 3.402 -#> 0 parent 102.04 99.67218 2.368e+00 3.402 -#> 1 parent 93.50 90.27153 3.228e+00 3.402 -#> 1 parent 92.50 90.27153 2.228e+00 3.402 -#> 3 parent 63.23 74.04648 -1.082e+01 3.402 -#> 3 parent 68.99 74.04648 -5.056e+00 3.402 -#> 7 parent 52.32 49.82092 2.499e+00 3.402 -#> 7 parent 55.13 49.82092 5.309e+00 3.402 -#> 14 parent 27.27 24.90288 2.367e+00 3.402 -#> 14 parent 26.64 24.90288 1.737e+00 3.402 -#> 21 parent 11.50 12.44765 -9.476e-01 3.402 -#> 21 parent 11.64 12.44765 -8.076e-01 3.402 -#> 35 parent 2.85 3.11002 -2.600e-01 3.402 -#> 35 parent 2.91 3.11002 -2.000e-01 3.402 -#> 50 parent 0.69 0.70374 -1.374e-02 3.402 -#> 50 parent 0.63 0.70374 -7.374e-02 3.402 -#> 75 parent 0.05 0.05913 -9.134e-03 3.402 -#> 75 parent 0.06 0.05913 8.662e-04 3.402 -#> 0 m1 0.00 0.00000 0.000e+00 2.722 -#> 0 m1 0.00 0.00000 0.000e+00 2.722 -#> 1 m1 4.84 4.81328 2.672e-02 2.722 -#> 1 m1 5.64 4.81328 8.267e-01 2.722 -#> 3 m1 12.91 13.04779 -1.378e-01 2.722 -#> 3 m1 12.96 13.04779 -8.779e-02 2.722 -#> 7 m1 22.97 25.07615 -2.106e+00 2.722 -#> 7 m1 24.47 25.07615 -6.062e-01 2.722 -#> 14 m1 41.69 36.70729 4.983e+00 2.722 -#> 14 m1 33.21 36.70729 -3.497e+00 2.722 -#> 21 m1 44.37 41.65050 2.720e+00 2.722 -#> 21 m1 46.44 41.65050 4.790e+00 2.722 -#> 35 m1 41.22 43.28866 -2.069e+00 2.722 -#> 35 m1 37.95 43.28866 -5.339e+00 2.722 -#> 50 m1 41.19 41.19339 -3.386e-03 2.722 -#> 50 m1 40.01 41.19339 -1.183e+00 2.722 -#> 75 m1 40.09 36.43820 3.652e+00 2.722 -#> 75 m1 33.85 36.43820 -2.588e+00 2.722 -#> 100 m1 31.04 31.98971 -9.497e-01 2.722 -#> 100 m1 33.13 31.98971 1.140e+00 2.722 -#> 120 m1 25.15 28.80898 -3.659e+00 2.722 -#> 120 m1 33.31 28.80898 4.501e+00 2.722
    f.w.mean <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, weight = "mean", quiet = TRUE) -summary(f.w.mean)
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:27 2019 -#> Date of summary: Mon Mar 4 14:05:27 2019 -#> -#> Equations: -#> d_parent/dt = - k_parent * parent -#> d_m1/dt = + f_parent_to_m1 * k_parent * parent - k_m1 * m1 -#> -#> Model predictions using solution type deSolve -#> -#> Fitted with method Port using 155 model solutions performed in 0.704 s -#> -#> Weighting: mean +#> Error model: +#> NULL #> #> Starting values for parameters to be optimised: #> value type @@ -889,6 +682,8 @@ #> 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 #> #> Starting values for the transformed parameters actually optimised: #> value lower upper @@ -896,6 +691,8 @@ #> 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 #> #> Fixed parameter values: #> value type @@ -903,331 +700,100 @@ #> #> Optimised, transformed parameters with symmetric confidence intervals: #> Estimate Std. Error Lower Upper -#> parent_0 99.7300 1.93200 95.81000 103.6000 -#> log_k_parent -2.3090 0.04837 -2.40700 -2.2110 -#> log_k_m1 -5.2550 0.12070 -5.49900 -5.0100 -#> f_parent_ilr_1 0.0354 0.06344 -0.09327 0.1641 +#> parent_0 99.65000 1.70200 96.19000 103.1000 +#> log_k_parent -2.31300 0.04376 -2.40200 -2.2240 +#> log_k_m1 -5.25000 0.12430 -5.50400 -4.9970 +#> f_parent_ilr_1 0.03861 0.06171 -0.08708 0.1643 +#> sigma_parent 3.40100 0.56820 2.24400 4.5590 +#> sigma_m1 2.85500 0.45240 1.93400 3.7770 #> #> Parameter correlation: -#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 -#> parent_0 1.0000 0.5004 -0.2143 -0.6514 -#> log_k_parent 0.5004 1.0000 -0.4282 -0.6383 -#> log_k_m1 -0.2143 -0.4282 1.0000 0.7390 -#> f_parent_ilr_1 -0.6514 -0.6383 0.7390 1.0000 -#> -#> Residual standard error: 0.09829 on 36 degrees of freedom -#> -#> Backtransformed parameters: -#> Confidence intervals for internally transformed parameters are asymmetric. -#> t-test (unrealistically) based on the assumption of normal distribution -#> for estimators of untransformed parameters. -#> Estimate t value Pr(>t) Lower Upper -#> parent_0 99.730000 51.630 1.166e-35 95.81000 1.036e+02 -#> k_parent 0.099360 20.670 7.304e-22 0.09007 1.096e-01 -#> k_m1 0.005224 8.287 3.649e-10 0.00409 6.672e-03 -#> f_parent_to_m1 0.512500 22.860 2.497e-23 0.46710 5.578e-01 -#> -#> Chi2 error levels in percent: -#> err.min n.optim df -#> All data 6.401 4 15 -#> parent 6.473 2 7 -#> m1 4.671 2 8 -#> -#> Resulting formation fractions: -#> ff -#> parent_m1 0.5125 -#> parent_sink 0.4875 -#> -#> Estimated disappearance times: -#> DT50 DT90 -#> parent 6.976 23.18 -#> m1 132.696 440.81 -#> -#> Data: -#> time variable observed predicted residual -#> 0 parent 99.46 99.73057 -0.270570 -#> 0 parent 102.04 99.73057 2.309430 -#> 1 parent 93.50 90.29805 3.201945 -#> 1 parent 92.50 90.29805 2.201945 -#> 3 parent 63.23 74.02503 -10.795028 -#> 3 parent 68.99 74.02503 -5.035028 -#> 7 parent 52.32 49.74838 2.571618 -#> 7 parent 55.13 49.74838 5.381618 -#> 14 parent 27.27 24.81588 2.454124 -#> 14 parent 26.64 24.81588 1.824124 -#> 21 parent 11.50 12.37885 -0.878849 -#> 21 parent 11.64 12.37885 -0.738849 -#> 35 parent 2.85 3.08022 -0.230219 -#> 35 parent 2.91 3.08022 -0.170219 -#> 50 parent 0.69 0.69396 -0.003958 -#> 50 parent 0.63 0.69396 -0.063958 -#> 75 parent 0.05 0.05789 -0.007888 -#> 75 parent 0.06 0.05789 0.002112 -#> 0 m1 0.00 0.00000 0.000000 -#> 0 m1 0.00 0.00000 0.000000 -#> 1 m1 4.84 4.82149 0.018512 -#> 1 m1 5.64 4.82149 0.818512 -#> 3 m1 12.91 13.06669 -0.156692 -#> 3 m1 12.96 13.06669 -0.106692 -#> 7 m1 22.97 25.10106 -2.131058 -#> 7 m1 24.47 25.10106 -0.631058 -#> 14 m1 41.69 36.72092 4.969077 -#> 14 m1 33.21 36.72092 -3.510923 -#> 21 m1 44.37 41.64835 2.721647 -#> 21 m1 46.44 41.64835 4.791647 -#> 35 m1 41.22 43.26923 -2.049225 -#> 35 m1 37.95 43.26923 -5.319225 -#> 50 m1 41.19 41.17364 0.016361 -#> 50 m1 40.01 41.17364 -1.163639 -#> 75 m1 40.09 36.43122 3.658776 -#> 75 m1 33.85 36.43122 -2.581224 -#> 100 m1 31.04 31.99612 -0.956124 -#> 100 m1 33.13 31.99612 1.133876 -#> 120 m1 25.15 28.82413 -3.674128 -#> 120 m1 33.31 28.82413 4.485872
    f.w.value <- mkinfit(SFO_SFO.ff, subset(FOCUS_2006_D, value != 0), err = "value", - quiet = TRUE) -summary(f.w.value)
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:28 2019 -#> Date of summary: Mon Mar 4 14:05:28 2019 -#> -#> Equations: -#> d_parent/dt = - k_parent * parent -#> d_m1/dt = + f_parent_to_m1 * k_parent * parent - k_m1 * m1 -#> -#> Model predictions using solution type deSolve -#> -#> Fitted with method Port using 174 model solutions performed in 0.866 s -#> -#> Weighting: manual -#> -#> 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 -#> -#> 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 -#> -#> Fixed parameter values: -#> value type -#> m1_0 0 state -#> -#> Optimised, transformed parameters with symmetric confidence intervals: -#> Estimate Std. Error Lower Upper -#> parent_0 99.6600 2.712000 94.14000 105.2000 -#> log_k_parent -2.2980 0.008118 -2.31500 -2.2820 -#> log_k_m1 -5.2410 0.096690 -5.43800 -5.0450 -#> f_parent_ilr_1 0.0231 0.057990 -0.09474 0.1409 -#> -#> Parameter correlation: -#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 -#> parent_0 1.00000 0.6843 -0.08687 -0.7564 -#> log_k_parent 0.68435 1.0000 -0.12695 -0.5812 -#> log_k_m1 -0.08687 -0.1269 1.00000 0.5195 -#> f_parent_ilr_1 -0.75644 -0.5812 0.51952 1.0000 -#> -#> Residual standard error: 0.08396 on 34 degrees of freedom -#> -#> Backtransformed parameters: -#> Confidence intervals for internally transformed parameters are asymmetric. -#> t-test (unrealistically) based on the assumption of normal distribution -#> for estimators of untransformed parameters. -#> Estimate t value Pr(>t) Lower Upper -#> parent_0 99.660000 36.75 2.957e-29 94.14000 1.052e+02 -#> k_parent 0.100400 123.20 5.927e-47 0.09878 1.021e-01 -#> k_m1 0.005295 10.34 2.447e-12 0.00435 6.444e-03 -#> f_parent_to_m1 0.508200 24.79 1.184e-23 0.46660 5.497e-01 -#> -#> Chi2 error levels in percent: -#> err.min n.optim df -#> All data 6.461 4 15 -#> parent 6.520 2 7 -#> m1 4.744 2 8 -#> -#> Resulting formation fractions: -#> ff -#> parent_m1 0.5082 -#> parent_sink 0.4918 -#> -#> Estimated disappearance times: -#> DT50 DT90 -#> parent 6.902 22.93 -#> m1 130.916 434.89 -#> -#> Data: -#> time variable observed predicted residual err -#> 0 parent 99.46 99.65571 -0.195715 99.46 -#> 0 parent 102.04 99.65571 2.384285 102.04 -#> 1 parent 93.50 90.13383 3.366170 93.50 -#> 1 parent 92.50 90.13383 2.366170 92.50 -#> 3 parent 63.23 73.73252 -10.502518 63.23 -#> 3 parent 68.99 73.73252 -4.742518 68.99 -#> 7 parent 52.32 49.34027 2.979728 52.32 -#> 7 parent 55.13 49.34027 5.789728 55.13 -#> 14 parent 27.27 24.42873 2.841271 27.27 -#> 14 parent 26.64 24.42873 2.211271 26.64 -#> 21 parent 11.50 12.09484 -0.594842 11.50 -#> 21 parent 11.64 12.09484 -0.454842 11.64 -#> 35 parent 2.85 2.96482 -0.114824 2.85 -#> 35 parent 2.91 2.96482 -0.054824 2.91 -#> 50 parent 0.69 0.65733 0.032670 0.69 -#> 50 parent 0.63 0.65733 -0.027330 0.63 -#> 75 parent 0.05 0.05339 -0.003386 0.05 -#> 75 parent 0.06 0.05339 0.006614 0.06 -#> 1 m1 4.84 4.82570 0.014301 4.84 -#> 1 m1 5.64 4.82570 0.814301 5.64 -#> 3 m1 12.91 13.06402 -0.154020 12.91 -#> 3 m1 12.96 13.06402 -0.104020 12.96 -#> 7 m1 22.97 25.04656 -2.076564 22.97 -#> 7 m1 24.47 25.04656 -0.576564 24.47 -#> 14 m1 41.69 36.53601 5.153988 41.69 -#> 14 m1 33.21 36.53601 -3.326012 33.21 -#> 21 m1 44.37 41.34639 3.023609 44.37 -#> 21 m1 46.44 41.34639 5.093609 46.44 -#> 35 m1 41.22 42.82669 -1.606690 41.22 -#> 35 m1 37.95 42.82669 -4.876690 37.95 -#> 50 m1 41.19 40.67342 0.516578 41.19 -#> 50 m1 40.01 40.67342 -0.663422 40.01 -#> 75 m1 40.09 35.91105 4.178947 40.09 -#> 75 m1 33.85 35.91105 -2.061053 33.85 -#> 100 m1 31.04 31.48161 -0.441612 31.04 -#> 100 m1 33.13 31.48161 1.648388 33.13 -#> 120 m1 25.15 28.32018 -3.170181 25.15 -#> 120 m1 33.31 28.32018 4.989819 33.31
    -
    # Manual weighting -dw <- FOCUS_2006_D -errors <- c(parent = 2, m1 = 1) -dw$err.man <- errors[FOCUS_2006_D$name] -f.w.man <- mkinfit(SFO_SFO.ff, dw, err = "err.man", quiet = TRUE) -summary(f.w.man)
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:30 2019 -#> Date of summary: Mon Mar 4 14:05:30 2019 -#> -#> Equations: -#> d_parent/dt = - k_parent * parent -#> d_m1/dt = + f_parent_to_m1 * k_parent * parent - k_m1 * m1 -#> -#> Model predictions using solution type deSolve -#> -#> Fitted with method Port using 270 model solutions performed in 1.23 s -#> -#> Weighting: manual -#> -#> 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 -#> -#> 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 -#> -#> Fixed parameter values: -#> value type -#> m1_0 0 state -#> -#> Optimised, transformed parameters with symmetric confidence intervals: -#> Estimate Std. Error Lower Upper -#> parent_0 99.49000 1.33200 96.7800 102.2000 -#> log_k_parent -2.32100 0.03550 -2.3930 -2.2490 -#> log_k_m1 -5.24100 0.21280 -5.6730 -4.8100 -#> f_parent_ilr_1 0.04571 0.08966 -0.1361 0.2275 -#> -#> Parameter correlation: -#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 -#> parent_0 1.00000 0.5312 -0.09456 -0.3351 -#> log_k_parent 0.53123 1.0000 -0.17800 -0.3360 -#> log_k_m1 -0.09456 -0.1780 1.00000 0.7616 -#> f_parent_ilr_1 -0.33514 -0.3360 0.76156 1.0000 -#> -#> Residual standard error: 2.628 on 36 degrees of freedom +#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 sigma_parent +#> parent_0 1.00000 0.51078 -0.19133 -0.59997 0.035671 +#> log_k_parent 0.51078 1.00000 -0.37458 -0.59239 0.069834 +#> 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.041369 +#> sigma_parent 0.03567 0.06983 -0.02616 -0.04137 1.000000 +#> 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.024822 +#> f_parent_ilr_1 0.039256 +#> sigma_parent -0.004628 +#> sigma_m1 1.000000 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. #> t-test (unrealistically) based on the assumption of normal distribution #> for estimators of untransformed parameters. #> Estimate t value Pr(>t) Lower Upper -#> parent_0 99.490000 74.69 2.221e-41 96.780000 1.022e+02 -#> k_parent 0.098140 28.17 2.012e-26 0.091320 1.055e-01 -#> k_m1 0.005292 4.70 1.873e-05 0.003437 8.148e-03 -#> f_parent_to_m1 0.516200 16.30 1.686e-18 0.452000 5.798e-01 +#> parent_0 99.650000 58.560 2.004e-34 96.190000 1.031e+02 +#> k_parent 0.098970 22.850 1.099e-21 0.090530 1.082e-01 +#> k_m1 0.005245 8.046 1.732e-09 0.004072 6.756e-03 +#> f_parent_to_m1 0.513600 23.560 4.352e-22 0.469300 5.578e-01 +#> sigma_parent 3.401000 5.985 5.662e-07 2.244000 4.559e+00 +#> sigma_m1 2.855000 6.311 2.215e-07 1.934000 3.777e+00 #> #> Chi2 error levels in percent: #> err.min n.optim df -#> All data 6.400 4 15 -#> parent 6.454 2 7 -#> m1 4.708 2 8 +#> All data 6.398 4 15 +#> parent 6.464 2 7 +#> m1 4.682 2 8 #> #> Resulting formation fractions: #> ff -#> parent_m1 0.5162 -#> parent_sink 0.4838 +#> parent_m1 0.5136 +#> parent_sink 0.4864 #> #> Estimated disappearance times: #> DT50 DT90 -#> parent 7.063 23.46 -#> m1 130.971 435.08 +#> parent 7.003 23.26 +#> m1 132.154 439.01 #> #> Data: -#> time variable observed predicted residual err -#> 0 parent 99.46 99.48598 -0.025979 1 -#> 0 parent 102.04 99.48598 2.554021 1 -#> 1 parent 93.50 90.18612 3.313880 1 -#> 1 parent 92.50 90.18612 2.313880 1 -#> 3 parent 63.23 74.11316 -10.883163 1 -#> 3 parent 68.99 74.11316 -5.123163 1 -#> 7 parent 52.32 50.05030 2.269705 1 -#> 7 parent 55.13 50.05030 5.079705 1 -#> 14 parent 27.27 25.17975 2.090250 1 -#> 14 parent 26.64 25.17975 1.460250 1 -#> 21 parent 11.50 12.66765 -1.167654 1 -#> 21 parent 11.64 12.66765 -1.027654 1 -#> 35 parent 2.85 3.20616 -0.356164 1 -#> 35 parent 2.91 3.20616 -0.296164 1 -#> 50 parent 0.69 0.73562 -0.045619 1 -#> 50 parent 0.63 0.73562 -0.105619 1 -#> 75 parent 0.05 0.06326 -0.013256 1 -#> 75 parent 0.06 0.06326 -0.003256 1 -#> 0 m1 0.00 0.00000 0.000000 2 -#> 0 m1 0.00 0.00000 0.000000 2 -#> 1 m1 4.84 4.78729 0.052713 2 -#> 1 m1 5.64 4.78729 0.852713 2 -#> 3 m1 12.91 12.98785 -0.077848 2 -#> 3 m1 12.96 12.98785 -0.027848 2 -#> 7 m1 22.97 24.99695 -2.026946 2 -#> 7 m1 24.47 24.99695 -0.526946 2 -#> 14 m1 41.69 36.66353 5.026472 2 -#> 14 m1 33.21 36.66353 -3.453528 2 -#> 21 m1 44.37 41.65681 2.713186 2 -#> 21 m1 46.44 41.65681 4.783186 2 -#> 35 m1 41.22 43.35031 -2.130314 2 -#> 35 m1 37.95 43.35031 -5.400314 2 -#> 50 m1 41.19 41.25637 -0.066368 2 -#> 50 m1 40.01 41.25637 -1.246368 2 -#> 75 m1 40.09 36.46057 3.629429 2 -#> 75 m1 33.85 36.46057 -2.610571 2 -#> 100 m1 31.04 31.96929 -0.929293 2 -#> 100 m1 33.13 31.96929 1.160707 2 -#> 120 m1 25.15 28.76062 -3.610621 2 -#> 120 m1 33.31 28.76062 4.549379 2
    f.w.man.irls <- mkinfit(SFO_SFO.ff, dw, err = "err.man", quiet = TRUE, - reweight.method = "obs") -summary(f.w.man.irls)
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:05:33 2019 -#> Date of summary: Mon Mar 4 14:05:33 2019 +#> time variable observed predicted residual +#> 0 parent 99.46 99.65417 -1.942e-01 +#> 0 parent 102.04 99.65417 2.386e+00 +#> 1 parent 93.50 90.26333 3.237e+00 +#> 1 parent 92.50 90.26333 2.237e+00 +#> 3 parent 63.23 74.05306 -1.082e+01 +#> 3 parent 68.99 74.05306 -5.063e+00 +#> 7 parent 52.32 49.84325 2.477e+00 +#> 7 parent 55.13 49.84325 5.287e+00 +#> 14 parent 27.27 24.92971 2.340e+00 +#> 14 parent 26.64 24.92971 1.710e+00 +#> 21 parent 11.50 12.46890 -9.689e-01 +#> 21 parent 11.64 12.46890 -8.289e-01 +#> 35 parent 2.85 3.11925 -2.692e-01 +#> 35 parent 2.91 3.11925 -2.092e-01 +#> 50 parent 0.69 0.70679 -1.679e-02 +#> 50 parent 0.63 0.70679 -7.679e-02 +#> 75 parent 0.05 0.05952 -9.523e-03 +#> 75 parent 0.06 0.05952 4.772e-04 +#> 1 m1 4.84 4.81075 2.925e-02 +#> 1 m1 5.64 4.81075 8.292e-01 +#> 3 m1 12.91 13.04197 -1.320e-01 +#> 3 m1 12.96 13.04197 -8.197e-02 +#> 7 m1 22.97 25.06847 -2.098e+00 +#> 7 m1 24.47 25.06847 -5.985e-01 +#> 14 m1 41.69 36.70308 4.987e+00 +#> 14 m1 33.21 36.70308 -3.493e+00 +#> 21 m1 44.37 41.65115 2.719e+00 +#> 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.482e-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 +#> R version used for fitting: 3.5.3 +#> Date of fit: Wed Apr 10 10:10:22 2019 +#> Date of summary: Wed Apr 10 10:10:22 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -1235,14 +801,10 @@ #> #> Model predictions using solution type deSolve #> -#> Fitted with method Port using 692 model solutions performed in 3.197 s -#> -#> Weighting: manual +#> Fitted with method using 756 model solutions performed in 3.222 s #> -#> Iterative reweighting with method obs -#> Final mean squared residuals of observed variables: -#> parent m1 -#> 11.573406 7.407846 +#> Error model: +#> NULL #> #> Starting values for parameters to be optimised: #> value type @@ -1250,6 +812,8 @@ #> k_parent 0.1000 deparm #> k_m1 0.1001 deparm #> f_parent_to_m1 0.5000 deparm +#> sigma_low 0.5000 error +#> rsd_high 0.0700 error #> #> Starting values for the transformed parameters actually optimised: #> value lower upper @@ -1257,95 +821,100 @@ #> 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.500000 0 Inf +#> rsd_high 0.070000 0 Inf #> #> Fixed parameter values: #> value type #> m1_0 0 state #> #> Optimised, transformed parameters with symmetric confidence intervals: -#> Estimate Std. Error Lower Upper -#> parent_0 99.67000 1.79200 96.04000 103.300 -#> log_k_parent -2.31200 0.04560 -2.40400 -2.220 -#> log_k_m1 -5.25100 0.12510 -5.50500 -4.998 -#> f_parent_ilr_1 0.03785 0.06318 -0.09027 0.166 +#> Estimate Std. Error Lower Upper +#> parent_0 100.70000 2.621000 95.400000 106.10000 +#> log_k_parent -2.29700 0.008862 -2.315000 -2.27900 +#> log_k_m1 -5.26600 0.091310 -5.452000 -5.08000 +#> f_parent_ilr_1 0.02374 0.055300 -0.088900 0.13640 +#> sigma_low 0.00305 0.004829 -0.006786 0.01289 +#> rsd_high 0.07928 0.009418 0.060100 0.09847 #> #> Parameter correlation: -#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 -#> parent_0 1.0000 0.5083 -0.1979 -0.6148 -#> log_k_parent 0.5083 1.0000 -0.3894 -0.6062 -#> log_k_m1 -0.1979 -0.3894 1.0000 0.7417 -#> f_parent_ilr_1 -0.6148 -0.6062 0.7417 1.0000 -#> -#> Residual standard error: 1.054 on 36 degrees of freedom +#> parent_0 log_k_parent log_k_m1 f_parent_ilr_1 sigma_low rsd_high +#> parent_0 1.00000 0.67644 -0.10215 -0.76822 0.14294 -0.08783 +#> log_k_parent 0.67644 1.00000 -0.15102 -0.59491 0.34611 -0.08125 +#> log_k_m1 -0.10215 -0.15102 1.00000 0.51808 -0.05236 0.01240 +#> f_parent_ilr_1 -0.76822 -0.59491 0.51808 1.00000 -0.13900 0.03248 +#> sigma_low 0.14294 0.34611 -0.05236 -0.13900 1.00000 -0.16546 +#> rsd_high -0.08783 -0.08125 0.01240 0.03248 -0.16546 1.00000 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. #> t-test (unrealistically) based on the assumption of normal distribution #> for estimators of untransformed parameters. -#> Estimate t value Pr(>t) Lower Upper -#> parent_0 99.67000 55.630 8.185e-37 96.040000 1.033e+02 -#> k_parent 0.09906 21.930 1.016e-22 0.090310 1.087e-01 -#> k_m1 0.00524 7.996 8.486e-10 0.004066 6.753e-03 -#> f_parent_to_m1 0.51340 23.000 2.039e-23 0.468100 5.584e-01 +#> 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.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 #> #> Chi2 error levels in percent: #> err.min n.optim df -#> All data 6.399 4 15 -#> parent 6.466 2 7 -#> m1 4.679 2 8 +#> All data 6.475 4 15 +#> parent 6.573 2 7 +#> m1 4.671 2 8 #> #> Resulting formation fractions: #> ff -#> parent_m1 0.5134 -#> parent_sink 0.4866 +#> parent_m1 0.5084 +#> parent_sink 0.4916 #> #> Estimated disappearance times: -#> DT50 DT90 -#> parent 6.997 23.24 -#> m1 132.282 439.43 +#> DT50 DT90 +#> parent 6.893 22.9 +#> m1 134.156 445.7 #> #> Data: -#> time variable observed predicted residual err.ini err -#> 0 parent 99.46 99.67217 -2.122e-01 1 3.402 -#> 0 parent 102.04 99.67217 2.368e+00 1 3.402 -#> 1 parent 93.50 90.27152 3.228e+00 1 3.402 -#> 1 parent 92.50 90.27152 2.228e+00 1 3.402 -#> 3 parent 63.23 74.04648 -1.082e+01 1 3.402 -#> 3 parent 68.99 74.04648 -5.056e+00 1 3.402 -#> 7 parent 52.32 49.82092 2.499e+00 1 3.402 -#> 7 parent 55.13 49.82092 5.309e+00 1 3.402 -#> 14 parent 27.27 24.90288 2.367e+00 1 3.402 -#> 14 parent 26.64 24.90288 1.737e+00 1 3.402 -#> 21 parent 11.50 12.44765 -9.477e-01 1 3.402 -#> 21 parent 11.64 12.44765 -8.077e-01 1 3.402 -#> 35 parent 2.85 3.11002 -2.600e-01 1 3.402 -#> 35 parent 2.91 3.11002 -2.000e-01 1 3.402 -#> 50 parent 0.69 0.70375 -1.375e-02 1 3.402 -#> 50 parent 0.63 0.70375 -7.375e-02 1 3.402 -#> 75 parent 0.05 0.05913 -9.134e-03 1 3.402 -#> 75 parent 0.06 0.05913 8.661e-04 1 3.402 -#> 0 m1 0.00 0.00000 0.000e+00 2 2.722 -#> 0 m1 0.00 0.00000 0.000e+00 2 2.722 -#> 1 m1 4.84 4.81328 2.672e-02 2 2.722 -#> 1 m1 5.64 4.81328 8.267e-01 2 2.722 -#> 3 m1 12.91 13.04779 -1.378e-01 2 2.722 -#> 3 m1 12.96 13.04779 -8.779e-02 2 2.722 -#> 7 m1 22.97 25.07615 -2.106e+00 2 2.722 -#> 7 m1 24.47 25.07615 -6.062e-01 2 2.722 -#> 14 m1 41.69 36.70729 4.983e+00 2 2.722 -#> 14 m1 33.21 36.70729 -3.497e+00 2 2.722 -#> 21 m1 44.37 41.65050 2.719e+00 2 2.722 -#> 21 m1 46.44 41.65050 4.789e+00 2 2.722 -#> 35 m1 41.22 43.28866 -2.069e+00 2 2.722 -#> 35 m1 37.95 43.28866 -5.339e+00 2 2.722 -#> 50 m1 41.19 41.19339 -3.387e-03 2 2.722 -#> 50 m1 40.01 41.19339 -1.183e+00 2 2.722 -#> 75 m1 40.09 36.43820 3.652e+00 2 2.722 -#> 75 m1 33.85 36.43820 -2.588e+00 2 2.722 -#> 100 m1 31.04 31.98971 -9.497e-01 2 2.722 -#> 100 m1 33.13 31.98971 1.140e+00 2 2.722 -#> 120 m1 25.15 28.80897 -3.659e+00 2 2.722 -#> 120 m1 33.31 28.80897 4.501e+00 2 2.722
    +#> time variable observed predicted residual +#> 0 parent 99.46 100.73434 -1.274340 +#> 0 parent 102.04 100.73434 1.305660 +#> 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.491200 +#> 7 parent 55.13 49.82880 5.301200 +#> 14 parent 27.27 24.64809 2.621908 +#> 14 parent 26.64 24.64809 1.991908 +#> 21 parent 11.50 12.19232 -0.692316 +#> 21 parent 11.64 12.19232 -0.552316 +#> 35 parent 2.85 2.98327 -0.133266 +#> 35 parent 2.91 2.98327 -0.073266 +#> 50 parent 0.69 0.66013 0.029874 +#> 50 parent 0.63 0.66013 -0.030126 +#> 75 parent 0.05 0.05344 -0.003438 +#> 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.318669 +#> 3 m1 12.96 13.22867 -0.268669 +#> 7 m1 22.97 25.36417 -2.394167 +#> 7 m1 24.47 25.36417 -0.894167 +#> 14 m1 41.69 37.00974 4.680262 +#> 14 m1 33.21 37.00974 -3.799738 +#> 21 m1 44.37 41.90133 2.468668 +#> 21 m1 46.44 41.90133 4.538668 +#> 35 m1 41.22 43.45691 -2.236914 +#> 35 m1 37.95 43.45691 -5.506914 +#> 50 m1 41.19 41.34199 -0.151986 +#> 50 m1 40.01 41.34199 -1.331986 +#> 75 m1 40.09 36.61470 3.475295 +#> 75 m1 33.85 36.61470 -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.891303 +#> 120 m1 33.31 29.04130 4.268697
    +
    @@ -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 filef43390002d2.c 2> filef43390002d2.c.err.txt +#> /usr/lib/R/bin/R CMD SHLIB file27ad440ff595.c 2> file27ad440ff595.c.err.txt #> Program source: #> 1: #include <R.h> #> 2: diff --git a/docs/reference/mkinparplot-1.png b/docs/reference/mkinparplot-1.png index ba7212c5..82b9c212 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 e819befe..c90acf4a 100644 --- a/docs/reference/mkinparplot.html +++ b/docs/reference/mkinparplot.html @@ -64,7 +64,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -154,8 +154,8 @@
    model <- mkinmod( T245 = mkinsub("SFO", to = c("phenol"), sink = FALSE), phenol = mkinsub("SFO", to = c("anisole")), - anisole = mkinsub("SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    fit <- mkinfit(model, subset(mccall81_245T, soil == "Commerce"), quiet = TRUE) -mkinparplot(fit)
    + anisole = mkinsub("SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    fit <- mkinfit(model, subset(mccall81_245T, soil == "Commerce"), quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    #> Warning: Optimisation did not converge: +#> false convergence (8)
    mkinparplot(fit)
    diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html index fb4afa9a..56c1ed27 100644 --- a/docs/reference/mkinpredict.html +++ b/docs/reference/mkinpredict.html @@ -65,7 +65,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -333,50 +333,48 @@ 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.002 0.000 0.001
    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.039 0.000 0.039
    +#> 0.04 0.00 0.04
    # Predict from a fitted model - f <- mkinfit(SFO_SFO, FOCUS_2006_C)
    #> Model cost at call 1 : 552.5739 -#> Model cost at call 3 : 552.5739 -#> Model cost at call 4 : 552.5739 -#> Model cost at call 6 : 279.9345 -#> Model cost at call 7 : 279.9344 -#> Model cost at call 8 : 279.9294 -#> Model cost at call 9 : 279.9294 -#> Model cost at call 12 : 200.3629 -#> Model cost at call 13 : 200.3629 -#> Model cost at call 18 : 197.9039 -#> Model cost at call 23 : 197.9039 -#> Model cost at call 25 : 196.6754 -#> Model cost at call 27 : 196.6754 -#> Model cost at call 32 : 196.5742 -#> Model cost at call 33 : 196.5742 -#> Model cost at call 34 : 196.5742 -#> Model cost at call 38 : 196.5361 -#> Model cost at call 40 : 196.5361 -#> Model cost at call 44 : 196.5336 -#> Model cost at call 45 : 196.5336 -#> Model cost at call 50 : 196.5334 -#> Model cost at call 51 : 196.5334 -#> Model cost at call 52 : 196.5334 -#> Model cost at call 56 : 196.5334 -#> Model cost at call 58 : 196.5334 -#> Model cost at call 59 : 196.5334 -#> Model cost at call 65 : 196.5334 -#> Model cost at call 73 : 196.5334 -#> Model cost at call 78 : 196.5334 -#> Model cost at call 80 : 196.5334 -#> Optimisation by method Port successfully terminated.
    head(mkinpredict(f))
    #> time parent m1 + f <- mkinfit(SFO_SFO, FOCUS_2006_C)
    #> Negative log-likelihood at call 1: 552.5739 +#> Negative log-likelihood at call 3: 552.5739 +#> Negative log-likelihood at call 4: 552.5739 +#> Negative log-likelihood at call 6: 279.9345 +#> Negative log-likelihood at call 7: 279.9344 +#> Negative log-likelihood at call 8: 279.9294 +#> Negative log-likelihood at call 9: 279.9294 +#> Negative log-likelihood at call 12: 200.3629 +#> Negative log-likelihood at call 13: 200.3629 +#> Negative log-likelihood at call 18: 197.9039 +#> Negative log-likelihood at call 25: 196.6754 +#> Negative log-likelihood at call 27: 196.6754 +#> Negative log-likelihood at call 32: 196.5742 +#> Negative log-likelihood at call 33: 196.5742 +#> Negative log-likelihood at call 34: 196.5742 +#> Negative log-likelihood at call 38: 196.5361 +#> Negative log-likelihood at call 40: 196.5361 +#> Negative log-likelihood at call 44: 196.5336 +#> Negative log-likelihood at call 45: 196.5336 +#> Negative log-likelihood at call 50: 196.5334 +#> Negative log-likelihood at call 51: 196.5334 +#> Negative log-likelihood at call 52: 196.5334 +#> Negative log-likelihood at call 56: 196.5334 +#> Negative log-likelihood at call 58: 196.5334 +#> Negative log-likelihood at call 59: 196.5334 +#> Negative log-likelihood at call 65: 196.5334 +#> Negative log-likelihood at call 75: 26.64668 +#> Negative log-likelihood at call 103: 26.64668 +#> Optimisation successfully terminated.
    head(mkinpredict(f))
    #> time parent m1 #> 1 0.0 82.49216 0.000000 -#> 2 0.1 80.00563 1.179955 -#> 3 0.2 77.59404 2.312580 -#> 4 0.3 75.25515 3.399419 -#> 5 0.4 72.98675 4.441969 -#> 6 0.5 70.78673 5.441679
    +#> 2 0.1 80.00563 1.179956 +#> 3 0.2 77.59404 2.312583 +#> 4 0.3 75.25515 3.399424 +#> 5 0.4 72.98675 4.441974 +#> 6 0.5 70.78673 5.441685
    @@ -199,8 +199,7 @@

    Examples

    -
    model <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    fit <- mkinfit(model, FOCUS_2006_D, quiet = TRUE) -mkinresplot(fit, "m1")
    +
    model <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    fit <- mkinfit(model, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    mkinresplot(fit, "m1")
    diff --git a/docs/reference/mmkin-3.png b/docs/reference/mmkin-3.png index 952e6af3..4743eabd 100644 Binary files a/docs/reference/mmkin-3.png and b/docs/reference/mmkin-3.png differ diff --git a/docs/reference/mmkin-5.png b/docs/reference/mmkin-5.png index 7ab171d1..5e1527fa 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 af963d13..68451ca6 100644 --- a/docs/reference/mmkin.html +++ b/docs/reference/mmkin.html @@ -64,7 +64,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -194,11 +194,11 @@ time_1 <- system.time(fits.4 <- mmkin(models, datasets, cores = 1, quiet = TRUE)) time_default
    #> User System verstrichen -#> 0.049 0.025 6.950
    time_1
    #> User System verstrichen -#> 22.404 0.000 22.417
    +#> 0.034 0.041 5.124
    time_1
    #> User System verstrichen +#> 19.594 0.000 19.605
    endpoints(fits.0[["SFO_lin", 2]])
    #> $ff #> parent_M1 parent_sink M1_M2 M1_sink -#> 0.7340480 0.2659520 0.7505686 0.2494314 +#> 0.7340481 0.2659519 0.7505683 0.2494317 #> #> $SFORB #> logical(0) @@ -206,8 +206,8 @@ #> $distimes #> DT50 DT90 #> parent 0.8777689 2.915885 -#> M1 2.3257453 7.725959 -#> M2 33.7200874 112.015706 +#> M1 2.3257442 7.725955 +#> M2 33.7200941 112.015728 #>
    # plot.mkinfit handles rows or columns of mmkin result objects plot(fits.0[1, ])
    plot(fits.0[1, ], obs_var = c("M1", "M2"))
    plot(fits.0[, 1])
    # Use double brackets to extract a single mkinfit object, which will be plotted diff --git a/docs/reference/nafta.html b/docs/reference/nafta.html index f12e24e0..93bc3955 100644 --- a/docs/reference/nafta.html +++ b/docs/reference/nafta.html @@ -65,7 +65,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    @@ -182,8 +182,7 @@

    Examples

    -
    nafta_evaluation <- nafta(NAFTA_SOP_Appendix_D, cores = 1)
    #> Warning: Calculation of the Jacobian failed for the cost function of the untransformed model. -#> No t-test results will be available
    #> 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
    print(nafta_evaluation)
    #> Sums of squares: +
    nafta_evaluation <- nafta(NAFTA_SOP_Appendix_D, cores = 1)
    #> 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
    print(nafta_evaluation)
    #> Sums of squares: #> SFO IORE DFOP #> 1378.6832 615.7730 517.8836 #> @@ -192,22 +191,25 @@ #> #> Parameters: #> $SFO -#> Estimate Pr(>t) Lower Upper -#> parent_0 83.7558 8.08e-15 76.92822 90.58328 -#> k_parent_sink 0.0017 7.45e-05 0.00111 0.00262 +#> Estimate Pr(>t) Lower Upper +#> parent_0 83.7558 1.80e-14 77.18268 90.3288 +#> k_parent_sink 0.0017 7.43e-05 0.00112 0.0026 +#> sigma 8.7518 1.22e-05 5.64278 11.8608 #> #> $IORE #> Estimate Pr(>t) Lower Upper -#> parent_0 9.69e+01 NA 8.75e+01 1.06e+02 -#> k__iore_parent_sink 8.40e-14 NA 1.09e-19 6.47e-08 -#> N_parent 6.68e+00 NA 3.54e+00 9.83e+00 +#> parent_0 9.69e+01 NA 8.88e+01 1.05e+02 +#> k__iore_parent_sink 8.40e-14 NA 1.79e-18 3.94e-09 +#> N_parent 6.68e+00 NA 4.19e+00 9.17e+00 +#> sigma 5.85e+00 NA 3.76e+00 7.94e+00 #> #> $DFOP #> Estimate Pr(>t) Lower Upper -#> parent_0 9.76e+01 4.44e-13 8.88e+01 1.06e+02 -#> k1 4.24e-02 3.55e-02 1.41e-02 1.27e-01 -#> k2 8.24e-04 2.06e-02 3.17e-04 2.14e-03 -#> g 2.88e-01 1.31e-04 1.78e-01 4.30e-01 +#> parent_0 9.76e+01 1.94e-13 9.02e+01 1.05e+02 +#> k1 4.24e-02 5.92e-03 2.03e-02 8.88e-02 +#> k2 8.24e-04 6.48e-03 3.89e-04 1.75e-03 +#> g 2.88e-01 2.47e-05 1.95e-01 4.03e-01 +#> sigma 5.36e+00 2.22e-05 3.43e+00 7.30e+00 #> #> #> DTx values: @@ -217,7 +219,7 @@ #> DFOP 429 2380 841 #> #> Representative half-life: -#> [1] 841.4096
    plot(nafta_evaluation)
    +#> [1] 841.4094
    plot(nafta_evaluation)
    @@ -261,10 +261,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, use Levenberg-Marquardt for speed +# 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, method.modFit = "Marq") -plot(fit)
    plot(fit, show_residuals = TRUE)
    + 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)
    #> Warning: Observations with value of zero were removed from the data
    plot(fit)
    plot(fit, show_residuals = TRUE)
    # Show the observed variables separately plot(fit, sep_obs = TRUE, lpos = c("topright", "bottomright"))
    # Show the observed variables separately, with residuals diff --git a/docs/reference/plot.mmkin-1.png b/docs/reference/plot.mmkin-1.png index 2aa7aad9..60e602d4 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 94b1332a..f1e4318c 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 ca78fa42..04762756 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.html b/docs/reference/plot.mmkin.html index e1651208..b3f2de66 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.48.1 + 0.9.49.4
    @@ -187,10 +187,10 @@ If the current plot device is a tikz device,

    Examples

    -
    # Only use one core not to offend CRAN checks, use Levenberg-Marquardt for speed +
    # 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, method.modFit = "Marq") + cores = 1, quiet = TRUE) 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 diff --git a/docs/reference/plot.nafta.html b/docs/reference/plot.nafta.html index 753cbd6a..1aa4485a 100644 --- a/docs/reference/plot.nafta.html +++ b/docs/reference/plot.nafta.html @@ -67,7 +67,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/reference/print.mkinds.html b/docs/reference/print.mkinds.html index 96607b02..2cc112aa 100644 --- a/docs/reference/print.mkinds.html +++ b/docs/reference/print.mkinds.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/reference/print.mkinmod.html b/docs/reference/print.mkinmod.html index 7e138697..d09b629e 100644 --- a/docs/reference/print.mkinmod.html +++ b/docs/reference/print.mkinmod.html @@ -63,7 +63,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/print.nafta.html b/docs/reference/print.nafta.html index 1b35053f..28847afe 100644 --- a/docs/reference/print.nafta.html +++ b/docs/reference/print.nafta.html @@ -65,7 +65,7 @@ mkin - 0.9.48.1 + 0.9.49.4 diff --git a/docs/reference/schaefer07_complex_case-1.png b/docs/reference/schaefer07_complex_case-1.png index 6a621369..49967dc9 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 1e8a6d9e..fec2a187 100644 --- a/docs/reference/schaefer07_complex_case.html +++ b/docs/reference/schaefer07_complex_case.html @@ -65,7 +65,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -167,7 +167,7 @@ A2 = list(type = "SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    fit <- mkinfit(model, data, quiet = TRUE) plot(fit)
    endpoints(fit)
    #> $ff #> parent_A1 parent_B1 parent_C1 parent_sink A1_A2 A1_sink -#> 0.3809621 0.1954665 0.4235714 0.0000000 0.4479674 0.5520326 +#> 0.3809619 0.1954667 0.4235714 0.0000000 0.4479605 0.5520395 #> #> $SFORB #> logical(0) @@ -175,10 +175,10 @@ #> $distimes #> DT50 DT90 #> parent 13.95078 46.34350 -#> A1 49.75342 165.27728 -#> B1 37.26913 123.80536 -#> C1 11.23133 37.30968 -#> A2 28.50591 94.69457 +#> A1 49.75344 165.27734 +#> B1 37.26908 123.80520 +#> C1 11.23130 37.30958 +#> A2 28.50644 94.69634 #>
    # Compare with the results obtained in the original publication print(schaefer07_complex_results)
    #> compound parameter KinGUI ModelMaker deviation #> 1 parent degradation rate 0.0496 0.0506 2.0 diff --git a/docs/reference/sigma_twocomp.html b/docs/reference/sigma_twocomp.html index eca5deec..265c7d1f 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.48.1 + 0.9.49.4
    diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index f561e258..e5565990 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -32,10 +32,10 @@ - + @@ -66,7 +66,7 @@ mkin - 0.9.48.1 + 0.9.49.4 @@ -131,10 +131,10 @@
    -

    Lists model equations, the summary as returned by summary.modFit, - the chi2 error levels calculated according to FOCUS guidance (2006) as far - as defined therein, and optionally the data, consisting of observed, predicted - and residual values.

    +

    Lists model equations, initial parameter values, optimised parameters with some + uncertainty statistics, the chi2 error levels calculated according to FOCUS + guidance (2006) as defined therein, formation fractions, DT50 values and + optionally the data, consisting of observed, predicted and residual values.

    @@ -178,8 +178,7 @@

    Value

    -

    The summary function returns a list derived from - summary.modFit, with components, among others

    +

    The summary function returns a list with components, among others

    version, Rversion

    The mkin and R versions used

    date.fit, date.summary

    The dates where the fit and the summary were produced

    use_of_ff

    Was maximum or minimum use made of formation fractions

    @@ -193,6 +192,7 @@
    errmin

    The chi2 error levels for each observed variable.

    bparms.ode

    All backtransformed ODE parameters, for use as starting parameters for related models.

    +
    errparms

    Error model parameters.

    ff

    The estimated formation fractions derived from the fitted model.

    distimes

    The DT50 and DT90 values for each observed variable.

    SFORB

    If applicable, eigenvalues of SFORB components of the model.

    @@ -209,52 +209,56 @@

    Examples

    -
    summary(mkinfit(mkinmod(parent = mkinsub("SFO")), FOCUS_2006_A, quiet = TRUE))
    #> mkin version used for fitting: 0.9.48.1 -#> R version used for fitting: 3.5.2 -#> Date of fit: Mon Mar 4 14:06:25 2019 -#> Date of summary: Mon Mar 4 14:06:25 2019 +
    summary(mkinfit(mkinmod(parent = mkinsub("SFO")), FOCUS_2006_A, quiet = TRUE))
    #> mkin version used for fitting: 0.9.49.4 +#> R version used for fitting: 3.5.3 +#> Date of fit: Wed Apr 10 10:11:15 2019 +#> Date of summary: Wed Apr 10 10:11:15 2019 #> #> Equations: #> d_parent/dt = - k_parent_sink * parent #> #> Model predictions using solution type analytical #> -#> Fitted with method Port using 35 model solutions performed in 0.085 s +#> Fitted with method using 131 model solutions performed in 0.284 s #> -#> Weighting: none +#> Error model: +#> NULL #> #> Starting values for parameters to be optimised: -#> value type -#> parent_0 101.24 state -#> k_parent_sink 0.10 deparm +#> value type +#> parent_0 101.240000 state +#> k_parent_sink 0.100000 deparm +#> sigma 5.265546 error #> #> Starting values for the transformed parameters actually optimised: #> value lower upper #> parent_0 101.240000 -Inf Inf #> log_k_parent_sink -2.302585 -Inf Inf +#> sigma 5.265546 0 Inf #> #> Fixed parameter values: #> None #> #> Optimised, transformed parameters with symmetric confidence intervals: #> Estimate Std. Error Lower Upper -#> parent_0 109.200 4.3910 98.410 119.900 -#> log_k_parent_sink -3.291 0.1152 -3.573 -3.009 +#> parent_0 109.200 3.70400 99.630 118.700 +#> log_k_parent_sink -3.291 0.09176 -3.527 -3.055 +#> sigma 5.266 1.31600 1.882 8.649 #> #> Parameter correlation: -#> parent_0 log_k_parent_sink -#> parent_0 1.000 0.575 -#> log_k_parent_sink 0.575 1.000 -#> -#> Residual standard error: 6.08 on 6 degrees of freedom +#> parent_0 log_k_parent_sink sigma +#> parent_0 1.000e+00 5.428e-01 1.642e-07 +#> log_k_parent_sink 5.428e-01 1.000e+00 2.507e-07 +#> sigma 1.642e-07 2.507e-07 1.000e+00 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. #> t-test (unrealistically) based on the assumption of normal distribution #> for estimators of untransformed parameters. -#> Estimate t value Pr(>t) Lower Upper -#> parent_0 109.20000 24.860 1.394e-07 98.41000 119.90000 -#> k_parent_sink 0.03722 8.679 6.457e-05 0.02807 0.04934 +#> Estimate t value Pr(>t) Lower Upper +#> parent_0 109.20000 29.47 4.218e-07 99.6300 118.70000 +#> k_parent_sink 0.03722 10.90 5.650e-05 0.0294 0.04712 +#> sigma 5.26600 4.00 5.162e-03 1.8820 8.64900 #> #> Chi2 error levels in percent: #> err.min n.optim df diff --git a/docs/reference/synthetic_data_for_UBA.html b/docs/reference/synthetic_data_for_UBA.html index 6e36e72f..2c2623e4 100644 --- a/docs/reference/synthetic_data_for_UBA.html +++ b/docs/reference/synthetic_data_for_UBA.html @@ -78,7 +78,7 @@ Compare also the code in the example section to see the degradation models." /> mkin - 0.9.48.1 + 0.9.49.4
    diff --git a/docs/reference/test_data_from_UBA_2014-1.png b/docs/reference/test_data_from_UBA_2014-1.png index 47670389..9157a6a1 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 8d282842..528f3987 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 28e8b41c..dfb49619 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.48.1 + 0.9.49.4
    @@ -158,23 +158,24 @@ # large parameter correlations, among other reasons (e.g. the adequacy of the # model). m_ws <- mkinmod(parent_w = mkinsub("SFO", "parent_s"), - parent_s = mkinsub("SFO", "parent_w"))
    #> Successfully compiled differential equation model from auto-generated C code.
    f_river <- mkinfit(m_ws, test_data_from_UBA_2014[[1]]$data, quiet = TRUE) - plot_sep(f_river)
    - summary(f_river)$bpar
    #> Warning: Could not estimate covariance matrix; singular system.
    #> Estimate se_notrans t value Pr(>t) Lower -#> parent_w_0 9.598567e+01 2.33959800 4.102657e+01 9.568967e-19 NA -#> k_parent_w_sink 3.603743e-01 0.03497750 1.030303e+01 4.989002e-09 NA -#> k_parent_w_parent_s 6.031371e-02 0.01746024 3.454346e+00 1.514723e-03 NA -#> k_parent_s_sink 5.108539e-11 0.10382001 4.920572e-10 5.000000e-01 NA -#> k_parent_s_parent_w 7.419672e-02 0.11338240 6.543936e-01 2.608069e-01 NA -#> Upper -#> parent_w_0 NA -#> k_parent_w_sink NA -#> k_parent_w_parent_s NA -#> k_parent_s_sink NA -#> k_parent_s_parent_w NA
    mkinerrmin(f_river)
    #> err.min n.optim df + parent_s = mkinsub("SFO", "parent_w"))
    #> Successfully compiled differential equation model from auto-generated C code.
    f_river <- mkinfit(m_ws, test_data_from_UBA_2014[[1]]$data, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    plot_sep(f_river)
    + summary(f_river)$bpar
    #> Estimate se_notrans t value Pr(>t) +#> parent_w_0 9.598567e+01 2.12352039 4.520120e+01 9.476357e-18 +#> k_parent_w_sink 3.603743e-01 0.03149366 1.144276e+01 4.128096e-09 +#> k_parent_w_parent_s 6.031371e-02 0.01603582 3.761185e+00 9.436293e-04 +#> k_parent_s_sink 7.560341e-11 0.09483761 7.971881e-10 5.000000e-01 +#> k_parent_s_parent_w 7.419672e-02 0.10738374 6.909493e-01 2.500756e-01 +#> sigma 2.982879e+00 0.50546582 5.901247e+00 1.454824e-05 +#> Lower Upper +#> parent_w_0 91.48420501 100.4871438 +#> k_parent_w_sink 0.30668904 0.4234571 +#> k_parent_w_parent_s 0.03423904 0.1062455 +#> k_parent_s_sink 0.00000000 Inf +#> k_parent_s_parent_w 0.02289956 0.2404043 +#> sigma 2.00184022 3.9639169
    mkinerrmin(f_river)
    #> err.min n.optim df #> All data 0.09246946 5 6 #> parent_w 0.06377096 3 3 -#> parent_s 0.20882324 2 3
    +#> parent_s 0.20882325 2 3
    # This is the evaluation used for the validation of software packages # in the expertise from 2014 m_soil <- mkinmod(parent = mkinsub("SFO", c("M1", "M2")), @@ -182,27 +183,28 @@ M2 = mkinsub("SFO", "M3"), M3 = mkinsub("SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    - f_soil <- mkinfit(m_soil, test_data_from_UBA_2014[[3]]$data, quiet = TRUE) - plot_sep(f_soil, lpos = c("topright", "topright", "topright", "bottomright"))
    summary(f_soil)$bpar
    #> Estimate se_notrans t value Pr(>t) Lower -#> parent_0 76.55425584 0.943443794 81.1434198 4.422336e-30 74.602593773 -#> k_parent 0.12081956 0.004815515 25.0896457 1.639665e-18 0.111257517 -#> k_M1 0.84258651 0.930121548 0.9058886 1.871938e-01 0.085876516 -#> k_M2 0.04210878 0.013729902 3.0669396 2.729137e-03 0.021450630 -#> k_M3 0.01122919 0.008044865 1.3958206 8.804912e-02 0.002550984 -#> f_parent_to_M1 0.32240199 0.278620579 1.1571363 1.295467e-01 NA -#> f_parent_to_M2 0.16099854 0.030548888 5.2701931 1.196190e-05 NA -#> f_M1_to_M3 0.27921500 0.314732842 0.8871492 1.920908e-01 0.015016983 -#> f_M2_to_M3 0.55641333 0.650246995 0.8556954 2.004966e-01 0.005360555 + f_soil <- mkinfit(m_soil, test_data_from_UBA_2014[[3]]$data, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    plot_sep(f_soil, lpos = c("topright", "topright", "topright", "bottomright"))
    summary(f_soil)$bpar
    #> Estimate se_notrans t value Pr(>t) Lower +#> parent_0 76.55425584 0.859186614 89.1008479 1.113866e-26 74.755959751 +#> k_parent 0.12081956 0.004601922 26.2541548 1.077373e-16 0.111561582 +#> k_M1 0.84258651 0.806231481 1.0450925 1.545475e-01 0.113839756 +#> k_M2 0.04210878 0.017083049 2.4649452 1.170195e-02 0.018013807 +#> k_M3 0.01122919 0.007245890 1.5497322 6.885127e-02 0.002909463 +#> f_parent_to_M1 0.32240199 0.240803570 1.3388589 9.820821e-02 NA +#> f_parent_to_M2 0.16099854 0.033691991 4.7785403 6.531225e-05 NA +#> f_M1_to_M3 0.27921500 0.269443517 1.0362654 1.565440e-01 0.022992921 +#> f_M2_to_M3 0.55641333 0.595125456 0.9349513 1.807725e-01 0.008003316 +#> sigma 1.14005399 0.149696423 7.6157731 1.727024e-07 0.826735778 #> Upper -#> parent_0 78.50591790 -#> k_parent 0.13120341 -#> k_M1 8.26712661 -#> k_M2 0.08266188 -#> k_M3 0.04942981 +#> parent_0 78.35255192 +#> k_parent 0.13084582 +#> k_M1 6.23641562 +#> k_M2 0.09843279 +#> k_M3 0.04333950 #> f_parent_to_M1 NA #> f_parent_to_M2 NA -#> f_M1_to_M3 0.90777163 -#> f_M2_to_M3 0.99658633
    mkinerrmin(f_soil)
    #> err.min n.optim df +#> f_M1_to_M3 0.86443090 +#> f_M2_to_M3 0.99489847 +#> sigma 1.45337221
    mkinerrmin(f_soil)
    #> err.min n.optim df #> All data 0.09649963 9 20 #> parent 0.04721283 2 6 #> M1 0.26551209 2 5 diff --git a/docs/reference/transform_odeparms.html b/docs/reference/transform_odeparms.html index fbc792f1..7e05480e 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.48.1 + 0.9.49.4
    @@ -202,30 +202,32 @@ The transformation of sets of formation fractions is fragile, as it supposes
    SFO_SFO <- mkinmod( parent = list(type = "SFO", to = "m1", sink = TRUE), m1 = list(type = "SFO"))
    #> Successfully compiled differential equation model from auto-generated C code.
    # Fit the model to the FOCUS example dataset D using defaults -fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE) -fit.s <- summary(fit) +fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    fit.s <- summary(fit) # Transformed and backtransformed parameters print(fit.s$par, 3)
    #> Estimate Std. Error Lower Upper -#> parent_0 99.60 1.6137 96.33 102.87 -#> log_k_parent_sink -3.04 0.0783 -3.20 -2.88 -#> log_k_parent_m1 -2.98 0.0412 -3.06 -2.90 -#> log_k_m1_sink -5.25 0.1361 -5.52 -4.97
    print(fit.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper -#> parent_0 99.59848 1.613712 61.72 2.02e-38 96.32572 1.03e+02 -#> k_parent_sink 0.04792 0.003750 12.78 3.05e-15 0.04089 5.62e-02 -#> k_parent_m1 0.05078 0.002094 24.25 3.41e-24 0.04670 5.52e-02 -#> k_m1_sink 0.00526 0.000716 7.35 5.76e-09 0.00399 6.93e-03
    +#> parent_0 99.60 1.5702 96.40 102.79 +#> log_k_parent_sink -3.04 0.0763 -3.19 -2.88 +#> log_k_parent_m1 -2.98 0.0403 -3.06 -2.90 +#> log_k_m1_sink -5.25 0.1332 -5.52 -4.98 +#> sigma 3.13 0.3585 2.40 3.85
    print(fit.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper +#> parent_0 99.59848 1.57022 63.43 2.30e-36 96.40384 102.7931 +#> k_parent_sink 0.04792 0.00365 13.11 6.13e-15 0.04103 0.0560 +#> k_parent_m1 0.05078 0.00205 24.80 3.27e-23 0.04678 0.0551 +#> k_m1_sink 0.00526 0.00070 7.51 6.16e-09 0.00401 0.0069 +#> sigma 3.12550 0.35852 8.72 2.24e-10 2.39609 3.8549
    # Compare to the version without transforming rate parameters -fit.2 <- mkinfit(SFO_SFO, FOCUS_2006_D, transform_rates = FALSE, quiet = TRUE) -fit.2.s <- summary(fit.2) +fit.2 <- mkinfit(SFO_SFO, FOCUS_2006_D, transform_rates = FALSE, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    fit.2.s <- summary(fit.2) print(fit.2.s$par, 3)
    #> Estimate Std. Error Lower Upper -#> parent_0 99.59848 1.613710 96.32573 1.03e+02 -#> k_parent_sink 0.04792 0.003750 0.04031 5.55e-02 -#> k_parent_m1 0.05078 0.002094 0.04653 5.50e-02 -#> k_m1_sink 0.00526 0.000716 0.00381 6.71e-03
    print(fit.2.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper -#> parent_0 99.59848 1.613710 61.72 2.02e-38 96.32573 1.03e+02 -#> k_parent_sink 0.04792 0.003750 12.78 3.05e-15 0.04031 5.55e-02 -#> k_parent_m1 0.05078 0.002094 24.25 3.41e-24 0.04653 5.50e-02 -#> k_m1_sink 0.00526 0.000716 7.35 5.76e-09 0.00381 6.71e-03
    +#> parent_0 99.59848 1.57022 96.40384 1.03e+02 +#> k_parent_sink 0.04792 0.00365 0.04049 5.54e-02 +#> k_parent_m1 0.05078 0.00205 0.04661 5.49e-02 +#> k_m1_sink 0.00526 0.00070 0.00384 6.69e-03 +#> sigma 3.12550 0.35852 2.39609 3.85e+00
    print(fit.2.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper +#> parent_0 99.59848 1.57022 63.43 2.30e-36 96.40384 1.03e+02 +#> k_parent_sink 0.04792 0.00365 13.11 6.13e-15 0.04049 5.54e-02 +#> k_parent_m1 0.05078 0.00205 24.80 3.27e-23 0.04661 5.49e-02 +#> k_m1_sink 0.00526 0.00070 7.51 6.16e-09 0.00384 6.69e-03 +#> sigma 3.12550 0.35852 8.72 2.24e-10 2.39609 3.85e+00
    initials <- fit$start$value names(initials) <- rownames(fit$start) transformed <- fit$start_transformed$value @@ -238,17 +240,18 @@ The transformation of sets of formation fractions is fragile, as it supposes parent = list(type = "SFO", to = "m1", sink = TRUE), m1 = list(type = "SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    -fit.ff <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE) -fit.ff.s <- summary(fit.ff) +fit.ff <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    fit.ff.s <- summary(fit.ff) print(fit.ff.s$par, 3)
    #> Estimate Std. Error Lower Upper -#> parent_0 99.598 1.6137 96.3257 102.871 -#> log_k_parent -2.316 0.0419 -2.4006 -2.231 -#> log_k_m1 -5.248 0.1361 -5.5235 -4.972 -#> f_parent_ilr_1 0.041 0.0648 -0.0904 0.172
    print(fit.ff.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper -#> parent_0 99.59848 1.613712 61.72 2.02e-38 96.32574 1.03e+02 -#> k_parent 0.09870 0.004132 23.88 5.70e-24 0.09066 1.07e-01 -#> k_m1 0.00526 0.000716 7.35 5.76e-09 0.00399 6.93e-03 -#> f_parent_to_m1 0.51448 0.022880 22.49 4.37e-23 0.46808 5.61e-01
    initials <- c("f_parent_to_m1" = 0.5) +#> parent_0 99.598 1.5702 96.4038 102.793 +#> log_k_parent -2.316 0.0409 -2.3988 -2.233 +#> log_k_m1 -5.248 0.1332 -5.5184 -4.977 +#> f_parent_ilr_1 0.041 0.0631 -0.0875 0.169 +#> sigma 3.126 0.3585 2.3961 3.855
    print(fit.ff.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper +#> parent_0 99.59848 1.57022 63.43 2.30e-36 96.40384 102.7931 +#> k_parent 0.09870 0.00403 24.47 4.96e-23 0.09082 0.1073 +#> k_m1 0.00526 0.00070 7.51 6.16e-09 0.00401 0.0069 +#> f_parent_to_m1 0.51448 0.02230 23.07 3.10e-22 0.46912 0.5596 +#> sigma 3.12550 0.35852 8.72 2.24e-10 2.39609 3.8549
    initials <- c("f_parent_to_m1" = 0.5) transformed <- transform_odeparms(initials, SFO_SFO.ff) backtransform_odeparms(transformed, SFO_SFO.ff)
    #> f_parent_to_m1 #> 0.5
    @@ -258,15 +261,16 @@ The transformation of sets of formation fractions is fragile, as it supposes m1 = list(type = "SFO"), use_of_ff = "max")
    #> Successfully compiled differential equation model from auto-generated C code.
    -fit.ff.2 <- mkinfit(SFO_SFO.ff.2, FOCUS_2006_D, quiet = TRUE) -fit.ff.2.s <- summary(fit.ff.2) +fit.ff.2 <- mkinfit(SFO_SFO.ff.2, FOCUS_2006_D, quiet = TRUE)
    #> Warning: Observations with value of zero were removed from the data
    fit.ff.2.s <- summary(fit.ff.2) print(fit.ff.2.s$par, 3)
    #> Estimate Std. Error Lower Upper -#> parent_0 84.79 2.9651 78.78 90.80 -#> log_k_parent -2.76 0.0809 -2.92 -2.59 -#> log_k_m1 -4.21 0.1115 -4.44 -3.99
    print(fit.ff.2.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper -#> parent_0 84.7916 2.96505 28.60 3.94e-27 78.7838 90.7994 -#> k_parent 0.0635 0.00514 12.36 5.24e-15 0.0539 0.0748 -#> k_m1 0.0148 0.00165 8.97 4.11e-11 0.0118 0.0185
    +#> parent_0 84.79 3.012 78.67 90.91 +#> log_k_parent -2.76 0.082 -2.92 -2.59 +#> log_k_m1 -4.21 0.123 -4.46 -3.96 +#> sigma 8.22 0.943 6.31 10.14
    print(fit.ff.2.s$bpar, 3)
    #> Estimate se_notrans t value Pr(>t) Lower Upper +#> parent_0 84.7916 3.01203 28.15 1.92e-25 78.6704 90.913 +#> k_parent 0.0635 0.00521 12.19 2.91e-14 0.0538 0.075 +#> k_m1 0.0148 0.00182 8.13 8.81e-10 0.0115 0.019 +#> sigma 8.2229 0.94323 8.72 1.73e-10 6.3060 10.140