From 037cdd16f39b8b889e7bda26961a90cd68c6f5a9 Mon Sep 17 00:00:00 2001
From: Johannes Ranke A comprehensive report of the results is obtained using the Since mkin version 0.9-32 (July 2014), we can use shorthand notation like 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. 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. 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. Here we get a performance benefit of a factor of 11 using the version of the differential equation model compiled from C code! This vignette was built with mkin 0.9.49.4 on This vignette was built with mkin 0.9.49.5 on Direct minimization of the negative log-likelihood for non-constant error models (two-component and variance by variable). In the case the error model is constant variance, least squares is used as this is more stable The argument ‘reweight.method’ to mkinfit and mmkin is now obsolete, use ‘error_model’ instead Several algorithms for minimization of the negative log-likelihood for non-constant error models (two-component and variance by variable). In the case the error model is constant variance, least squares is used as this is more stable. The default algorithm tries direct minimization and a three step procedure, and returns the model with the highest likelihood. The argument ‘reweight.method’ to mkinfit and mmkin is now obsolete, use ‘error_model’ and ‘error_model_algorithm’ instead Add a test that checks if we get the best known AIC for parent only fits to 12 test datasets. Add these test datasets for this purpose. New function ‘mkinerrplot’. This function is also used for residual plots in ‘plot.mmkin’ if the argument ‘resplot = “errmod”’ is given, and in ‘plot.mkinfit’ if ‘show_errplot’ is set to TRUE. Remove dependency on FME, only use nlminb for optimisation Use the numDeriv package to calculate hessians The code for manual weighting was removed The fitting time reported in the summary now includes the calculation of the hessians Adapt tests Fix an error in the FOCUS chi2 error level calculations that occurred if parameters were specified in parms.ini that were not in the model. A warning was already issued, but when fitting via mmkin this could easily go unnoticed.Example evaluation of FOCUS Example Dataset D
Johannes Ranke
- 2019-05-08
+ 2019-06-04
FOCUS_D.Rmd
summary
method for mkinfit
objects.## mkin version used for fitting: 0.9.49.4
+
## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:27 2019
-## Date of summary: Wed May 8 20:52:27 2019
+## Date of fit: Tue Jun 4 15:03:18 2019
+## Date of summary: Tue Jun 4 15:03:18 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -177,7 +177,7 @@
##
## Model predictions using solution type deSolve
##
-## Fitted using 389 model solutions performed in 0.998 s
+## Fitted using 389 model solutions performed in 0.978 s
##
## Error model:
## Constant variance
@@ -305,7 +305,7 @@
diff --git a/docs/articles/FOCUS_D_files/figure-html/plot-1.png b/docs/articles/FOCUS_D_files/figure-html/plot-1.png
index 0cd6596d..fc1142ab 100644
Binary files a/docs/articles/FOCUS_D_files/figure-html/plot-1.png and b/docs/articles/FOCUS_D_files/figure-html/plot-1.png differ
diff --git a/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png b/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png
index 64da1d2e..97c61a16 100644
Binary files a/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png and b/docs/articles/FOCUS_D_files/figure-html/plot_2-1.png differ
diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html
index 6771bf63..75b2cf10 100644
--- a/docs/articles/FOCUS_L.html
+++ b/docs/articles/FOCUS_L.html
@@ -30,7 +30,7 @@
@@ -88,7 +88,7 @@
Example evaluation of FOCUS Laboratory Data L1 to L3
Johannes Ranke
- 2019-05-08
+ 2019-06-04
FOCUS_L.Rmd
"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.## mkin version used for fitting: 0.9.49.4
+
## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:29 2019
-## Date of summary: Wed May 8 20:52:29 2019
+## Date of fit: Tue Jun 4 15:03:20 2019
+## Date of summary: Tue Jun 4 15:03:20 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 133 model solutions performed in 0.276 s
+## Fitted using 133 model solutions performed in 0.28 s
##
## Error model:
## Constant variance
@@ -213,10 +213,10 @@
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
-## Warning in cov2cor(ans$cov.unscaled): diag(.) had 0 or NA entries; non-
## finite result is doubtful
## mkin version used for fitting: 0.9.49.4
+
-## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:31 2019
-## Date of summary: Wed May 8 20:52:31 2019
+## Date of fit: Tue Jun 4 15:03:22 2019
+## Date of summary: Tue Jun 4 15:03:22 2019
##
##
## Warning: Optimisation did not converge:
@@ -317,17 +317,17 @@
main = "FOCUS L2 - FOMC")
## mkin version used for fitting: 0.9.49.4
+
-## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:32 2019
-## Date of summary: Wed May 8 20:52:32 2019
+## Date of fit: Tue Jun 4 15:03:23 2019
+## Date of summary: Tue Jun 4 15:03:23 2019
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 239 model solutions performed in 0.483 s
+## Fitted using 239 model solutions performed in 0.484 s
##
## Error model:
## Constant variance
@@ -392,10 +392,10 @@
main = "FOCUS L2 - DFOP")
## mkin version used for fitting: 0.9.49.4
+
## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:33 2019
-## Date of summary: Wed May 8 20:52:33 2019
+## Date of fit: Tue Jun 4 15:03:25 2019
+## Date of summary: Tue Jun 4 15:03:25 2019
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -404,7 +404,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted using 572 model solutions performed in 1.185 s
+## Fitted using 572 model solutions performed in 1.193 s
##
## Error model:
## Constant variance
@@ -491,10 +491,10 @@
## mkin version used for fitting: 0.9.49.4
+
## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:35 2019
-## Date of summary: Wed May 8 20:52:35 2019
+## Date of fit: Tue Jun 4 15:03:26 2019
+## Date of summary: Tue Jun 4 15:03:27 2019
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -503,7 +503,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted using 373 model solutions performed in 0.768 s
+## Fitted using 373 model solutions performed in 0.767 s
##
## Error model:
## Constant variance
@@ -596,17 +596,17 @@
## mkin version used for fitting: 0.9.49.4
+
-## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:36 2019
-## Date of summary: Wed May 8 20:52:37 2019
+## Date of fit: Tue Jun 4 15:03:27 2019
+## Date of summary: Tue Jun 4 15:03:28 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 142 model solutions performed in 0.289 s
+## Fitted using 142 model solutions performed in 0.288 s
##
## Error model:
## Constant variance
@@ -660,17 +660,17 @@
## DT50 DT90
## parent 106 352
## mkin version used for fitting: 0.9.49.4
+
## mkin version used for fitting: 0.9.49.5
## R version used for fitting: 3.6.0
-## Date of fit: Wed May 8 20:52:36 2019
-## Date of summary: Wed May 8 20:52:37 2019
+## Date of fit: Tue Jun 4 15:03:28 2019
+## Date of summary: Tue Jun 4 15:03:28 2019
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted using 224 model solutions performed in 0.45 s
+## Fitted using 224 model solutions performed in 0.449 s
##
## Error model:
## Constant variance
@@ -769,7 +769,7 @@
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png
index cc28c092..32fef506 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png
index 46d85b73..f23a4c97 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png
index ac326b45..ed6a781d 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png
index 62b2ceb3..2e5071d9 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png
index 1a9c8457..04bee502 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png
index 93beb55f..86af1cf9 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png
index 3dd8565c..16235059 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png
index 8d6531ea..0bfac9e2 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png differ
diff --git a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png
index a5e75b70..d194c676 100644
Binary files a/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png and b/docs/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png differ
diff --git a/docs/articles/index.html b/docs/articles/index.html
index eb2d55ef..c2982f4b 100644
--- a/docs/articles/index.html
+++ b/docs/articles/index.html
@@ -60,7 +60,7 @@
@@ -145,7 +145,7 @@
diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html
index c274696c..09b1b8ea 100644
--- a/docs/articles/mkin.html
+++ b/docs/articles/mkin.html
@@ -30,7 +30,7 @@
@@ -88,7 +88,7 @@
Introduction to mkin
Johannes Ranke
- 2019-05-08
+ 2019-06-04
mkin.Rmd
Calculation of time weighted average concentrations with mkin
Johannes Ranke
- 2019-05-08
+ 2019-06-04
twa.Rmd
Example evaluation of FOCUS dataset Z
Johannes Ranke
- 2019-05-08
+ 2019-06-04
FOCUS_Z.Rmd
Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance
Johannes Ranke
- 2019-05-08
+ 2019-06-04
NAFTA_examples.Rmd
## Warning in summary.mkinfit(x): Could not calculate correlation; no
-## covariance matrix
-
-## Warning in summary.mkinfit(x): Could not calculate correlation; no
-## covariance matrix
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
-
+
-
+
## The half-life obtained from the IORE model may be used
## Sums of squares:
## SFO IORE DFOP
## 1996.9408 444.9237 547.5616
@@ -327,11 +322,10 @@
##
## Parameters:
## $SFO
-## Estimate Pr(>t) Lower Upper
-## parent_0 88.16549 NA NA NA
-## k__iore_parent_sink 0.00100 NA NA NA
-## k_parent_sink 0.00803 NA NA NA
-## sigma 7.44786 NA NA NA
+## Estimate Pr(>t) Lower Upper
+## parent_0 88.16549 6.53e-29 83.37344 92.95754
+## k_parent_sink 0.00803 1.67e-13 0.00674 0.00957
+## sigma 7.44786 4.17e-10 5.66209 9.23363
##
## $IORE
## Estimate Pr(>t) Lower Upper
@@ -341,13 +335,12 @@
## sigma 3.52e+00 5.36e-10 2.67e+00 4.36e+00
##
## $DFOP
-## Estimate Pr(>t) Lower Upper
-## parent_0 95.70619 NA NA NA
-## k__iore_parent_sink 0.00100 NA NA NA
-## k1 0.02500 NA NA NA
-## k2 0.00273 NA NA NA
-## g 0.58835 NA NA NA
-## sigma 3.90001 NA NA NA
+## Estimate Pr(>t) Lower Upper
+## parent_0 95.70619 8.99e-32 91.87941 99.53298
+## k1 0.02500 5.25e-04 0.01422 0.04394
+## k2 0.00273 6.84e-03 0.00125 0.00597
+## g 0.58835 2.84e-06 0.36595 0.77970
+## sigma 3.90001 6.94e-10 2.96260 4.83741
##
##
## DTx values:
@@ -366,12 +359,12 @@
Example on page 9, upper panel
-
+
## 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
## Sums of squares:
## SFO IORE DFOP
## 839.35238 88.57064 9.93363
@@ -415,7 +408,7 @@
Example on page 9, lower panel
-
+
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(diag(covar_notrans)): NaNs wurden erzeugt
@@ -423,9 +416,9 @@
## finite result is doubtful
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
## 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
## Sums of squares:
## SFO IORE DFOP
## 35.64867 23.22334 35.64867
@@ -469,12 +462,12 @@
Example on page 10
-
+
## 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
## Sums of squares:
## SFO IORE DFOP
## 899.4089 336.4348 899.4089
@@ -522,12 +515,12 @@
Example on page 11
-
+
## 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
## Sums of squares:
## SFO IORE DFOP
## 579.6805 204.7932 144.7783
@@ -576,14 +569,14 @@
Example on page 12, upper panel
-
+
## Warning in summary.mkinfit(x): Could not calculate correlation; no
## covariance matrix
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
-
+
-
+
## The half-life obtained from the IORE model may be used
## Sums of squares:
## SFO IORE DFOP
## 695.4440 220.0685 695.4440
@@ -626,7 +619,7 @@
Example on page 12, lower panel
-
+
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in qt(alpha/2, rdf): NaNs wurden erzeugt
@@ -637,9 +630,9 @@
## finite result is doubtful
## Warning in qt(1 - alpha/2, rdf): NaNs wurden erzeugt
## 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
## Sums of squares:
## SFO IORE DFOP
## 58.90242 19.06353 58.90242
@@ -682,16 +675,16 @@
Example on page 13
-
+
## 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
## Sums of squares:
## SFO IORE DFOP
## 174.5971 142.3951 174.5971
@@ -735,16 +728,16 @@
DT50 not observed in the study and DFOP problems in PestDF
-
+
## 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
## Sums of squares:
## SFO IORE DFOP
## 48.43249 28.67746 27.26248
@@ -788,7 +781,7 @@
N is less than 1 and DFOP fraction parameter is below zero
-
+
## Warning in sqrt(diag(covar)): NaNs wurden erzeugt
## Warning in sqrt(diag(covar_notrans)): NaNs wurden erzeugt
@@ -796,9 +789,9 @@
## finite result is doubtful
## Warning in sqrt(1/diag(V)): NaNs wurden erzeugt
## 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
-
+
## Sums of squares:
## SFO IORE DFOP
## 245.5248 135.0132 245.5248
@@ -837,16 +830,16 @@
##
## Representative half-life:
## [1] 41.33
## 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
## Sums of squares:
## SFO IORE DFOP
## 106.91629 68.55574 106.91629
@@ -890,14 +883,14 @@
The DFOP fraction parameter is greater than 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
## Sums of squares:
## SFO IORE DFOP
## 3831.804 2062.008 1550.980
@@ -1010,7 +1003,7 @@
Benchmark timings for mkin on various systems
Johannes Ranke
- 2019-05-08
+ 2019-06-04
benchmarks.Rmd
# 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"))
+
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): Optimisation did not converge:
+## iteration limit reached without convergence (10)
-
-## Successfully compiled differential equation model from auto-generated C code.
-## Successfully compiled differential equation model from auto-generated C code.
+
DFOP_SFO <- mkinmod(
+
-
+
+## Successfully compiled differential equation model from auto-generated C code.
+
+## Successfully compiled differential equation model from auto-generated C code.
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
+## Observations with value of zero were removed from the data
-## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
-## Observations with value of zero were removed from the data
-
-## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
## Observations with value of zero were removed from the data
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
## Observations with value of zero were removed from the data
t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(subset(FOCUS_2006_D, value != 0)), error_model = "tc"))[["elapsed"]]
-t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D), error_model = "obs"))[["elapsed"]]
t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(subset(FOCUS_2006_D, value != 0)), error_model = "tc"))[["elapsed"]]
+t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D), error_model = "obs"))[["elapsed"]]
-## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
## Observations with value of zero were removed from the data
@@ -149,117 +149,131 @@
## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...):
## Observations with value of zero were removed from the data
# Two metabolites, synthetic data
-m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),
- M1 = mkinsub("SFO", "M2"),
- M2 = mkinsub("SFO"),
- use_of_ff = "max", quiet = TRUE)
-
-m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")),
- M1 = mkinsub("SFO"),
- M2 = mkinsub("SFO"),
- use_of_ff = "max", quiet = TRUE)
-
-SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data
-
-DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data
-
-t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))["elapsed"]
-t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))["elapsed"]
-
-t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "tc"))["elapsed"]
-t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "tc"))["elapsed"]
-
-t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "obs"))["elapsed"]
-t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))["elapsed"]
-
-mkin_benchmarks[system_string, paste0("t", 1:11)] <- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
-mkin_benchmarks
# Two metabolites, synthetic data
+m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),
+ M1 = mkinsub("SFO", "M2"),
+ M2 = mkinsub("SFO"),
+ use_of_ff = "max", quiet = TRUE)
+
+m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")),
+ M1 = mkinsub("SFO"),
+ M2 = mkinsub("SFO"),
+ use_of_ff = "max", quiet = TRUE)
+
+SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data
+
+DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data
+
+t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))["elapsed"]
+t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))["elapsed"]
+
+t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "tc"))["elapsed"]
+t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "tc"))["elapsed"]
+
+t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "obs"))["elapsed"]
+t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))["elapsed"]
+
+mkin_benchmarks[system_string, paste0("t", 1:11)] <- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
+mkin_benchmarks
-
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.626
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.527## CPU
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 AMD Ryzen 7 1700 Eight-Core Processor
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 AMD Ryzen 7 1700 Eight-Core Processor
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 AMD Ryzen 7 1700 Eight-Core Processor
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 AMD Ryzen 7 1700 Eight-Core Processor
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 AMD Ryzen 7 1700 Eight-Core Processor
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 AMD Ryzen 7 1700 Eight-Core Processor
## OS
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 Linux
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 Linux
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 Linux
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 Linux
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 Linux
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 Linux
## mkin
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 0.9.48.1
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 0.9.49.1
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 0.9.49.2
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 0.9.49.3
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 0.9.49.4
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 0.9.49.5
## t1
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.610
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 8.184
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.064
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.296
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.792
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.936
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 5.805
## t2
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 11.019
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 22.889
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 12.558
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 21.239
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 17.398
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 20.545
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 35.748
## t3
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.764
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.649
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.786
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.510
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.427
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.446
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.403
## t4
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 14.347
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 13.789
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 8.461
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 13.805
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 16.104
-## t5
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 9.495
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 6.395
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.675
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.386
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.527
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 15.335
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 30.613
+## t5
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 9.495
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 6.395
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.675
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.386
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 6.002
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.309
## t6
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 2.623
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 2.542
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 2.723
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 2.643
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.541
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.635
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 2.546
## t7
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 4.587
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.128
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.478
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.374
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.308
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.259
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.214
## t8
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 7.525
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.632
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.862
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.02
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.775
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.737
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.871
## t9
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 16.621
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 8.171
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.618
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 11.124
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 11.116
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.763
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 15.738
## t10
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 8.576
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 3.676
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 3.579
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 5.388
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.063
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 3.427
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.763
## t11
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 31.267
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 5.636
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.574
## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.365
-## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.784
Performance benefit by using compiled model definitions in mkin
Johannes Ranke
- 2019-05-08
+ 2019-06-04
compiled_models.Rmd
## test replications elapsed relative user.self sys.self
-## 3 deSolve, compiled 3 3.131 1.000 3.129 0
-## 1 deSolve, not compiled 3 28.306 9.041 28.290 0
-## 2 Eigenvalue based 3 4.361 1.393 4.358 0
+## 3 deSolve, compiled 3 3.053 1.000 3.052 0
+## 1 deSolve, not compiled 3 28.457 9.321 28.442 0
+## 2 Eigenvalue based 3 4.296 1.407 4.293 0
## user.child sys.child
## 3 0 0
## 1 0 0
@@ -214,16 +214,16 @@
## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
## value of zero were removed from the data
## test replications elapsed relative user.self sys.self
-## 2 deSolve, compiled 3 5.023 1.000 5.021 0
-## 1 deSolve, not compiled 3 53.267 10.605 53.235 0
+## 2 deSolve, compiled 3 4.828 1.000 4.825 0
+## 1 deSolve, not compiled 3 53.153 11.009 53.125 0
## user.child sys.child
## 2 0 0
## 1 0 0
+## Running under: Debian GNU/Linux 10 (buster)
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-pc-linux-gnu (64-bit)
-## Running under: Debian GNU/Linux 9 (stretch)
## CPU model: AMD Ryzen 7 1700 Eight-Core Processor
-mkin 0.9.49.4 (2019-05-08) Unreleased
+mkin 0.9.49.5 (2019-06-04) Unreleased
-
experimental_data_for_UBA.Rd
The 12 datasets were extracted from active substance evaluation dossiers published + by EFSA. Kinetic evaluations shown for these datasets are intended to illustrate + and advance error model specifications. The fact that these data and some + results are shown here do not imply a license to use them in the context of + pesticide registrations, as the use of the data may be constrained by + data protection regulations.
+ +experimental_data_for_UBA_2019
+
+ A list containing twelve datasets as an R6 class defined by mkinds
,
+ each containing, among others, the following components
title
The name of the dataset, e.g. Soil 1
data
A data frame with the data in the form expected by mkinfit
Ranke (2019) Documentation of results obtained for the error model expertise + written for the German Umweltbundesamt.
+ + +++# Model definitions +sfo_sfo <- mkinmod( + parent = mkinsub("SFO", to = "A1"), + A1 = mkinsub("SFO"), + use_of_ff = "max" +)#>+dfop_sfo <- mkinmod( + parent = mkinsub("DFOP", to = "A1"), + A1 = mkinsub("SFO"), + use_of_ff = "max" +)#>+sfo_sfo_sfo <- mkinmod( + parent = mkinsub("SFO", to = "A1"), + A1 = mkinsub("SFO", to = "A2"), + A2 = mkinsub("SFO"), + use_of_ff = "max" +)#>+dfop_sfo_sfo <- mkinmod( + parent = mkinsub("DFOP", to = "A1"), + A1 = mkinsub("SFO", to = "A2"), + A2 = mkinsub("SFO"), + use_of_ff = "max" +)#>d_1_2 <- lapply(experimental_data_for_UBA_2019[1:2], function(x) x$data) +names(d_1_2) <- paste("Soil", 1:2) + + +f_1_2_tc <- mmkin(list("DFOP-SFO-SFO" = dfop_sfo_sfo), d_1_2, error_model = "tc") + +plot(f_1_2_tc, resplot = "errmod")+
Function to plot the confidence intervals obtained using mkinfit
Function to plot squared residuals and the error model for an mkin object
Synthetic datasets for one parent compound with two metabolites
Experimental datasets used for development and testing of error models
If the error model is "const", the error model algorithm is ignored, + because no special algorithm is needed and unweighted (also known as + ordinary) least squares fitting can be applied.
+The default algorithm "d_3" will directly minimize the negative + log-likelihood and - independently - also use the three step algorithm + described below. The fit with the higher likelihood is returned.
+The algorithm "direct" will directly minimize the negative + log-likelihood.
+The algorithm "twostep" will minimize the negative log-likelihood + after an initial unweighted leas squares optimisation step.
+The algorithm "threestep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, and then minimizes the negative log-likelihood + with free degradation and error model parameters.
+The algorithm "fourstep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, then optimizes the degradation model again + with fixed error model parameters, and finally minimizes the negative + log-likelihood with free degradation and error model parameters.
+The algorithm "IRLS" starts with unweighted least squares, + and then iterates optimization of the error model parameters and subsequent + optimization of the degradation model using those error model parameters, + until the error model parameters converge.
Tolerance for the convergence criterion calculated from the error model + parameters in IRLS fits.
Maximum number of iterations in IRLS fits.
Should a trace of the parameter values be listed?
diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html index 51be5465..2c5f056e 100644 --- a/docs/reference/mkinmod.html +++ b/docs/reference/mkinmod.html @@ -68,7 +68,7 @@ For the definition of model types and their parameters, the equations given @@ -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)# Use shorthand notation for parent only degradation fit <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE) -summary(fit)#> mkin version used for fitting: 0.9.49.4 +summary(fit)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:50:50 2019 -#> Date of summary: Wed May 8 20:50:50 2019 +#> Date of fit: Tue Jun 4 15:01:15 2019 +#> Date of summary: Tue Jun 4 15:01:15 2019 #> #> Equations: #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 222 model solutions performed in 0.456 s +#> Fitted using 222 model solutions performed in 0.461 s #> #> Error model: #> Constant variance @@ -443,7 +480,7 @@ Per default, parameters in the kinetic models are internally transformed in m1 = mkinsub("SFO"))#># Fit the model to the FOCUS example dataset D using defaults print(system.time(fit <- mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet = TRUE)))#> Warning: Observations with value of zero were removed from the data#> User System verstrichen -#> 1.488 0.000 1.488coef(fit)#> NULLendpoints(fit)#> $ff +#> 1.521 0.000 1.526coef(fit)#> NULLendpoints(fit)#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -515,7 +552,7 @@ Per default, parameters in the kinetic models are internally transformed in #> Sum of squared residuals at call 126: 371.2134 #> Sum of squared residuals at call 135: 371.2134 #> Negative log-likelihood at call 145: 97.22429#>#> User System verstrichen -#> 1.086 0.000 1.087coef(fit.deSolve)#> NULLendpoints(fit.deSolve)#> $ff +#> 1.093 0.000 1.093coef(fit.deSolve)#> NULLendpoints(fit.deSolve)#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -545,10 +582,10 @@ Per default, parameters in the kinetic models are internally transformed in fit.SFORB_SFO <- mkinfit(SFORB_SFO, FOCUS_2006_D, parms.ini = fit.SFORB$bparms.ode, quiet = TRUE)#> Warning: Observations with value of zero were removed from the data# Weighted fits, including IRLS SFO_SFO.ff <- mkinmod(parent = mkinsub("SFO", "m1"), - m1 = mkinsub("SFO"), use_of_ff = "max")#>f.noweight <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.noweight)#>f.noweight <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.noweight)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:51:06 2019 -#> Date of summary: Wed May 8 20:51:06 2019 +#> Date of fit: Tue Jun 4 15:01:31 2019 +#> Date of summary: Tue Jun 4 15:01:31 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -556,7 +593,7 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 421 model solutions performed in 1.082 s +#> Fitted using 421 model solutions performed in 1.096 s #> #> Error model: #> Constant variance @@ -663,10 +700,10 @@ Per default, parameters in the kinetic models are internally transformed in #> 100 m1 31.04 31.98163 -9.416e-01 #> 100 m1 33.13 31.98163 1.148e+00 #> 120 m1 25.15 28.78984 -3.640e+00 -#> 120 m1 33.31 28.78984 4.520e+00f.obs <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "obs", quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.obs)#> mkin version used for fitting: 0.9.49.4 +#> 120 m1 33.31 28.78984 4.520e+00f.obs <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "obs", quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.obs)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:51:08 2019 -#> Date of summary: Wed May 8 20:51:08 2019 +#> Date of fit: Tue Jun 4 15:01:34 2019 +#> Date of summary: Tue Jun 4 15:01:34 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -674,19 +711,19 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 758 model solutions performed in 1.971 s +#> Fitted using 979 model solutions performed in 2.603 s #> #> Error model: #> Variance unique to each observed variable #> #> Starting values for parameters to be optimised: -#> value type -#> parent_0 100.7500 state -#> k_parent 0.1000 deparm -#> k_m1 0.1001 deparm -#> f_parent_to_m1 0.5000 deparm -#> sigma_parent 3.0000 error -#> sigma_m1 3.0000 error +#> value type +#> parent_0 100.750000 state +#> k_parent 0.100000 deparm +#> k_m1 0.100100 deparm +#> f_parent_to_m1 0.500000 deparm +#> sigma_parent 3.398909 error +#> sigma_m1 2.857157 error #> #> Starting values for the transformed parameters actually optimised: #> value lower upper @@ -694,8 +731,8 @@ Per default, parameters in the kinetic models are internally transformed in #> log_k_parent -2.302585 -Inf Inf #> log_k_m1 -2.301586 -Inf Inf #> f_parent_ilr_1 0.000000 -Inf Inf -#> sigma_parent 3.000000 0 Inf -#> sigma_m1 3.000000 0 Inf +#> sigma_parent 3.398909 0 Inf +#> sigma_m1 2.857157 0 Inf #> #> Fixed parameter values: #> value type @@ -715,14 +752,14 @@ Per default, parameters in the kinetic models are internally transformed in #> parent_0 1.00000 0.51078 -0.19133 -0.59997 0.035670 #> log_k_parent 0.51078 1.00000 -0.37458 -0.59239 0.069833 #> log_k_m1 -0.19133 -0.37458 1.00000 0.74398 -0.026158 -#> f_parent_ilr_1 -0.59997 -0.59239 0.74398 1.00000 -0.041368 +#> f_parent_ilr_1 -0.59997 -0.59239 0.74398 1.00000 -0.041369 #> sigma_parent 0.03567 0.06983 -0.02616 -0.04137 1.000000 -#> sigma_m1 -0.03385 -0.06627 0.02482 0.03925 -0.004628 +#> sigma_m1 -0.03385 -0.06627 0.02482 0.03926 -0.004628 #> sigma_m1 #> parent_0 -0.033847 #> log_k_parent -0.066265 -#> log_k_m1 0.024821 -#> f_parent_ilr_1 0.039255 +#> log_k_m1 0.024823 +#> f_parent_ilr_1 0.039256 #> sigma_parent -0.004628 #> sigma_m1 1.000000 #> @@ -786,17 +823,17 @@ Per default, parameters in the kinetic models are internally transformed in #> 21 m1 46.44 41.65115 4.789e+00 #> 35 m1 41.22 43.29465 -2.075e+00 #> 35 m1 37.95 43.29465 -5.345e+00 -#> 50 m1 41.19 41.19948 -9.481e-03 +#> 50 m1 41.19 41.19948 -9.479e-03 #> 50 m1 40.01 41.19948 -1.189e+00 -#> 75 m1 40.09 36.44036 3.650e+00 -#> 75 m1 33.85 36.44036 -2.590e+00 -#> 100 m1 31.04 31.98774 -9.477e-01 -#> 100 m1 33.13 31.98774 1.142e+00 -#> 120 m1 25.15 28.80430 -3.654e+00 -#> 120 m1 33.31 28.80430 4.506e+00f.tc <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "tc", quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.tc)#> mkin version used for fitting: 0.9.49.4 +#> 75 m1 40.09 36.44035 3.650e+00 +#> 75 m1 33.85 36.44035 -2.590e+00 +#> 100 m1 31.04 31.98773 -9.477e-01 +#> 100 m1 33.13 31.98773 1.142e+00 +#> 120 m1 25.15 28.80429 -3.654e+00 +#> 120 m1 33.31 28.80429 4.506e+00f.tc <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "tc", quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.tc)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:51:11 2019 -#> Date of summary: Wed May 8 20:51:11 2019 +#> Date of fit: Tue Jun 4 15:01:43 2019 +#> Date of summary: Tue Jun 4 15:01:43 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -804,28 +841,28 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 821 model solutions performed in 3.29 s +#> Fitted using 2289 model solutions performed in 9.499 s #> #> Error model: #> Two-component variance function #> #> Starting values for parameters to be optimised: -#> value type -#> parent_0 100.7500 state -#> k_parent 0.1000 deparm -#> k_m1 0.1001 deparm -#> f_parent_to_m1 0.5000 deparm -#> sigma_low 0.1000 error -#> rsd_high 0.1000 error +#> value type +#> parent_0 1.007500e+02 state +#> k_parent 1.000000e-01 deparm +#> k_m1 1.001000e-01 deparm +#> f_parent_to_m1 5.000000e-01 deparm +#> sigma_low 5.641148e-03 error +#> rsd_high 8.430766e-02 error #> #> Starting values for the transformed parameters actually optimised: -#> value lower upper -#> parent_0 100.750000 -Inf Inf -#> log_k_parent -2.302585 -Inf Inf -#> log_k_m1 -2.301586 -Inf Inf -#> f_parent_ilr_1 0.000000 -Inf Inf -#> sigma_low 0.100000 0 Inf -#> rsd_high 0.100000 0 Inf +#> value lower upper +#> parent_0 100.750000000 -Inf Inf +#> log_k_parent -2.302585093 -Inf Inf +#> log_k_m1 -2.301585593 -Inf Inf +#> f_parent_ilr_1 0.000000000 -Inf Inf +#> sigma_low 0.005641148 0 Inf +#> rsd_high 0.084307660 0 Inf #> #> Fixed parameter values: #> value type @@ -856,7 +893,7 @@ Per default, parameters in the kinetic models are internally transformed in #> Estimate t value Pr(>t) Lower Upper #> parent_0 1.007e+02 38.4300 1.180e-28 95.400000 1.061e+02 #> k_parent 1.006e-01 112.8000 1.718e-43 0.098760 1.024e-01 -#> k_m1 5.167e-03 10.9500 1.172e-12 0.004290 6.223e-03 +#> k_m1 5.167e-03 10.9500 1.171e-12 0.004290 6.223e-03 #> f_parent_to_m1 5.084e-01 26.0100 2.146e-23 0.468600 5.481e-01 #> sigma_low 3.050e-03 0.6314 2.661e-01 -0.006786 1.289e-02 #> rsd_high 7.928e-02 8.4170 6.418e-10 0.060100 9.847e-02 @@ -879,18 +916,18 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Data: #> time variable observed predicted residual -#> 0 parent 99.46 100.73433 -1.274329 -#> 0 parent 102.04 100.73433 1.305671 -#> 1 parent 93.50 91.09750 2.402495 -#> 1 parent 92.50 91.09750 1.402495 -#> 3 parent 63.23 74.50140 -11.271403 -#> 3 parent 68.99 74.50140 -5.511403 -#> 7 parent 52.32 49.82880 2.491205 -#> 7 parent 55.13 49.82880 5.301205 -#> 14 parent 27.27 24.64809 2.621909 -#> 14 parent 26.64 24.64809 1.991909 -#> 21 parent 11.50 12.19231 -0.692315 -#> 21 parent 11.64 12.19231 -0.552315 +#> 0 parent 99.46 100.73434 -1.274339 +#> 0 parent 102.04 100.73434 1.305661 +#> 1 parent 93.50 91.09751 2.402486 +#> 1 parent 92.50 91.09751 1.402486 +#> 3 parent 63.23 74.50141 -11.271410 +#> 3 parent 68.99 74.50141 -5.511410 +#> 7 parent 52.32 49.82880 2.491201 +#> 7 parent 55.13 49.82880 5.301201 +#> 14 parent 27.27 24.64809 2.621908 +#> 14 parent 26.64 24.64809 1.991908 +#> 21 parent 11.50 12.19232 -0.692315 +#> 21 parent 11.64 12.19232 -0.552315 #> 35 parent 2.85 2.98327 -0.133266 #> 35 parent 2.91 2.98327 -0.073266 #> 50 parent 0.69 0.66013 0.029874 @@ -899,24 +936,24 @@ Per default, parameters in the kinetic models are internally transformed in #> 75 parent 0.06 0.05344 0.006562 #> 1 m1 4.84 4.88645 -0.046451 #> 1 m1 5.64 4.88645 0.753549 -#> 3 m1 12.91 13.22867 -0.318668 -#> 3 m1 12.96 13.22867 -0.268668 -#> 7 m1 22.97 25.36416 -2.394164 -#> 7 m1 24.47 25.36416 -0.894164 -#> 14 m1 41.69 37.00974 4.680265 -#> 14 m1 33.21 37.00974 -3.799735 -#> 21 m1 44.37 41.90133 2.468670 -#> 21 m1 46.44 41.90133 4.538670 -#> 35 m1 41.22 43.45691 -2.236914 -#> 35 m1 37.95 43.45691 -5.506914 -#> 50 m1 41.19 41.34199 -0.151988 -#> 50 m1 40.01 41.34199 -1.331988 -#> 75 m1 40.09 36.61471 3.475290 -#> 75 m1 33.85 36.61471 -2.764710 -#> 100 m1 31.04 32.20083 -1.160830 -#> 100 m1 33.13 32.20083 0.929170 -#> 120 m1 25.15 29.04131 -3.891312 -#> 120 m1 33.31 29.04131 4.268688+#> 3 m1 12.91 13.22867 -0.318669 +#> 3 m1 12.96 13.22867 -0.268669 +#> 7 m1 22.97 25.36417 -2.394166 +#> 7 m1 24.47 25.36417 -0.894166 +#> 14 m1 41.69 37.00974 4.680263 +#> 14 m1 33.21 37.00974 -3.799737 +#> 21 m1 44.37 41.90133 2.468669 +#> 21 m1 46.44 41.90133 4.538669 +#> 35 m1 41.22 43.45691 -2.236913 +#> 35 m1 37.95 43.45691 -5.506913 +#> 50 m1 41.19 41.34199 -0.151985 +#> 50 m1 40.01 41.34199 -1.331985 +#> 75 m1 40.09 36.61471 3.475295 +#> 75 m1 33.85 36.61471 -2.764705 +#> 100 m1 31.04 32.20082 -1.160823 +#> 100 m1 33.13 32.20082 0.929177 +#> 120 m1 25.15 29.04130 -3.891304 +#> 120 m1 33.31 29.04130 4.268696
# One parent compound, one metabolite, both single first order, path from -# parent to sink included -SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"), +diff --git a/docs/reference/plot.mmkin-1.png b/docs/reference/plot.mmkin-1.png index 03d334f7..8cf969c9 100644 Binary files a/docs/reference/plot.mmkin-1.png and b/docs/reference/plot.mmkin-1.png differ diff --git a/docs/reference/plot.mmkin-2.png b/docs/reference/plot.mmkin-2.png index 25ed01cc..45d67b55 100644 Binary files a/docs/reference/plot.mmkin-2.png and b/docs/reference/plot.mmkin-2.png differ diff --git a/docs/reference/plot.mmkin-3.png b/docs/reference/plot.mmkin-3.png index 7f32afe2..47cd7eec 100644 Binary files a/docs/reference/plot.mmkin-3.png and b/docs/reference/plot.mmkin-3.png differ diff --git a/docs/reference/plot.mmkin-4.png b/docs/reference/plot.mmkin-4.png index b03dffb2..44037bb4 100644 Binary files a/docs/reference/plot.mmkin-4.png and b/docs/reference/plot.mmkin-4.png differ diff --git a/docs/reference/plot.mmkin.html b/docs/reference/plot.mmkin.html index 3037ca24..0b626d1b 100644 --- a/docs/reference/plot.mmkin.html +++ b/docs/reference/plot.mmkin.html @@ -67,7 +67,7 @@ If the current plot device is a tikz device, @@ -197,8 +197,8 @@ If the current plot device is a tikz device,# One parent compound, one metabolite, both single first order, path from +# parent to sink included +SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"), m1 = mkinsub("SFO", full = "Metabolite M1" ))#>#> Warning: Observations with value of zero were removed from the dataplot(fit)# Show the observed variables separately plot(fit, sep_obs = TRUE, lpos = c("topright", "bottomright"))@@ -306,7 +306,7 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, …diff --git a/docs/reference/print.mkinds.html b/docs/reference/print.mkinds.html index 2cc112aa..7c401533 100644 --- a/docs/reference/print.mkinds.html +++ b/docs/reference/print.mkinds.html @@ -63,7 +63,7 @@ @@ -165,7 +165,7 @@ diff --git a/docs/reference/print.mkinmod.html b/docs/reference/print.mkinmod.html index d09b629e..4ca7631b 100644 --- a/docs/reference/print.mkinmod.html +++ b/docs/reference/print.mkinmod.html @@ -63,7 +63,7 @@ @@ -186,7 +186,7 @@ diff --git a/docs/reference/print.nafta.html b/docs/reference/print.nafta.html index 28847afe..10afb77d 100644 --- a/docs/reference/print.nafta.html +++ b/docs/reference/print.nafta.html @@ -65,7 +65,7 @@ @@ -177,7 +177,7 @@ diff --git a/docs/reference/schaefer07_complex_case-1.png b/docs/reference/schaefer07_complex_case-1.png index 49967dc9..34356613 100644 Binary files a/docs/reference/schaefer07_complex_case-1.png and b/docs/reference/schaefer07_complex_case-1.png differ diff --git a/docs/reference/schaefer07_complex_case.html b/docs/reference/schaefer07_complex_case.html index 09f6d1e2..50e07d37 100644 --- a/docs/reference/schaefer07_complex_case.html +++ b/docs/reference/schaefer07_complex_case.html @@ -65,7 +65,7 @@ @@ -216,7 +216,7 @@ diff --git a/docs/reference/sigma_twocomp.html b/docs/reference/sigma_twocomp.html index 265c7d1f..b73b81f4 100644 --- a/docs/reference/sigma_twocomp.html +++ b/docs/reference/sigma_twocomp.html @@ -68,7 +68,7 @@ This is the error model used for example by Werner et al. (1978). The model @@ -195,7 +195,7 @@ This is the error model used for example by Werner et al. (1978). The model diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index b3151da1..ffe1edb1 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -66,7 +66,7 @@ @@ -209,10 +209,10 @@# Only use one core not to offend CRAN checks fits <- mmkin(c("FOMC", "HS"), list("FOCUS B" = FOCUS_2006_B, "FOCUS C" = FOCUS_2006_C), # named list for titles - cores = 1, quiet = TRUE, error_model = "tc") - plot(fits[, "FOCUS C"])+ cores = 1, quiet = TRUE, error_model = "tc")#> Warning: Optimisation did not converge: +#> iteration limit reached without convergence (10)# We can also plot a single fit, if we like the way plot.mmkin works, but then the plot # height should be smaller than the plot width (this is not possible for the html pages # generated by pkgdown, as far as I know). @@ -227,7 +227,7 @@ If the current plot device is a tikz device,diff --git a/docs/reference/plot.nafta.html b/docs/reference/plot.nafta.html index 1aa4485a..fdc6e0ac 100644 --- a/docs/reference/plot.nafta.html +++ b/docs/reference/plot.nafta.html @@ -67,7 +67,7 @@ @@ -187,7 +187,7 @@ plot(x, legend = FALSE, main = "auto", …)Examples
-#> mkin version used for fitting: 0.9.49.4 +diff --git a/docs/reference/synthetic_data_for_UBA.html b/docs/reference/synthetic_data_for_UBA.html index 2c2623e4..4a7ca728 100644 --- a/docs/reference/synthetic_data_for_UBA.html +++ b/docs/reference/synthetic_data_for_UBA.html @@ -40,7 +40,7 @@ Variance component 'a' is based on a normal distribution with standard deviation Variance component 'c' is based on the error model from Rocke and Lorenzato (1995), with the minimum standard deviation (for small y values) of 0.5, and a proportionality constant of 0.07 for the increase of the standard deviation with y. Note that this is a simplified version - of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the + of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the measured values approximates lognormal distribution for high values, whereas we are using normally distributed error components all along. Initial concentrations for metabolites and all values where adding the variance component resulted @@ -78,7 +78,7 @@ Compare also the code in the example section to see the degradation models." /> @@ -151,7 +151,7 @@ Compare also the code in the example section to see the degradation models." /> Variance component 'c' is based on the error model from Rocke and Lorenzato (1995), with the minimum standard deviation (for small y values) of 0.5, and a proportionality constant of 0.07 for the increase of the standard deviation with y. Note that this is a simplified version - of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the + of the error model proposed by Rocke and Lorenzato (1995), as in their model the error of the measured values approximates lognormal distribution for high values, whereas we are using normally distributed error components all along.#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Wed May 8 20:52:12 2019 -#> Date of summary: Wed May 8 20:52:12 2019 +#> Date of fit: Tue Jun 4 15:03:02 2019 +#> Date of summary: Tue Jun 4 15:03:02 2019 #> #> Equations: #> d_parent/dt = - k_parent_sink * parent @@ -307,7 +307,7 @@Initial concentrations for metabolites and all values where adding the variance component resulted @@ -253,7 +253,8 @@ add_err = function(d, sdfunc, LOD = 0.1, reps = 2, seed = 123456789) return(d_NA) } -# The following is the two-component model of Rocke and Lorenzato (1995) +# The following is the simplified version of the two-component model of Rocke +# and Lorenzato (1995) sdfunc_twocomp = function(value, sd_low, rsd_high) { sqrt(sd_low^2 + value^2 * rsd_high^2) } @@ -304,7 +305,7 @@ summary(fit)
diff --git a/docs/reference/test_data_from_UBA_2014-1.png b/docs/reference/test_data_from_UBA_2014-1.png index a9aeea21..fc05f896 100644 Binary files a/docs/reference/test_data_from_UBA_2014-1.png and b/docs/reference/test_data_from_UBA_2014-1.png differ diff --git a/docs/reference/test_data_from_UBA_2014-2.png b/docs/reference/test_data_from_UBA_2014-2.png index f6c91bff..b0dfdd5a 100644 Binary files a/docs/reference/test_data_from_UBA_2014-2.png and b/docs/reference/test_data_from_UBA_2014-2.png differ diff --git a/docs/reference/test_data_from_UBA_2014.html b/docs/reference/test_data_from_UBA_2014.html index bc988340..e40d320f 100644 --- a/docs/reference/test_data_from_UBA_2014.html +++ b/docs/reference/test_data_from_UBA_2014.html @@ -64,7 +64,7 @@ @@ -231,7 +231,7 @@ diff --git a/docs/reference/transform_odeparms.html b/docs/reference/transform_odeparms.html index 7e05480e..bf134334 100644 --- a/docs/reference/transform_odeparms.html +++ b/docs/reference/transform_odeparms.html @@ -71,7 +71,7 @@ The transformation of sets of formation fractions is fragile, as it supposes @@ -293,7 +293,7 @@ The transformation of sets of formation fractions is fragile, as it supposes diff --git a/man/mkinerrplot.Rd b/man/mkinerrplot.Rd index 4cbb5eb7..3b557b0a 100644 --- a/man/mkinerrplot.Rd +++ b/man/mkinerrplot.Rd @@ -68,8 +68,10 @@ \code{\link{mkinplot}}, for a way to plot the data and the fitted lines of the mkinfit object. } \examples{ +\dontrun{ model <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO")) fit <- mkinfit(model, FOCUS_2006_D, error_model = "tc", quiet = TRUE) mkinerrplot(fit) } +} \keyword{ hplot } diff --git a/man/mkinfit.Rd b/man/mkinfit.Rd index 78a53ee0..975eace8 100644 --- a/man/mkinfit.Rd +++ b/man/mkinfit.Rd @@ -31,6 +31,8 @@ mkinfit(mkinmod, observed, quiet = FALSE, atol = 1e-8, rtol = 1e-10, n.outtimes = 100, error_model = c("const", "obs", "tc"), + error_model_algorithm = c("d_3", "direct", "twostep", "threestep", "fourstep", "IRLS"), + reweight.tol = 1e-8, reweight.max.iter = 10, trace_parms = FALSE, ...) } \arguments{ @@ -171,6 +173,44 @@ mkinfit(mkinmod, observed, errors follow a lognormal distribution for large values, not a normal distribution as assumed by this method. } + \item{error_model_algorithm}{ + If the error model is "const", the error model algorithm is ignored, + because no special algorithm is needed and unweighted (also known as + ordinary) least squares fitting can be applied. + + The default algorithm "d_3" will directly minimize the negative + log-likelihood and - independently - also use the three step algorithm + described below. The fit with the higher likelihood is returned. + + The algorithm "direct" will directly minimize the negative + log-likelihood. + + The algorithm "twostep" will minimize the negative log-likelihood + after an initial unweighted leas squares optimisation step. + + The algorithm "threestep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, and then minimizes the negative log-likelihood + with free degradation and error model parameters. + + The algorithm "fourstep" starts with unweighted least squares, + then optimizes only the error model using the degradation model + parameters found, then optimizes the degradation model again + with fixed error model parameters, and finally minimizes the negative + log-likelihood with free degradation and error model parameters. + + The algorithm "IRLS" starts with unweighted least squares, + and then iterates optimization of the error model parameters and subsequent + optimization of the degradation model using those error model parameters, + until the error model parameters converge. + } + \item{reweight.tol}{ + Tolerance for the convergence criterion calculated from the error model + parameters in IRLS fits. + } + \item{reweight.max.iter}{ + Maximum number of iterations in IRLS fits. + } \item{trace_parms}{ Should a trace of the parameter values be listed? } diff --git a/man/plot.mkinfit.Rd b/man/plot.mkinfit.Rd index 9514c5e5..5e20ad90 100644 --- a/man/plot.mkinfit.Rd +++ b/man/plot.mkinfit.Rd @@ -115,6 +115,7 @@ plot_sep(fit, sep_obs = TRUE, show_residuals = TRUE, show_errmin = TRUE, \dots) \examples{ # One parent compound, one metabolite, both single first order, path from # parent to sink included +\dontrun{ SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1", full = "Parent"), m1 = mkinsub("SFO", full = "Metabolite M1" )) fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE, error_model = "tc") @@ -136,6 +137,7 @@ plot_sep(fit, lpos = c("topright", "bottomright")) plot(fit, sep_obs = TRUE, show_errplot = TRUE, lpos = c("topright", "bottomright"), show_errmin = TRUE) } +} \author{ Johannes Ranke } diff --git a/test.log b/test.log index 0fcca094..30196966 100644 --- a/test.log +++ b/test.log @@ -2,28 +2,396 @@ Loading mkin Testing mkin ✔ | OK F W S | Context ⠏ | 0 | Export dataset for reading into CAKE ✔ | 1 | Export dataset for reading into CAKE - ⠏ | 0 | Error model fitting ⠋ | 1 | Error model fitting ⠹ | 3 | Error model fitting ⠸ | 4 | Error model fitting ⠼ | 5 | Error model fitting ⠴ | 6 | Error model fitting ⠧ | 8 | Error model fitting ⠏ | 10 | Error model fitting ⠋ | 11 | Error model fitting ✔ | 12 | Error model fitting [214.1 s] - ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ✔ | 3 | Calculation of FOCUS chi2 error levels [2.3 s] + ⠏ | 0 | Error model fitting ⠋ | 1 | Error model fitting ⠹ | 3 | Error model fitting ⠸ | 4 | Error model fitting ⠼ | 5 | Error model fitting ⠴ | 6 | Error model fitting ⠧ | 8 | Error model fitting ⠏ | 10 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 11 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 30: 65.71278 + ⠹ | 13 | Error model fittingNegative log-likelihood at call 1: 4104.4 +Negative log-likelihood at call 2: 4104.4 +Negative log-likelihood at call 4: 4104.399 +Negative log-likelihood at call 6: 85.79717 +Negative log-likelihood at call 11: 72.50327 +Negative log-likelihood at call 12: 72.50327 +Negative log-likelihood at call 17: 71.79809 +Negative log-likelihood at call 22: 71.10373 +Negative log-likelihood at call 26: 71.10373 +Negative log-likelihood at call 27: 70.84093 +Negative log-likelihood at call 29: 70.84093 +Negative log-likelihood at call 32: 70.64538 +Negative log-likelihood at call 37: 70.64538 +Negative log-likelihood at call 38: 70.33707 +Negative log-likelihood at call 40: 70.33707 +Negative log-likelihood at call 42: 70.33707 +Negative log-likelihood at call 43: 69.89484 +Negative log-likelihood at call 48: 69.05915 +Negative log-likelihood at call 53: 67.99547 +Negative log-likelihood at call 56: 67.99547 +Negative log-likelihood at call 58: 66.59808 +Negative log-likelihood at call 63: 66.59808 +Negative log-likelihood at call 64: 66.2343 +Negative log-likelihood at call 65: 66.23429 +Negative log-likelihood at call 68: 66.23428 +Negative log-likelihood at call 69: 65.67228 +Negative log-likelihood at call 70: 65.67228 +Negative log-likelihood at call 73: 65.67227 +Negative log-likelihood at call 74: 65.33106 +Negative log-likelihood at call 79: 65.31005 +Negative log-likelihood at call 80: 65.31005 +Negative log-likelihood at call 81: 65.31005 +Negative log-likelihood at call 83: 65.31004 +Negative log-likelihood at call 84: 65.17731 +Negative log-likelihood at call 85: 65.17731 +Negative log-likelihood at call 89: 65.16821 +Negative log-likelihood at call 94: 65.13357 +Negative log-likelihood at call 96: 65.13357 +Negative log-likelihood at call 98: 65.13357 +Negative log-likelihood at call 99: 65.08107 +Negative log-likelihood at call 104: 64.86685 +Negative log-likelihood at call 105: 64.86685 +Negative log-likelihood at call 109: 64.50332 +Negative log-likelihood at call 112: 64.50332 +Negative log-likelihood at call 114: 64.10889 +Negative log-likelihood at call 119: 63.57448 +Negative log-likelihood at call 120: 63.57448 +Negative log-likelihood at call 123: 63.57448 +Negative log-likelihood at call 124: 63.5456 +Negative log-likelihood at call 127: 63.5456 +Negative log-likelihood at call 129: 63.48903 +Negative log-likelihood at call 131: 63.48903 +Negative log-likelihood at call 135: 63.47608 +Negative log-likelihood at call 140: 63.47181 +Negative log-likelihood at call 141: 63.47181 +Negative log-likelihood at call 145: 63.4714 +Negative log-likelihood at call 146: 63.4714 +Negative log-likelihood at call 151: 63.4714 +Negative log-likelihood at call 152: 63.4714 +Negative log-likelihood at call 160: 63.4714 +Negative log-likelihood at call 169: 63.4714 + ⠸ | 14 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.014 +Negative log-likelihood at call 34: 7208.013 +Negative log-likelihood at call 36: 132.2815 +Negative log-likelihood at call 41: 75.57291 +Negative log-likelihood at call 42: 75.57291 +Negative log-likelihood at call 45: 75.57291 +Negative log-likelihood at call 47: 73.57761 +Negative log-likelihood at call 52: 70.3766 +Negative log-likelihood at call 57: 68.75449 +Negative log-likelihood at call 62: 68.50149 +Negative log-likelihood at call 64: 68.50149 +Negative log-likelihood at call 66: 68.50146 +Negative log-likelihood at call 67: 68.2035 +Negative log-likelihood at call 71: 68.2035 +Negative log-likelihood at call 72: 68.13162 +Negative log-likelihood at call 77: 67.94078 +Negative log-likelihood at call 78: 67.60889 +Negative log-likelihood at call 80: 67.60889 +Negative log-likelihood at call 83: 66.72645 +Negative log-likelihood at call 88: 65.66209 +Negative log-likelihood at call 93: 64.79703 +Negative log-likelihood at call 98: 64.6745 +Negative log-likelihood at call 101: 64.6745 +Negative log-likelihood at call 102: 64.6745 +Negative log-likelihood at call 103: 64.60902 +Negative log-likelihood at call 108: 64.56616 +Negative log-likelihood at call 113: 64.55458 +Negative log-likelihood at call 117: 64.55458 +Negative log-likelihood at call 119: 64.50796 +Negative log-likelihood at call 121: 64.50796 +Negative log-likelihood at call 124: 64.41361 +Negative log-likelihood at call 129: 64.2052 +Negative log-likelihood at call 134: 63.92264 +Negative log-likelihood at call 139: 63.66033 +Negative log-likelihood at call 140: 63.66033 +Negative log-likelihood at call 142: 63.66033 +Negative log-likelihood at call 144: 63.55606 +Negative log-likelihood at call 146: 63.55606 +Negative log-likelihood at call 149: 63.48537 +Negative log-likelihood at call 150: 63.48537 +Negative log-likelihood at call 154: 63.47183 +Negative log-likelihood at call 156: 63.47183 +Negative log-likelihood at call 157: 63.47183 +Negative log-likelihood at call 159: 63.47141 +Negative log-likelihood at call 160: 63.47141 +Negative log-likelihood at call 162: 63.47141 +Negative log-likelihood at call 164: 63.4714 +Negative log-likelihood at call 165: 63.4714 +Negative log-likelihood at call 168: 63.4714 +Negative log-likelihood at call 172: 63.4714 +Negative log-likelihood at call 173: 63.4714 +Negative log-likelihood at call 181: 63.4714 +Negative log-likelihood at call 182: 63.4714 +Negative log-likelihood at call 191: 63.4714 + ⠼ | 15 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.013 +Negative log-likelihood at call 34: 164.0572 +Negative log-likelihood at call 37: 139.4622 +Negative log-likelihood at call 40: 138.9749 +Negative log-likelihood at call 43: 134.4266 +Negative log-likelihood at call 46: 108.9584 +Negative log-likelihood at call 49: 98.97929 +Negative log-likelihood at call 52: 91.49458 +Negative log-likelihood at call 55: 87.49741 +Negative log-likelihood at call 57: 87.49741 +Negative log-likelihood at call 58: 85.29177 +Negative log-likelihood at call 61: 84.23711 +Negative log-likelihood at call 64: 83.76617 +Negative log-likelihood at call 67: 83.53472 +Negative log-likelihood at call 70: 83.33848 +Negative log-likelihood at call 73: 83.00488 +Negative log-likelihood at call 76: 82.06707 +Negative log-likelihood at call 77: 82.06707 +Negative log-likelihood at call 79: 75.48058 +Negative log-likelihood at call 82: 69.27829 +Negative log-likelihood at call 85: 66.14308 +Negative log-likelihood at call 86: 66.14306 +Negative log-likelihood at call 90: 65.73421 +Negative log-likelihood at call 91: 65.73421 +Negative log-likelihood at call 94: 65.71278 +Negative log-likelihood at call 98: 65.71278 +Negative log-likelihood at call 99: 65.71278 +Negative log-likelihood at call 127: 65.71278 + ⠴ | 16 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.013 +Negative log-likelihood at call 34: 164.0572 +Negative log-likelihood at call 37: 139.4622 +Negative log-likelihood at call 40: 138.9749 +Negative log-likelihood at call 43: 134.4266 +Negative log-likelihood at call 46: 108.9584 +Negative log-likelihood at call 49: 98.97929 +Negative log-likelihood at call 52: 91.49458 +Negative log-likelihood at call 55: 87.49741 +Negative log-likelihood at call 57: 87.49741 +Negative log-likelihood at call 58: 85.29177 +Negative log-likelihood at call 61: 84.23711 +Negative log-likelihood at call 64: 83.76617 +Negative log-likelihood at call 67: 83.53472 +Negative log-likelihood at call 70: 83.33848 +Negative log-likelihood at call 73: 83.00488 +Negative log-likelihood at call 76: 82.06707 +Negative log-likelihood at call 77: 82.06707 +Negative log-likelihood at call 79: 75.48058 +Negative log-likelihood at call 82: 69.27829 +Negative log-likelihood at call 85: 66.14308 +Negative log-likelihood at call 86: 66.14306 +Negative log-likelihood at call 90: 65.73421 +Negative log-likelihood at call 91: 65.73421 +Negative log-likelihood at call 94: 65.71278 +Negative log-likelihood at call 98: 65.71278 +Negative log-likelihood at call 99: 65.71278 +Negative log-likelihood at call 132: 65.71278 + ⠦ | 17 | Error model fittingSum of squared residuals at call 1: 1590.602 +Sum of squared residuals at call 3: 1590.601 +Sum of squared residuals at call 5: 999.7593 +Sum of squared residuals at call 7: 999.7513 +Sum of squared residuals at call 8: 979.5713 +Sum of squared residuals at call 9: 948.3366 +Sum of squared residuals at call 10: 855.9518 +Sum of squared residuals at call 13: 836.4547 +Sum of squared residuals at call 14: 836.4547 +Sum of squared residuals at call 16: 836.422 +Sum of squared residuals at call 19: 836.422 +Sum of squared residuals at call 23: 836.422 +Sum of squared residuals at call 24: 836.422 +Negative log-likelihood at call 32: 7208.013 +Negative log-likelihood at call 34: 164.0572 +Negative log-likelihood at call 37: 139.4622 +Negative log-likelihood at call 40: 138.9749 +Negative log-likelihood at call 43: 134.4266 +Negative log-likelihood at call 46: 108.9584 +Negative log-likelihood at call 49: 98.97929 +Negative log-likelihood at call 52: 91.49458 +Negative log-likelihood at call 55: 87.49741 +Negative log-likelihood at call 57: 87.49741 +Negative log-likelihood at call 58: 85.29177 +Negative log-likelihood at call 61: 84.23711 +Negative log-likelihood at call 64: 83.76617 +Negative log-likelihood at call 67: 83.53472 +Negative log-likelihood at call 70: 83.33848 +Negative log-likelihood at call 73: 83.00488 +Negative log-likelihood at call 76: 82.06707 +Negative log-likelihood at call 77: 82.06707 +Negative log-likelihood at call 79: 75.48058 +Negative log-likelihood at call 82: 69.27829 +Negative log-likelihood at call 85: 66.14308 +Negative log-likelihood at call 86: 66.14306 +Negative log-likelihood at call 90: 65.73421 +Negative log-likelihood at call 91: 65.73421 +Negative log-likelihood at call 94: 65.71278 +Negative log-likelihood at call 98: 65.71278 +Negative log-likelihood at call 99: 65.71278 +Negative log-likelihood at call 118: 65.71278 +Negative log-likelihood at call 134: 65.71278 + ⠧ | 18 | Error model fittingNegative log-likelihood at call 1: 4104.4 +Negative log-likelihood at call 2: 4104.4 +Negative log-likelihood at call 4: 4104.399 +Negative log-likelihood at call 6: 85.79717 +Negative log-likelihood at call 11: 72.50327 +Negative log-likelihood at call 12: 72.50327 +Negative log-likelihood at call 17: 71.79809 +Negative log-likelihood at call 22: 71.10373 +Negative log-likelihood at call 26: 71.10373 +Negative log-likelihood at call 27: 70.84093 +Negative log-likelihood at call 29: 70.84093 +Negative log-likelihood at call 32: 70.64538 +Negative log-likelihood at call 37: 70.64538 +Negative log-likelihood at call 38: 70.33707 +Negative log-likelihood at call 40: 70.33707 +Negative log-likelihood at call 42: 70.33707 +Negative log-likelihood at call 43: 69.89484 +Negative log-likelihood at call 48: 69.05915 +Negative log-likelihood at call 53: 67.99547 +Negative log-likelihood at call 56: 67.99547 +Negative log-likelihood at call 58: 66.59808 +Negative log-likelihood at call 63: 66.59808 +Negative log-likelihood at call 64: 66.2343 +Negative log-likelihood at call 65: 66.23429 +Negative log-likelihood at call 68: 66.23428 +Negative log-likelihood at call 69: 65.67228 +Negative log-likelihood at call 70: 65.67228 +Negative log-likelihood at call 73: 65.67227 +Negative log-likelihood at call 74: 65.33106 +Negative log-likelihood at call 79: 65.31005 +Negative log-likelihood at call 80: 65.31005 +Negative log-likelihood at call 81: 65.31005 +Negative log-likelihood at call 83: 65.31004 +Negative log-likelihood at call 84: 65.17731 +Negative log-likelihood at call 85: 65.17731 +Negative log-likelihood at call 89: 65.16821 +Negative log-likelihood at call 94: 65.13357 +Negative log-likelihood at call 96: 65.13357 +Negative log-likelihood at call 98: 65.13357 +Negative log-likelihood at call 99: 65.08107 +Negative log-likelihood at call 104: 64.86685 +Negative log-likelihood at call 105: 64.86685 +Negative log-likelihood at call 109: 64.50332 +Negative log-likelihood at call 112: 64.50332 +Negative log-likelihood at call 114: 64.10889 +Negative log-likelihood at call 119: 63.57448 +Negative log-likelihood at call 120: 63.57448 +Negative log-likelihood at call 123: 63.57448 +Negative log-likelihood at call 124: 63.5456 +Negative log-likelihood at call 127: 63.5456 +Negative log-likelihood at call 129: 63.48903 +Negative log-likelihood at call 131: 63.48903 +Negative log-likelihood at call 135: 63.47608 +Negative log-likelihood at call 140: 63.47181 +Negative log-likelihood at call 141: 63.47181 +Negative log-likelihood at call 145: 63.4714 +Negative log-likelihood at call 146: 63.4714 +Negative log-likelihood at call 151: 63.4714 +Negative log-likelihood at call 152: 63.4714 +Negative log-likelihood at call 160: 63.4714 +Negative log-likelihood at call 169: 63.4714 +Sum of squared residuals at call 179: 1590.602 +Sum of squared residuals at call 181: 1590.601 +Sum of squared residuals at call 183: 999.7593 +Sum of squared residuals at call 185: 999.7513 +Sum of squared residuals at call 186: 979.5713 +Sum of squared residuals at call 187: 948.3366 +Sum of squared residuals at call 188: 855.9518 +Sum of squared residuals at call 191: 836.4547 +Sum of squared residuals at call 192: 836.4547 +Sum of squared residuals at call 194: 836.422 +Sum of squared residuals at call 197: 836.422 +Sum of squared residuals at call 201: 836.422 +Sum of squared residuals at call 202: 836.422 +Negative log-likelihood at call 210: 7208.013 +Negative log-likelihood at call 212: 164.0572 +Negative log-likelihood at call 215: 139.4622 +Negative log-likelihood at call 218: 138.9749 +Negative log-likelihood at call 221: 134.4266 +Negative log-likelihood at call 224: 108.9584 +Negative log-likelihood at call 227: 98.97929 +Negative log-likelihood at call 230: 91.49458 +Negative log-likelihood at call 233: 87.49741 +Negative log-likelihood at call 235: 87.49741 +Negative log-likelihood at call 236: 85.29177 +Negative log-likelihood at call 239: 84.23711 +Negative log-likelihood at call 242: 83.76617 +Negative log-likelihood at call 245: 83.53472 +Negative log-likelihood at call 248: 83.33848 +Negative log-likelihood at call 251: 83.00488 +Negative log-likelihood at call 254: 82.06707 +Negative log-likelihood at call 255: 82.06707 +Negative log-likelihood at call 257: 75.48058 +Negative log-likelihood at call 260: 69.27829 +Negative log-likelihood at call 263: 66.14308 +Negative log-likelihood at call 264: 66.14306 +Negative log-likelihood at call 268: 65.73421 +Negative log-likelihood at call 269: 65.73421 +Negative log-likelihood at call 272: 65.71278 +Negative log-likelihood at call 276: 65.71278 +Negative log-likelihood at call 277: 65.71278 +Negative log-likelihood at call 305: 65.71278 + ⠇ | 19 | Error model fitting ⠏ | 20 | Error model fitting ✔ | 20 | Error model fitting [506.4 s] + ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ⠼ | 5 | Calculation of FOCUS chi2 error levels ✔ | 5 | Calculation of FOCUS chi2 error levels [3.6 s] ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.8 s] ⠏ | 0 | Test fitting the decline of metabolites from their maximum ⠋ | 1 | Test fitting the decline of metabolites from their maximum ⠹ | 3 | Test fitting the decline of metabolites from their maximum ⠼ | 5 | Test fitting the decline of metabolites from their maximum ✔ | 6 | Test fitting the decline of metabolites from their maximum [0.9 s] ⠏ | 0 | Fitting the logistic model ⠋ | 1 | Fitting the logistic model ✔ | 1 | Fitting the logistic model [0.9 s] ⠏ | 0 | Test dataset class mkinds used in gmkin ✔ | 1 | Test dataset class mkinds used in gmkin - ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.9 s] + ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.7 s] ⠏ | 0 | mkinmod model generation and printing ⠇ | 9 | mkinmod model generation and printing ✔ | 9 | mkinmod model generation and printing [0.2 s] ⠏ | 0 | Model predictions with mkinpredict ⠋ | 1 | Model predictions with mkinpredict ✔ | 3 | Model predictions with mkinpredict [0.3 s] ⠏ | 0 | Evaluations according to 2015 NAFTA guidance ⠙ | 2 | Evaluations according to 2015 NAFTA guidance ⠇ | 9 | Evaluations according to 2015 NAFTA guidance ⠏ | 10 | Evaluations according to 2015 NAFTA guidance ⠴ | 16 | Evaluations according to 2015 NAFTA guidance ✔ | 16 | Evaluations according to 2015 NAFTA guidance [4.1 s] - ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [40.1 s] - ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.3 s] + ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [40.9 s] + ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.2 s] ⠏ | 0 | Summary ✔ | 1 | Summary ⠏ | 0 | Plotting ⠹ | 3 | Plotting ✔ | 4 | Plotting [0.3 s] ⠏ | 0 | AIC calculation ✔ | 2 | AIC calculation - ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.2 s] - ⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.0 s] + ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.4 s] + ⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.2 s] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 289.7 s +Duration: 584.3 s -OK: 115 +OK: 125 Failed: 0 Warnings: 0 Skipped: 0 diff --git a/tests/testthat/AIC_exp_d_3.out b/tests/testthat/AIC_exp_d_3.out new file mode 100644 index 00000000..e69de29b diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf index da2e2fbe..43215ec4 100644 --- a/tests/testthat/FOCUS_2006_D.csf +++ b/tests/testthat/FOCUS_2006_D.csf @@ -5,7 +5,7 @@ Description: MeasurementUnits: % AR TimeUnits: days Comments: Created using mkin::CAKE_export -Date: 2019-05-08 +Date: 2019-06-04 Optimiser: IRLS [Data] diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index c656f7d2..6bb93d48 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -178,84 +178,49 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { expect_true(all(abs(tcf_met_2_15_tc_error_model_errors) < 0.10)) }) -test_that("The two-component error model finds the best known AIC values for parent models", { +test_that("The different error model fitting methods work for parent fits", { skip_on_cran() - library(parallel) - source("~/git/mkin/R/mkinfit.R") - source("~/git/mkin/R/mmkin.R") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data) - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "direct") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "twostep") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "threestep") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "fourstep") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "IRLS") - f_9 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, - error_model = "tc", error_model_algorithm = "d_3") - AIC(f_9) - f_10 <- mkinfit("DFOP", experimental_data_for_UBA_2019[[10]]$data, - error_model = "tc", error_model_algorithm = "IRLS") - f_tc_exp_direct <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "direct", - quiet = TRUE) - f_tc_exp_twostep <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "twostep", - quiet = TRUE) - f_tc_exp_threestep <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "threestep", - quiet = TRUE) - f_tc_exp_fourstep <- mmkin(c("SFO", "DFOP", "HS"), - lapply(experimental_data_for_UBA_2019, function(x) x$data), - error_model = "tc", - error_model_algorithm = "fourstep", - quiet = TRUE) - f_tc_exp_IRLS <- mmkin(c("SFO", "DFOP", "HS"), + + f_9_OLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + quiet = TRUE) + expect_equivalent(round(AIC(f_9_OLS), 2), 137.43) + + f_9_direct <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "direct", quiet = TRUE) + expect_equivalent(round(AIC(f_9_direct), 2), 134.94) + + f_9_twostep <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "twostep", quiet = TRUE) + expect_equivalent(round(AIC(f_9_twostep), 2), 134.94) + + f_9_threestep <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "threestep", quiet = TRUE) + expect_equivalent(round(AIC(f_9_threestep), 2), 139.43) + + f_9_fourstep <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "fourstep", quiet = TRUE) + expect_equivalent(round(AIC(f_9_fourstep), 2), 139.43) + + f_9_IRLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "IRLS", quiet = TRUE) + expect_equivalent(round(AIC(f_9_IRLS), 2), 139.43) + + f_9_d_3 <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + error_model = "tc", error_model_algorithm = "d_3", quiet = TRUE) + expect_equivalent(round(AIC(f_9_d_3), 2), 134.94) +}) + +test_that("The default error model algorithm finds the best known AIC values for parent fits", { + f_tc_exp_d_3 <- mmkin(c("SFO", "DFOP", "HS"), lapply(experimental_data_for_UBA_2019, function(x) x$data), error_model = "tc", - error_model_algorithm = "IRLS", + error_model_algorithm = "d_3", quiet = TRUE) - AIC_exp_direct <- lapply(f_tc_exp_direct, AIC) - AIC_exp_direct <- lapply(AIC_exp_direct, round, 1) - dim(AIC_exp_direct) <- dim(f_tc_exp_direct) - dimnames(AIC_exp_direct) <- dimnames(f_tc_exp_direct) - - AIC_exp_twostep <- lapply(f_tc_exp_twostep, AIC) - AIC_exp_twostep <- lapply(AIC_exp_twostep, round, 1) - dim(AIC_exp_twostep) <- dim(f_tc_exp_twostep) - dimnames(AIC_exp_twostep) <- dimnames(f_tc_exp_twostep) - - AIC_exp_threestep <- lapply(f_tc_exp_threestep, AIC) - AIC_exp_threestep <- lapply(AIC_exp_threestep, round, 1) - dim(AIC_exp_threestep) <- dim(f_tc_exp_threestep) - dimnames(AIC_exp_threestep) <- dimnames(f_tc_exp_threestep) - - AIC_exp_fourstep <- lapply(f_tc_exp_fourstep, AIC) - AIC_exp_fourstep <- lapply(AIC_exp_fourstep, round, 1) - dim(AIC_exp_fourstep) <- dim(f_tc_exp_fourstep) - dimnames(AIC_exp_fourstep) <- dimnames(f_tc_exp_fourstep) - - AIC_exp_IRLS <- lapply(f_tc_exp_IRLS, AIC) - AIC_exp_IRLS <- lapply(AIC_exp_IRLS, round, 1) - dim(AIC_exp_IRLS) <- dim(f_tc_exp_IRLS) - dimnames(AIC_exp_IRLS) <- dimnames(f_tc_exp_IRLS) - - AIC_exp <- lapply(f_tc_exp, AIC) - dim(AIC_exp) <- dim(f_tc_exp) - dimnames(AIC_exp) <- dimnames(f_tc_exp) - unlist(AIC_exp["SFO", c(9, 11, 12)]) - expect_equivalent(round(unlist(AIC_exp["SFO", c(9, 11, 12)]), 1), - c(134.9, 125.5, 82.0)) -}) - + AIC_exp_d_3 <- lapply(f_tc_exp_d_3, AIC) + AIC_exp_d_3 <- lapply(AIC_exp_d_3, round, 1) + dim(AIC_exp_d_3) <- dim(f_tc_exp_d_3) + dimnames(AIC_exp_d_3) <- dimnames(f_tc_exp_d_3) + expect_known_output(AIC_exp_d_3, "AIC_exp_d_3.out") +}) diff --git a/vignettes/mkin_benchmarks.rda b/vignettes/mkin_benchmarks.rda index e7a1bed1..3e160a06 100644 Binary files a/vignettes/mkin_benchmarks.rda and b/vignettes/mkin_benchmarks.rda differ -- cgit v1.2.1 From 1406e590f853bb46bd69dc9c4ca78d7202952386 Mon Sep 17 00:00:00 2001 From: Johannes RankeDate: Tue, 4 Jun 2019 16:05:04 +0200 Subject: Let travis wait longer for the check to finish --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 4b1b59e1..73f66007 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,5 +9,9 @@ addons: - gcc github_packages: - r-lib/covr +script: + - | + R CMD build . + travis_wait 30 R CMD check mkin.tar.gz after_success: - Rscript -e 'covr::codecov()' -- cgit v1.2.1 From 1a9887c3278ac97feb5972c68d9756be430ea132 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 16:27:07 +0200 Subject: Fix travis configuration (hopefully) --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 73f66007..25960287 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,6 @@ github_packages: script: - | R CMD build . - travis_wait 30 R CMD check mkin.tar.gz + travis_wait 30 R CMD check mkin_*.tar.gz after_success: - Rscript -e 'covr::codecov()' -- cgit v1.2.1 From 7b5624ce352d4865026b5ccbf7b397f33fef58a3 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 16:53:41 +0200 Subject: Also wait for codecov... --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 25960287..172d0236 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,4 +14,4 @@ script: R CMD build . travis_wait 30 R CMD check mkin_*.tar.gz after_success: - - Rscript -e 'covr::codecov()' + - travis_wait 30 Rscript -e 'covr::codecov()' -- cgit v1.2.1 From e36a5db313365bc5acc85126792c767fe18acd71 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 19:12:47 +0200 Subject: Add sources for test data for better transparency --- man/experimental_data_for_UBA.Rd | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/man/experimental_data_for_UBA.Rd b/man/experimental_data_for_UBA.Rd index 797444d8..e3386a2f 100644 --- a/man/experimental_data_for_UBA.Rd +++ b/man/experimental_data_for_UBA.Rd @@ -11,6 +11,37 @@ results are shown here do not imply a license to use them in the context of pesticide registrations, as the use of the data may be constrained by data protection regulations. + + Preprocessing of data was performed based on the recommendations of the FOCUS + kinetics workgroup (FOCUS, 2014) as described below. + + Datasets 1 and 2 are from the Renewal Assessment Report (RAR) for imazamox + (France, 2015, p. 15). For setting values reported as zero, an LOQ of 0.1 + was assumed. Metabolite residues reported for day zero were added to the + parent compound residues. + + Datasets 3 and 4 are from the Renewal Assessment Report (RAR) for isofetamid + (Belgium, 2014, p. 8) and show the data for two different radiolabels. For + dataset 4, the value given for the metabolite in the day zero sampling + in replicate B was added to the parent compound, following the respective + FOCUS recommendation. + + Dataset 5 is from the Renewal Assessment Report (RAR) for ethofumesate + (Austria, 2015, p. 16). + + Datasets 6 to 10 are from the Renewal Assessment Report (RAR) for glyphosate + (Germany, 2013a, pages 8, 28, 50, 51). For the initial sampling, + the residues given for the metabolite were added to the parent + value, following the recommendation of the FOCUS kinetics workgroup. + + Dataset 11 is from the Renewal Assessment Report (RAR) for 2,4-D + (Germany, 2013b, p. 644). Values reported as zero were set to NA, with + the exception of the day three sampling of metabolite A2, which was set + to one half of the LOD reported to be 1\% AR. + + Dataset 12 is from the Renewal Assessment Report (RAR) for thifensulfuron-methyl + (United Kingdom, 2014, p. 81). + } \usage{experimental_data_for_UBA_2019} \format{ @@ -22,8 +53,32 @@ } } \source{ + + Austria (2015). Ethofumesate Renewal Assessment Report Volume 3 Annex B.8 (AS) + + Belgium (2014). Isofetamid (IKF-5411) Draft Assessment Report Volume 3 Annex B.8 (AS) + + France (2015). Imazamox Draft Renewal Assessment Report Volume 3 Annex B.8 (AS) + + FOCUS (2014) \dQuote{Generic guidance for Estimating Persistence and + Degradation Kinetics from Environmental Fate Studies on Pesticides in EU + Registration} Report of the FOCUS Work Group on Degradation Kinetics, + Version 1.1, 18 December 2014 + \url{http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics} + + Germany (2013a). Renewal Assessment Report Glyphosate Volume 3 Annex B.8: Environmental Fate + and Behaviour + + Germany (2013b). Renewal Assessment Report 2,4-D Volume 3 Annex B.8: Fate and behaviour in the + environment + Ranke (2019) Documentation of results obtained for the error model expertise written for the German Umweltbundesamt. + + United Kingdom (2014). Thifensulfuron-methyl - Annex B.8 (Volume 3) to the Report and Proposed + Decision of the United Kingdom made to the European Commission under Regulation (EC) No. + 1141/2010 for renewal of an active substance + } \examples{\dontrun{ -- cgit v1.2.1 From 2bc4adb7080e5893ab423768fe2e24777b292f19 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 19:46:55 +0200 Subject: For the d_3 algorithm, report which was better, if any --- R/mkinfit.R | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 33e13d8e..13c7aa90 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -505,8 +505,19 @@ mkinfit <- function(mkinmod, observed, upper = upper[names(parms.start)], control = control, ...) fit$logLik <- - nlogLik.current - if (error_model_algorithm == "d_3" && fit_direct$logLik > fit$logLik) { - fit <- fit_direct + if (error_model_algorithm == "d_3") { + if (abs((fit_direct$logLik - fit$logLik))/mean(c(fit_direct$logLik, fit$logLik)) < 0.001) { + if (!quiet) { + message("Direct fitting and three-step fitting yield approximately the same likelihood") + } + } else { + if (fit_direct$logLik < fit$logLik) { + if (!quiet) message("Three-step fitting yielded a higher likelihood than direct fitting") + } else { + if (!quiet) message("Direct fitting yielded a higher likelihood than three-step fitting") + fit <- fit_direct + } + } } } if (err_mod != "const" & error_model_algorithm == "IRLS") { -- cgit v1.2.1 From 307a317666b8a1cdfe2293371ad8671403680a36 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Tue, 4 Jun 2019 21:10:58 +0200 Subject: Fix a bug introduced in the last commit --- R/mkinfit.R | 6 ++++-- tests/testthat/test_error_models.R | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 13c7aa90..60697cb1 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -505,13 +505,15 @@ mkinfit <- function(mkinmod, observed, upper = upper[names(parms.start)], control = control, ...) fit$logLik <- - nlogLik.current + if (error_model_algorithm == "d_3") { - if (abs((fit_direct$logLik - fit$logLik))/mean(c(fit_direct$logLik, fit$logLik)) < 0.001) { + rel_diff <- abs((fit_direct$logLik - fit$logLik))/-mean(c(fit_direct$logLik, fit$logLik)) + if (rel_diff < 0.0001) { if (!quiet) { message("Direct fitting and three-step fitting yield approximately the same likelihood") } } else { - if (fit_direct$logLik < fit$logLik) { + if (fit$logLik > fit_direct$logLik) { if (!quiet) message("Three-step fitting yielded a higher likelihood than direct fitting") } else { if (!quiet) message("Direct fitting yielded a higher likelihood than three-step fitting") diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index 6bb93d48..404f02ab 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -181,7 +181,7 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { test_that("The different error model fitting methods work for parent fits", { skip_on_cran() - f_9_OLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, + f_9_OLS <- mkinfit("SFO", experimental_data_for_UBA_2019[[9]]$data, quiet = TRUE) expect_equivalent(round(AIC(f_9_OLS), 2), 137.43) -- cgit v1.2.1 From b6027bbd157734e1c7f8c3ba6373451f5c85fc38 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 5 Jun 2019 15:16:59 +0200 Subject: Add error model algorithm to output --- R/mkinfit.R | 27 ++++++--- docs/articles/FOCUS_D.html | 13 +++-- docs/articles/FOCUS_L.html | 77 ++++++++++++++------------ docs/articles/mkin.html | 2 +- docs/articles/twa.html | 2 +- docs/articles/web_only/FOCUS_Z.html | 2 +- docs/articles/web_only/NAFTA_examples.html | 2 +- docs/articles/web_only/benchmarks.html | 24 ++++---- docs/articles/web_only/compiled_models.html | 12 ++-- docs/reference/Extract.mmkin.html | 8 +-- docs/reference/experimental_data_for_UBA.html | 66 +++++++++++++++++++++- docs/reference/mkinfit.html | 50 +++++++++-------- docs/reference/mkinmod.html | 2 +- docs/reference/mkinpredict.html | 6 +- docs/reference/mmkin.html | 4 +- docs/reference/summary.mkinfit.html | 11 ++-- vignettes/mkin_benchmarks.rda | Bin 874 -> 876 bytes 17 files changed, 198 insertions(+), 110 deletions(-) diff --git a/R/mkinfit.R b/R/mkinfit.R index 60697cb1..2af4e493 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -506,18 +506,23 @@ mkinfit <- function(mkinmod, observed, control = control, ...) fit$logLik <- - nlogLik.current + d_3_messages = c( + same = "Direct fitting and three-step fitting yield approximately the same likelihood", + threestep = "Three-step fitting yielded a higher likelihood than direct fitting", + direct = "Direct fitting yielded a higher likelihood than three-step fitting") if (error_model_algorithm == "d_3") { rel_diff <- abs((fit_direct$logLik - fit$logLik))/-mean(c(fit_direct$logLik, fit$logLik)) if (rel_diff < 0.0001) { - if (!quiet) { - message("Direct fitting and three-step fitting yield approximately the same likelihood") - } + if (!quiet) message(d_3_messages["same"]) + fit$d_3_message <- d_3_messages["same"] } else { if (fit$logLik > fit_direct$logLik) { - if (!quiet) message("Three-step fitting yielded a higher likelihood than direct fitting") + if (!quiet) message(d_3_messages["threestep"]) + fit$d_3_message <- d_3_messages["threestep"] } else { - if (!quiet) message("Direct fitting yielded a higher likelihood than three-step fitting") + if (!quiet) message(d_3_messages["direct"]) fit <- fit_direct + fit$d_3_message <- d_3_messages["direct"] } } } @@ -553,6 +558,7 @@ mkinfit <- function(mkinmod, observed, } } } + fit$error_model_algorithm <- error_model_algorithm # We include the error model in the parameter uncertainty analysis, also # for constant variance, to get a confidence interval for it @@ -725,6 +731,7 @@ summary.mkinfit <- function(object, data = TRUE, distimes = TRUE, alpha = 0.05, solution_type = object$solution_type, warning = object$warning, use_of_ff = object$mkinmod$use_of_ff, + error_model_algorithm = object$error_model_algorithm, df = c(p, rdf), cov.unscaled = covar, err_mod = object$err_mod, @@ -763,8 +770,9 @@ summary.mkinfit <- function(object, data = TRUE, distimes = TRUE, alpha = 0.05, ep <- endpoints(object) if (length(ep$ff) != 0) ans$ff <- ep$ff - if(distimes) ans$distimes <- ep$distimes - if(length(ep$SFORB) != 0) ans$SFORB <- ep$SFORB + if (distimes) ans$distimes <- ep$distimes + if (length(ep$SFORB) != 0) ans$SFORB <- ep$SFORB + if (!is.null(object$d_3_message)) ans$d_3_message <- object$d_3_message class(ans) <- c("summary.mkinfit", "summary.modFit") return(ans) } @@ -794,12 +802,15 @@ print.summary.mkinfit <- function(x, digits = max(3, getOption("digits") - 3), . cat("\nFitted using", x$calls, "model solutions performed in", x$time[["elapsed"]], "s\n") - cat("\nError model:\n") + cat("\nError model: ") cat(switch(x$err_mod, const = "Constant variance", obs = "Variance unique to each observed variable", tc = "Two-component variance function"), "\n") + cat("\nError model algorithm:", x$error_model_algorithm, "\n") + if (!is.null(x$d_3_message)) cat(x$d_3_message, "\n") + cat("\nStarting values for parameters to be optimised:\n") print(x$start) diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html index 698ccebc..be1f40f5 100644 --- a/docs/articles/FOCUS_D.html +++ b/docs/articles/FOCUS_D.html @@ -88,7 +88,7 @@ Example evaluation of FOCUS Example Dataset D
Johannes Ranke
-2019-06-04
+2019-06-05
@@ -168,8 +168,8 @@FOCUS_D.Rmd
## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:18 2019 -## Date of summary: Tue Jun 4 15:03:18 2019 +## Date of fit: Wed Jun 5 15:10:49 2019 +## Date of summary: Wed Jun 5 15:10:50 2019 ## ## Equations: ## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent @@ -177,10 +177,11 @@ ## ## Model predictions using solution type deSolve ## -## Fitted using 389 model solutions performed in 0.978 s +## Fitted using 389 model solutions performed in 0.984 s ## -## Error model: -## Constant variance +## Error model: Constant variance +## +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html index 75b2cf10..4388edd2 100644 --- a/docs/articles/FOCUS_L.html +++ b/docs/articles/FOCUS_L.html @@ -88,7 +88,7 @@
Example evaluation of FOCUS Laboratory Data L1 to L3
Johannes Ranke
-2019-06-04
+2019-06-05
@@ -114,18 +114,19 @@ summary(m.L1.SFO)FOCUS_L.Rmd
## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:20 2019 -## Date of summary: Tue Jun 4 15:03:20 2019 +## Date of fit: Wed Jun 5 15:10:52 2019 +## Date of summary: Wed Jun 5 15:10:52 2019 ## ## Equations: ## d_parent/dt = - k_parent_sink * parent ## ## Model predictions using solution type analytical ## -## Fitted using 133 model solutions performed in 0.28 s +## Fitted using 133 model solutions performed in 0.277 s ## -## Error model: -## Constant variance +## Error model: Constant variance +## +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type @@ -215,8 +216,8 @@ ## finite result is doubtful
## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:22 2019 -## Date of summary: Tue Jun 4 15:03:22 2019 +## Date of fit: Wed Jun 5 15:10:54 2019 +## Date of summary: Wed Jun 5 15:10:54 2019 ## ## ## Warning: Optimisation did not converge: @@ -228,10 +229,11 @@ ## ## Model predictions using solution type analytical ## -## Fitted using 899 model solutions performed in 1.868 s +## Fitted using 899 model solutions performed in 1.877 s +## +## Error model: Constant variance ## -## Error model: -## Constant variance +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type @@ -319,18 +321,19 @@
## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:23 2019 -## Date of summary: Tue Jun 4 15:03:23 2019 +## Date of fit: Wed Jun 5 15:10:55 2019 +## Date of summary: Wed Jun 5 15:10:55 2019 ## ## Equations: ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent ## ## Model predictions using solution type analytical ## -## Fitted using 239 model solutions performed in 0.484 s +## Fitted using 239 model solutions performed in 0.492 s ## -## Error model: -## Constant variance +## Error model: Constant variance +## +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type @@ -394,8 +397,8 @@
## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:25 2019 -## Date of summary: Tue Jun 4 15:03:25 2019 +## Date of fit: Wed Jun 5 15:10:56 2019 +## Date of summary: Wed Jun 5 15:10:56 2019 ## ## Equations: ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * @@ -404,10 +407,11 @@ ## ## Model predictions using solution type analytical ## -## Fitted using 572 model solutions performed in 1.193 s +## Fitted using 572 model solutions performed in 1.183 s +## +## Error model: Constant variance ## -## Error model: -## Constant variance +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type @@ -493,8 +497,8 @@
## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:26 2019 -## Date of summary: Tue Jun 4 15:03:27 2019 +## Date of fit: Wed Jun 5 15:10:58 2019 +## Date of summary: Wed Jun 5 15:10:58 2019 ## ## Equations: ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * @@ -503,10 +507,11 @@ ## ## Model predictions using solution type analytical ## -## Fitted using 373 model solutions performed in 0.767 s +## Fitted using 373 model solutions performed in 0.773 s ## -## Error model: -## Constant variance +## Error model: Constant variance +## +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type @@ -598,8 +603,8 @@
diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html index f3062c66..5f0301fc 100644 --- a/docs/articles/web_only/compiled_models.html +++ b/docs/articles/web_only/compiled_models.html @@ -88,7 +88,7 @@## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:27 2019 -## Date of summary: Tue Jun 4 15:03:28 2019 +## Date of fit: Wed Jun 5 15:10:59 2019 +## Date of summary: Wed Jun 5 15:10:59 2019 ## ## Equations: ## d_parent/dt = - k_parent_sink * parent @@ -608,8 +613,9 @@ ## ## Fitted using 142 model solutions performed in 0.288 s ## -## Error model: -## Constant variance +## Error model: Constant variance +## +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type @@ -662,18 +668,19 @@
+## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.512## mkin version used for fitting: 0.9.49.5 ## R version used for fitting: 3.6.0 -## Date of fit: Tue Jun 4 15:03:28 2019 -## Date of summary: Tue Jun 4 15:03:28 2019 +## Date of fit: Wed Jun 5 15:10:59 2019 +## Date of summary: Wed Jun 5 15:10:59 2019 ## ## Equations: ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent ## ## Model predictions using solution type analytical ## -## Fitted using 224 model solutions performed in 0.449 s +## Fitted using 224 model solutions performed in 0.453 s +## +## Error model: Constant variance ## -## Error model: -## Constant variance +## Error model algorithm: d_3 ## ## Starting values for parameters to be optimised: ## value type diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html index 09b1b8ea..5977d642 100644 --- a/docs/articles/mkin.html +++ b/docs/articles/mkin.html @@ -88,7 +88,7 @@
Introduction to mkin
Johannes Ranke
-2019-06-04
+2019-06-05
diff --git a/docs/articles/twa.html b/docs/articles/twa.html index ede27942..f98026e7 100644 --- a/docs/articles/twa.html +++ b/docs/articles/twa.html @@ -88,7 +88,7 @@mkin.Rmd
Calculation of time weighted average concentrations with mkin
Johannes Ranke
-2019-06-04
+2019-06-05
diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html index 555400df..542deb14 100644 --- a/docs/articles/web_only/FOCUS_Z.html +++ b/docs/articles/web_only/FOCUS_Z.html @@ -88,7 +88,7 @@twa.Rmd
Example evaluation of FOCUS dataset Z
Johannes Ranke
-2019-06-04
+2019-06-05
diff --git a/docs/articles/web_only/NAFTA_examples.html b/docs/articles/web_only/NAFTA_examples.html index 7f3cc76b..4cd16437 100644 --- a/docs/articles/web_only/NAFTA_examples.html +++ b/docs/articles/web_only/NAFTA_examples.html @@ -88,7 +88,7 @@FOCUS_Z.Rmd
Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance
Johannes Ranke
-2019-06-04
+2019-06-05
diff --git a/docs/articles/web_only/benchmarks.html b/docs/articles/web_only/benchmarks.html index 43f8d238..507bdb61 100644 --- a/docs/articles/web_only/benchmarks.html +++ b/docs/articles/web_only/benchmarks.html @@ -88,7 +88,7 @@NAFTA_examples.Rmd
Benchmark timings for mkin on various systems
Johannes Ranke
-2019-06-04
+2019-06-05
@@ -202,77 +202,77 @@ ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.064 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.296 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.936 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 5.805 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 5.828 ## t2 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 11.019 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 22.889 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 12.558 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 21.239 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 20.545 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 35.748 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 35.869 ## t3 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.764 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.649 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.786 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.510 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.446 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.403 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.412 ## t4 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 14.347 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 13.789 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 8.461 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 13.805 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 15.335 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 30.613 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 30.497 ## t5 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 9.495 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 6.395 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.675 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.386 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 6.002 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.309 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.329 ## t6 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 2.623 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 2.542 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 2.723 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 2.643 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.635 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 2.546 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 2.548 ## t7 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 4.587 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.128 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.478 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.374 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.259 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.214 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 4.192 ## t8 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 7.525 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.632 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.862 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.02 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.737 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.871 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.827 ## t9 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 16.621 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 8.171 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.618 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 11.124 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 7.763 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 15.738 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 15.653 ## t10 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 8.576 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 3.676 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 3.579 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 5.388 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 3.427 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.763 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 7.762 ## t11 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 31.267 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 5.636 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.574 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.365 ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.626 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.5 10.527benchmarks.Rmd
Performance benefit by using compiled model definitions in mkin
Johannes Ranke
-2019-06-04
+2019-06-05
@@ -163,9 +163,9 @@ ## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "deSolve", quiet ## = TRUE): Observations with value of zero were removed from the datacompiled_models.Rmd
## test replications elapsed relative user.self sys.self -## 3 deSolve, compiled 3 3.053 1.000 3.052 0 -## 1 deSolve, not compiled 3 28.457 9.321 28.442 0 -## 2 Eigenvalue based 3 4.296 1.407 4.293 0 +## 3 deSolve, compiled 3 3.041 1.000 3.039 0 +## 1 deSolve, not compiled 3 28.429 9.349 28.415 0 +## 2 Eigenvalue based 3 4.291 1.411 4.288 0 ## user.child sys.child ## 3 0 0 ## 1 0 0 @@ -214,8 +214,8 @@ ## Warning in mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE): Observations with ## value of zero were removed from the data
diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html index 1d1da50e..37c0b361 100644 --- a/docs/reference/Extract.mmkin.html +++ b/docs/reference/Extract.mmkin.html @@ -172,16 +172,16 @@ cores = 1, quiet = TRUE) fits["FOMC", ]## test replications elapsed relative user.self sys.self -## 2 deSolve, compiled 3 4.828 1.000 4.825 0 -## 1 deSolve, not compiled 3 53.153 11.009 53.125 0 +## 2 deSolve, compiled 3 4.927 1.000 4.924 0 +## 1 deSolve, not compiled 3 53.138 10.785 53.108 0 ## user.child sys.child ## 2 0 0 ## 1 0 0
#> dataset #> model B C -#> FOMC List,36 List,36 +#> FOMC List,37 List,37 #> attr(,"class") #> [1] "mmkin"fits[, "B"]#> dataset #> model B -#> SFO List,36 -#> FOMC List,36 +#> SFO List,37 +#> FOMC List,37 #> attr(,"class") #> [1] "mmkin"fits["SFO", "B"]#> dataset #> model B -#> SFO List,36 +#> SFO List,37 #> attr(,"class") #> [1] "mmkin"head( diff --git a/docs/reference/experimental_data_for_UBA.html b/docs/reference/experimental_data_for_UBA.html index 3e8d20ef..bb94fd11 100644 --- a/docs/reference/experimental_data_for_UBA.html +++ b/docs/reference/experimental_data_for_UBA.html @@ -37,7 +37,30 @@ and advance error model specifications. The fact that these data and some results are shown here do not imply a license to use them in the context of pesticide registrations, as the use of the data may be constrained by - data protection regulations." /> + data protection regulations. +Preprocessing of data was performed based on the recommendations of the FOCUS + kinetics workgroup (FOCUS, 2014) as described below. +Datasets 1 and 2 are from the Renewal Assessment Report (RAR) for imazamox + (France, 2015, p. 15). For setting values reported as zero, an LOQ of 0.1 + was assumed. Metabolite residues reported for day zero were added to the + parent compound residues. +Datasets 3 and 4 are from the Renewal Assessment Report (RAR) for isofetamid + (Belgium, 2014, p. 8) and show the data for two different radiolabels. For + dataset 4, the value given for the metabolite in the day zero sampling + in replicate B was added to the parent compound, following the respective + FOCUS recommendation. +Dataset 5 is from the Renewal Assessment Report (RAR) for ethofumesate + (Austria, 2015, p. 16). +Datasets 6 to 10 are from the Renewal Assessment Report (RAR) for glyphosate + (Germany, 2013a, pages 8, 28, 50, 51). For the initial sampling, + the residues given for the metabolite were added to the parent + value, following the recommendation of the FOCUS kinetics workgroup. +Dataset 11 is from the Renewal Assessment Report (RAR) for 2,4-D + (Germany, 2013b, p. 644). Values reported as zero were set to NA, with + the exception of the day three sampling of metabolite A2, which was set + to one half of the LOD reported to be 1% AR. +Dataset 12 is from the Renewal Assessment Report (RAR) for thifensulfuron-methyl + (United Kingdom, 2014, p. 81)." /> @@ -139,6 +162,29 @@ results are shown here do not imply a license to use them in the context of pesticide registrations, as the use of the data may be constrained by data protection regulations. +@@ -154,8 +200,24 @@Preprocessing of data was performed based on the recommendations of the FOCUS + kinetics workgroup (FOCUS, 2014) as described below.
+Datasets 1 and 2 are from the Renewal Assessment Report (RAR) for imazamox + (France, 2015, p. 15). For setting values reported as zero, an LOQ of 0.1 + was assumed. Metabolite residues reported for day zero were added to the + parent compound residues.
+Datasets 3 and 4 are from the Renewal Assessment Report (RAR) for isofetamid + (Belgium, 2014, p. 8) and show the data for two different radiolabels. For + dataset 4, the value given for the metabolite in the day zero sampling + in replicate B was added to the parent compound, following the respective + FOCUS recommendation.
+Dataset 5 is from the Renewal Assessment Report (RAR) for ethofumesate + (Austria, 2015, p. 16).
+Datasets 6 to 10 are from the Renewal Assessment Report (RAR) for glyphosate + (Germany, 2013a, pages 8, 28, 50, 51). For the initial sampling, + the residues given for the metabolite were added to the parent + value, following the recommendation of the FOCUS kinetics workgroup.
+Dataset 11 is from the Renewal Assessment Report (RAR) for 2,4-D + (Germany, 2013b, p. 644). Values reported as zero were set to NA, with + the exception of the day three sampling of metabolite A2, which was set + to one half of the LOD reported to be 1% AR.
+Dataset 12 is from the Renewal Assessment Report (RAR) for thifensulfuron-methyl + (United Kingdom, 2014, p. 81).
Source
-Ranke (2019) Documentation of results obtained for the error model expertise + +
Austria (2015). Ethofumesate Renewal Assessment Report Volume 3 Annex B.8 (AS)
+Belgium (2014). Isofetamid (IKF-5411) Draft Assessment Report Volume 3 Annex B.8 (AS)
+France (2015). Imazamox Draft Renewal Assessment Report Volume 3 Annex B.8 (AS)
+FOCUS (2014) “Generic guidance for Estimating Persistence and + Degradation Kinetics from Environmental Fate Studies on Pesticides in EU + Registration” Report of the FOCUS Work Group on Degradation Kinetics, + Version 1.1, 18 December 2014 + http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics
+Germany (2013a). Renewal Assessment Report Glyphosate Volume 3 Annex B.8: Environmental Fate + and Behaviour
+Germany (2013b). Renewal Assessment Report 2,4-D Volume 3 Annex B.8: Fate and behaviour in the + environment
+Ranke (2019) Documentation of results obtained for the error model expertise written for the German Umweltbundesamt.
+United Kingdom (2014). Thifensulfuron-methyl - Annex B.8 (Volume 3) to the Report and Proposed + Decision of the United Kingdom made to the European Commission under Regulation (EC) No. + 1141/2010 for renewal of an active substance
Examples
diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html index 8cabcb21..700b6805 100644 --- a/docs/reference/mkinfit.html +++ b/docs/reference/mkinfit.html @@ -399,18 +399,19 @@ Per default, parameters in the kinetic models are internally transformed in fit <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE) summary(fit)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:15 2019 -#> Date of summary: Tue Jun 4 15:01:15 2019 +#> Date of fit: Wed Jun 5 15:08:20 2019 +#> Date of summary: Wed Jun 5 15:08:20 2019 #> #> Equations: #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 222 model solutions performed in 0.461 s +#> Fitted using 222 model solutions performed in 0.469 s #> -#> Error model: -#> Constant variance +#> Error model: Constant variance +#> +#> Error model algorithm: d_3 #> #> Starting values for parameters to be optimised: #> value type @@ -480,7 +481,7 @@ Per default, parameters in the kinetic models are internally transformed in m1 = mkinsub("SFO"))#># Fit the model to the FOCUS example dataset D using defaults print(system.time(fit <- mkinfit(SFO_SFO, FOCUS_2006_D, solution_type = "eigen", quiet = TRUE)))#> Warning: Observations with value of zero were removed from the data#> User System verstrichen -#> 1.521 0.000 1.526coef(fit)#> NULLendpoints(fit)#> $ff +#> 1.579 0.000 1.581coef(fit)#> NULLendpoints(fit)#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -552,7 +553,7 @@ Per default, parameters in the kinetic models are internally transformed in #> Sum of squared residuals at call 126: 371.2134 #> Sum of squared residuals at call 135: 371.2134 #> Negative log-likelihood at call 145: 97.22429#>#> User System verstrichen -#> 1.093 0.000 1.093coef(fit.deSolve)#> NULLendpoints(fit.deSolve)#> $ff +#> 1.159 0.000 1.160coef(fit.deSolve)#> NULLendpoints(fit.deSolve)#> $ff #> parent_sink parent_m1 m1_sink #> 0.485524 0.514476 1.000000 #> @@ -584,8 +585,8 @@ Per default, parameters in the kinetic models are internally transformed in SFO_SFO.ff <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"), use_of_ff = "max")#>f.noweight <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.noweight)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:31 2019 -#> Date of summary: Tue Jun 4 15:01:31 2019 +#> Date of fit: Wed Jun 5 15:08:36 2019 +#> Date of summary: Wed Jun 5 15:08:36 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -593,10 +594,11 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 421 model solutions performed in 1.096 s +#> Fitted using 421 model solutions performed in 1.181 s +#> +#> Error model: Constant variance #> -#> Error model: -#> Constant variance +#> Error model algorithm: d_3 #> #> Starting values for parameters to be optimised: #> value type @@ -702,8 +704,8 @@ Per default, parameters in the kinetic models are internally transformed in #> 120 m1 25.15 28.78984 -3.640e+00 #> 120 m1 33.31 28.78984 4.520e+00f.obs <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "obs", quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.obs)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:34 2019 -#> Date of summary: Tue Jun 4 15:01:34 2019 +#> Date of fit: Wed Jun 5 15:08:39 2019 +#> Date of summary: Wed Jun 5 15:08:39 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -711,10 +713,12 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 979 model solutions performed in 2.603 s +#> Fitted using 979 model solutions performed in 2.672 s #> -#> Error model: -#> Variance unique to each observed variable +#> Error model: Variance unique to each observed variable +#> +#> Error model algorithm: d_3 +#> Direct fitting and three-step fitting yield approximately the same likelihood #> #> Starting values for parameters to be optimised: #> value type @@ -832,8 +836,8 @@ Per default, parameters in the kinetic models are internally transformed in #> 120 m1 25.15 28.80429 -3.654e+00 #> 120 m1 33.31 28.80429 4.506e+00f.tc <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, error_model = "tc", quiet = TRUE)#> Warning: Observations with value of zero were removed from the datasummary(f.tc)#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:01:43 2019 -#> Date of summary: Tue Jun 4 15:01:43 2019 +#> Date of fit: Wed Jun 5 15:08:50 2019 +#> Date of summary: Wed Jun 5 15:08:50 2019 #> #> Equations: #> d_parent/dt = - k_parent * parent @@ -841,10 +845,12 @@ Per default, parameters in the kinetic models are internally transformed in #> #> Model predictions using solution type deSolve #> -#> Fitted using 2289 model solutions performed in 9.499 s +#> Fitted using 2289 model solutions performed in 10.959 s +#> +#> Error model: Two-component variance function #> -#> Error model: -#> Two-component variance function +#> Error model algorithm: d_3 +#> Direct fitting and three-step fitting yield approximately the same likelihood #> #> Starting values for parameters to be optimised: #> value type diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html index 2c5f056e..ddab656c 100644 --- a/docs/reference/mkinmod.html +++ b/docs/reference/mkinmod.html @@ -234,7 +234,7 @@ For the definition of model types and their parameters, the equations given SFO_SFO <- mkinmod( parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"), verbose = TRUE)#> Compilation argument: -#> /usr/lib/R/bin/R CMD SHLIB filebbe6b539c4f.c 2> filebbe6b539c4f.c.err.txt +#> /usr/lib/R/bin/R CMD SHLIB file50a55c3108b2.c 2> file50a55c3108b2.c.err.txt #> Program source: #> 1: #include <R.h> #> 2: diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html index f339b26a..7e71ec27 100644 --- a/docs/reference/mkinpredict.html +++ b/docs/reference/mkinpredict.html @@ -328,17 +328,17 @@ c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "eigen")[201,]))#> time parent m1 #> 201 20 4.978707 27.46227#> User System verstrichen -#> 0.003 0.000 0.003system.time( +#> 0.004 0.000 0.004system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve")[201,]))#> time parent m1 #> 201 20 4.978707 27.46227#> User System verstrichen -#> 0.002 0.000 0.002system.time( +#> 0.003 0.000 0.002system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve", use_compiled = FALSE)[201,]))#> time parent m1 #> 201 20 4.978707 27.46227#> User System verstrichen -#> 0.021 0.000 0.022+#> 0.022 0.000 0.022#>#> Sum of squared residuals at call 1: 552.5739 #> Sum of squared residuals at call 3: 552.5739 diff --git a/docs/reference/mmkin.html b/docs/reference/mmkin.html index a830646f..61a029fc 100644 --- a/docs/reference/mmkin.html +++ b/docs/reference/mmkin.html @@ -194,8 +194,8 @@ time_1 <- system.time(fits.4 <- mmkin(models, datasets, cores = 1, quiet = TRUE)) time_default#> User System verstrichen -#> 0.046 0.032 5.094time_1#> User System verstrichen -#> 19.798 0.004 19.814+#> 0.038 0.050 6.779time_1#> User System verstrichen +#> 27.209 0.004 27.278#> $ff #> parent_M1 parent_sink M1_M2 M1_sink #> 0.7340481 0.2659519 0.7505684 0.2494316 diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index ffe1edb1..68b36542 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -211,18 +211,19 @@Examples
#> mkin version used for fitting: 0.9.49.5 #> R version used for fitting: 3.6.0 -#> Date of fit: Tue Jun 4 15:03:02 2019 -#> Date of summary: Tue Jun 4 15:03:02 2019 +#> Date of fit: Wed Jun 5 15:10:34 2019 +#> Date of summary: Wed Jun 5 15:10:34 2019 #> #> Equations: #> d_parent/dt = - k_parent_sink * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 131 model solutions performed in 0.266 s +#> Fitted using 131 model solutions performed in 0.268 s #> -#> Error model: -#> Constant variance +#> Error model: Constant variance +#> +#> Error model algorithm: d_3 #> #> Starting values for parameters to be optimised: #> value type diff --git a/vignettes/mkin_benchmarks.rda b/vignettes/mkin_benchmarks.rda index 3e160a06..17cf86ce 100644 Binary files a/vignettes/mkin_benchmarks.rda and b/vignettes/mkin_benchmarks.rda differ -- cgit v1.2.1 From 4b323789265213bd65165873e7efe5e45a579275 Mon Sep 17 00:00:00 2001 From: Johannes RankeDate: Wed, 5 Jun 2019 15:45:31 +0200 Subject: Adapt tests to new algorithms and output One of the tests exceeded the number of iterations when using the d_3 error model algorithm, so only use "direct" in this case. --- test.log | 386 +------------------------------- tests/testthat/FOCUS_2006_D.csf | 2 +- tests/testthat/summary_DFOP_FOCUS_C.txt | 5 +- tests/testthat/test_error_models.R | 2 +- 4 files changed, 14 insertions(+), 381 deletions(-) diff --git a/test.log b/test.log index 30196966..58aa129f 100644 --- a/test.log +++ b/test.log @@ -2,394 +2,26 @@ Loading mkin Testing mkin ✔ | OK F W S | Context ⠏ | 0 | Export dataset for reading into CAKE ✔ | 1 | Export dataset for reading into CAKE - ⠏ | 0 | Error model fitting ⠋ | 1 | Error model fitting ⠹ | 3 | Error model fitting ⠸ | 4 | Error model fitting ⠼ | 5 | Error model fitting ⠴ | 6 | Error model fitting ⠧ | 8 | Error model fitting ⠏ | 10 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 11 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 30: 65.71278 - ⠹ | 13 | Error model fittingNegative log-likelihood at call 1: 4104.4 -Negative log-likelihood at call 2: 4104.4 -Negative log-likelihood at call 4: 4104.399 -Negative log-likelihood at call 6: 85.79717 -Negative log-likelihood at call 11: 72.50327 -Negative log-likelihood at call 12: 72.50327 -Negative log-likelihood at call 17: 71.79809 -Negative log-likelihood at call 22: 71.10373 -Negative log-likelihood at call 26: 71.10373 -Negative log-likelihood at call 27: 70.84093 -Negative log-likelihood at call 29: 70.84093 -Negative log-likelihood at call 32: 70.64538 -Negative log-likelihood at call 37: 70.64538 -Negative log-likelihood at call 38: 70.33707 -Negative log-likelihood at call 40: 70.33707 -Negative log-likelihood at call 42: 70.33707 -Negative log-likelihood at call 43: 69.89484 -Negative log-likelihood at call 48: 69.05915 -Negative log-likelihood at call 53: 67.99547 -Negative log-likelihood at call 56: 67.99547 -Negative log-likelihood at call 58: 66.59808 -Negative log-likelihood at call 63: 66.59808 -Negative log-likelihood at call 64: 66.2343 -Negative log-likelihood at call 65: 66.23429 -Negative log-likelihood at call 68: 66.23428 -Negative log-likelihood at call 69: 65.67228 -Negative log-likelihood at call 70: 65.67228 -Negative log-likelihood at call 73: 65.67227 -Negative log-likelihood at call 74: 65.33106 -Negative log-likelihood at call 79: 65.31005 -Negative log-likelihood at call 80: 65.31005 -Negative log-likelihood at call 81: 65.31005 -Negative log-likelihood at call 83: 65.31004 -Negative log-likelihood at call 84: 65.17731 -Negative log-likelihood at call 85: 65.17731 -Negative log-likelihood at call 89: 65.16821 -Negative log-likelihood at call 94: 65.13357 -Negative log-likelihood at call 96: 65.13357 -Negative log-likelihood at call 98: 65.13357 -Negative log-likelihood at call 99: 65.08107 -Negative log-likelihood at call 104: 64.86685 -Negative log-likelihood at call 105: 64.86685 -Negative log-likelihood at call 109: 64.50332 -Negative log-likelihood at call 112: 64.50332 -Negative log-likelihood at call 114: 64.10889 -Negative log-likelihood at call 119: 63.57448 -Negative log-likelihood at call 120: 63.57448 -Negative log-likelihood at call 123: 63.57448 -Negative log-likelihood at call 124: 63.5456 -Negative log-likelihood at call 127: 63.5456 -Negative log-likelihood at call 129: 63.48903 -Negative log-likelihood at call 131: 63.48903 -Negative log-likelihood at call 135: 63.47608 -Negative log-likelihood at call 140: 63.47181 -Negative log-likelihood at call 141: 63.47181 -Negative log-likelihood at call 145: 63.4714 -Negative log-likelihood at call 146: 63.4714 -Negative log-likelihood at call 151: 63.4714 -Negative log-likelihood at call 152: 63.4714 -Negative log-likelihood at call 160: 63.4714 -Negative log-likelihood at call 169: 63.4714 - ⠸ | 14 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.014 -Negative log-likelihood at call 34: 7208.013 -Negative log-likelihood at call 36: 132.2815 -Negative log-likelihood at call 41: 75.57291 -Negative log-likelihood at call 42: 75.57291 -Negative log-likelihood at call 45: 75.57291 -Negative log-likelihood at call 47: 73.57761 -Negative log-likelihood at call 52: 70.3766 -Negative log-likelihood at call 57: 68.75449 -Negative log-likelihood at call 62: 68.50149 -Negative log-likelihood at call 64: 68.50149 -Negative log-likelihood at call 66: 68.50146 -Negative log-likelihood at call 67: 68.2035 -Negative log-likelihood at call 71: 68.2035 -Negative log-likelihood at call 72: 68.13162 -Negative log-likelihood at call 77: 67.94078 -Negative log-likelihood at call 78: 67.60889 -Negative log-likelihood at call 80: 67.60889 -Negative log-likelihood at call 83: 66.72645 -Negative log-likelihood at call 88: 65.66209 -Negative log-likelihood at call 93: 64.79703 -Negative log-likelihood at call 98: 64.6745 -Negative log-likelihood at call 101: 64.6745 -Negative log-likelihood at call 102: 64.6745 -Negative log-likelihood at call 103: 64.60902 -Negative log-likelihood at call 108: 64.56616 -Negative log-likelihood at call 113: 64.55458 -Negative log-likelihood at call 117: 64.55458 -Negative log-likelihood at call 119: 64.50796 -Negative log-likelihood at call 121: 64.50796 -Negative log-likelihood at call 124: 64.41361 -Negative log-likelihood at call 129: 64.2052 -Negative log-likelihood at call 134: 63.92264 -Negative log-likelihood at call 139: 63.66033 -Negative log-likelihood at call 140: 63.66033 -Negative log-likelihood at call 142: 63.66033 -Negative log-likelihood at call 144: 63.55606 -Negative log-likelihood at call 146: 63.55606 -Negative log-likelihood at call 149: 63.48537 -Negative log-likelihood at call 150: 63.48537 -Negative log-likelihood at call 154: 63.47183 -Negative log-likelihood at call 156: 63.47183 -Negative log-likelihood at call 157: 63.47183 -Negative log-likelihood at call 159: 63.47141 -Negative log-likelihood at call 160: 63.47141 -Negative log-likelihood at call 162: 63.47141 -Negative log-likelihood at call 164: 63.4714 -Negative log-likelihood at call 165: 63.4714 -Negative log-likelihood at call 168: 63.4714 -Negative log-likelihood at call 172: 63.4714 -Negative log-likelihood at call 173: 63.4714 -Negative log-likelihood at call 181: 63.4714 -Negative log-likelihood at call 182: 63.4714 -Negative log-likelihood at call 191: 63.4714 - ⠼ | 15 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.013 -Negative log-likelihood at call 34: 164.0572 -Negative log-likelihood at call 37: 139.4622 -Negative log-likelihood at call 40: 138.9749 -Negative log-likelihood at call 43: 134.4266 -Negative log-likelihood at call 46: 108.9584 -Negative log-likelihood at call 49: 98.97929 -Negative log-likelihood at call 52: 91.49458 -Negative log-likelihood at call 55: 87.49741 -Negative log-likelihood at call 57: 87.49741 -Negative log-likelihood at call 58: 85.29177 -Negative log-likelihood at call 61: 84.23711 -Negative log-likelihood at call 64: 83.76617 -Negative log-likelihood at call 67: 83.53472 -Negative log-likelihood at call 70: 83.33848 -Negative log-likelihood at call 73: 83.00488 -Negative log-likelihood at call 76: 82.06707 -Negative log-likelihood at call 77: 82.06707 -Negative log-likelihood at call 79: 75.48058 -Negative log-likelihood at call 82: 69.27829 -Negative log-likelihood at call 85: 66.14308 -Negative log-likelihood at call 86: 66.14306 -Negative log-likelihood at call 90: 65.73421 -Negative log-likelihood at call 91: 65.73421 -Negative log-likelihood at call 94: 65.71278 -Negative log-likelihood at call 98: 65.71278 -Negative log-likelihood at call 99: 65.71278 -Negative log-likelihood at call 127: 65.71278 - ⠴ | 16 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.013 -Negative log-likelihood at call 34: 164.0572 -Negative log-likelihood at call 37: 139.4622 -Negative log-likelihood at call 40: 138.9749 -Negative log-likelihood at call 43: 134.4266 -Negative log-likelihood at call 46: 108.9584 -Negative log-likelihood at call 49: 98.97929 -Negative log-likelihood at call 52: 91.49458 -Negative log-likelihood at call 55: 87.49741 -Negative log-likelihood at call 57: 87.49741 -Negative log-likelihood at call 58: 85.29177 -Negative log-likelihood at call 61: 84.23711 -Negative log-likelihood at call 64: 83.76617 -Negative log-likelihood at call 67: 83.53472 -Negative log-likelihood at call 70: 83.33848 -Negative log-likelihood at call 73: 83.00488 -Negative log-likelihood at call 76: 82.06707 -Negative log-likelihood at call 77: 82.06707 -Negative log-likelihood at call 79: 75.48058 -Negative log-likelihood at call 82: 69.27829 -Negative log-likelihood at call 85: 66.14308 -Negative log-likelihood at call 86: 66.14306 -Negative log-likelihood at call 90: 65.73421 -Negative log-likelihood at call 91: 65.73421 -Negative log-likelihood at call 94: 65.71278 -Negative log-likelihood at call 98: 65.71278 -Negative log-likelihood at call 99: 65.71278 -Negative log-likelihood at call 132: 65.71278 - ⠦ | 17 | Error model fittingSum of squared residuals at call 1: 1590.602 -Sum of squared residuals at call 3: 1590.601 -Sum of squared residuals at call 5: 999.7593 -Sum of squared residuals at call 7: 999.7513 -Sum of squared residuals at call 8: 979.5713 -Sum of squared residuals at call 9: 948.3366 -Sum of squared residuals at call 10: 855.9518 -Sum of squared residuals at call 13: 836.4547 -Sum of squared residuals at call 14: 836.4547 -Sum of squared residuals at call 16: 836.422 -Sum of squared residuals at call 19: 836.422 -Sum of squared residuals at call 23: 836.422 -Sum of squared residuals at call 24: 836.422 -Negative log-likelihood at call 32: 7208.013 -Negative log-likelihood at call 34: 164.0572 -Negative log-likelihood at call 37: 139.4622 -Negative log-likelihood at call 40: 138.9749 -Negative log-likelihood at call 43: 134.4266 -Negative log-likelihood at call 46: 108.9584 -Negative log-likelihood at call 49: 98.97929 -Negative log-likelihood at call 52: 91.49458 -Negative log-likelihood at call 55: 87.49741 -Negative log-likelihood at call 57: 87.49741 -Negative log-likelihood at call 58: 85.29177 -Negative log-likelihood at call 61: 84.23711 -Negative log-likelihood at call 64: 83.76617 -Negative log-likelihood at call 67: 83.53472 -Negative log-likelihood at call 70: 83.33848 -Negative log-likelihood at call 73: 83.00488 -Negative log-likelihood at call 76: 82.06707 -Negative log-likelihood at call 77: 82.06707 -Negative log-likelihood at call 79: 75.48058 -Negative log-likelihood at call 82: 69.27829 -Negative log-likelihood at call 85: 66.14308 -Negative log-likelihood at call 86: 66.14306 -Negative log-likelihood at call 90: 65.73421 -Negative log-likelihood at call 91: 65.73421 -Negative log-likelihood at call 94: 65.71278 -Negative log-likelihood at call 98: 65.71278 -Negative log-likelihood at call 99: 65.71278 -Negative log-likelihood at call 118: 65.71278 -Negative log-likelihood at call 134: 65.71278 - ⠧ | 18 | Error model fittingNegative log-likelihood at call 1: 4104.4 -Negative log-likelihood at call 2: 4104.4 -Negative log-likelihood at call 4: 4104.399 -Negative log-likelihood at call 6: 85.79717 -Negative log-likelihood at call 11: 72.50327 -Negative log-likelihood at call 12: 72.50327 -Negative log-likelihood at call 17: 71.79809 -Negative log-likelihood at call 22: 71.10373 -Negative log-likelihood at call 26: 71.10373 -Negative log-likelihood at call 27: 70.84093 -Negative log-likelihood at call 29: 70.84093 -Negative log-likelihood at call 32: 70.64538 -Negative log-likelihood at call 37: 70.64538 -Negative log-likelihood at call 38: 70.33707 -Negative log-likelihood at call 40: 70.33707 -Negative log-likelihood at call 42: 70.33707 -Negative log-likelihood at call 43: 69.89484 -Negative log-likelihood at call 48: 69.05915 -Negative log-likelihood at call 53: 67.99547 -Negative log-likelihood at call 56: 67.99547 -Negative log-likelihood at call 58: 66.59808 -Negative log-likelihood at call 63: 66.59808 -Negative log-likelihood at call 64: 66.2343 -Negative log-likelihood at call 65: 66.23429 -Negative log-likelihood at call 68: 66.23428 -Negative log-likelihood at call 69: 65.67228 -Negative log-likelihood at call 70: 65.67228 -Negative log-likelihood at call 73: 65.67227 -Negative log-likelihood at call 74: 65.33106 -Negative log-likelihood at call 79: 65.31005 -Negative log-likelihood at call 80: 65.31005 -Negative log-likelihood at call 81: 65.31005 -Negative log-likelihood at call 83: 65.31004 -Negative log-likelihood at call 84: 65.17731 -Negative log-likelihood at call 85: 65.17731 -Negative log-likelihood at call 89: 65.16821 -Negative log-likelihood at call 94: 65.13357 -Negative log-likelihood at call 96: 65.13357 -Negative log-likelihood at call 98: 65.13357 -Negative log-likelihood at call 99: 65.08107 -Negative log-likelihood at call 104: 64.86685 -Negative log-likelihood at call 105: 64.86685 -Negative log-likelihood at call 109: 64.50332 -Negative log-likelihood at call 112: 64.50332 -Negative log-likelihood at call 114: 64.10889 -Negative log-likelihood at call 119: 63.57448 -Negative log-likelihood at call 120: 63.57448 -Negative log-likelihood at call 123: 63.57448 -Negative log-likelihood at call 124: 63.5456 -Negative log-likelihood at call 127: 63.5456 -Negative log-likelihood at call 129: 63.48903 -Negative log-likelihood at call 131: 63.48903 -Negative log-likelihood at call 135: 63.47608 -Negative log-likelihood at call 140: 63.47181 -Negative log-likelihood at call 141: 63.47181 -Negative log-likelihood at call 145: 63.4714 -Negative log-likelihood at call 146: 63.4714 -Negative log-likelihood at call 151: 63.4714 -Negative log-likelihood at call 152: 63.4714 -Negative log-likelihood at call 160: 63.4714 -Negative log-likelihood at call 169: 63.4714 -Sum of squared residuals at call 179: 1590.602 -Sum of squared residuals at call 181: 1590.601 -Sum of squared residuals at call 183: 999.7593 -Sum of squared residuals at call 185: 999.7513 -Sum of squared residuals at call 186: 979.5713 -Sum of squared residuals at call 187: 948.3366 -Sum of squared residuals at call 188: 855.9518 -Sum of squared residuals at call 191: 836.4547 -Sum of squared residuals at call 192: 836.4547 -Sum of squared residuals at call 194: 836.422 -Sum of squared residuals at call 197: 836.422 -Sum of squared residuals at call 201: 836.422 -Sum of squared residuals at call 202: 836.422 -Negative log-likelihood at call 210: 7208.013 -Negative log-likelihood at call 212: 164.0572 -Negative log-likelihood at call 215: 139.4622 -Negative log-likelihood at call 218: 138.9749 -Negative log-likelihood at call 221: 134.4266 -Negative log-likelihood at call 224: 108.9584 -Negative log-likelihood at call 227: 98.97929 -Negative log-likelihood at call 230: 91.49458 -Negative log-likelihood at call 233: 87.49741 -Negative log-likelihood at call 235: 87.49741 -Negative log-likelihood at call 236: 85.29177 -Negative log-likelihood at call 239: 84.23711 -Negative log-likelihood at call 242: 83.76617 -Negative log-likelihood at call 245: 83.53472 -Negative log-likelihood at call 248: 83.33848 -Negative log-likelihood at call 251: 83.00488 -Negative log-likelihood at call 254: 82.06707 -Negative log-likelihood at call 255: 82.06707 -Negative log-likelihood at call 257: 75.48058 -Negative log-likelihood at call 260: 69.27829 -Negative log-likelihood at call 263: 66.14308 -Negative log-likelihood at call 264: 66.14306 -Negative log-likelihood at call 268: 65.73421 -Negative log-likelihood at call 269: 65.73421 -Negative log-likelihood at call 272: 65.71278 -Negative log-likelihood at call 276: 65.71278 -Negative log-likelihood at call 277: 65.71278 -Negative log-likelihood at call 305: 65.71278 - ⠇ | 19 | Error model fitting ⠏ | 20 | Error model fitting ✔ | 20 | Error model fitting [506.4 s] - ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ⠼ | 5 | Calculation of FOCUS chi2 error levels ✔ | 5 | Calculation of FOCUS chi2 error levels [3.6 s] - ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.8 s] + ⠏ | 0 | Error model fitting ⠋ | 1 | Error model fitting ⠹ | 3 | Error model fitting ⠸ | 4 | Error model fitting ⠼ | 5 | Error model fitting ⠴ | 6 | Error model fitting ⠧ | 8 | Error model fitting ⠏ | 10 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 10 1 | Error model fitting ⠋ | 11 | Error model fitting ⠹ | 13 | Error model fitting ⠸ | 14 | Error model fitting ⠼ | 15 | Error model fitting ⠴ | 16 | Error model fitting ⠦ | 17 | Error model fitting ⠧ | 18 | Error model fitting ⠇ | 19 | Error model fitting ⠏ | 20 | Error model fitting ✔ | 20 | Error model fitting [414.2 s] + ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠹ | 3 | Calculation of FOCUS chi2 error levels ⠼ | 5 | Calculation of FOCUS chi2 error levels ✔ | 5 | Calculation of FOCUS chi2 error levels [3.5 s] + ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.7 s] ⠏ | 0 | Test fitting the decline of metabolites from their maximum ⠋ | 1 | Test fitting the decline of metabolites from their maximum ⠹ | 3 | Test fitting the decline of metabolites from their maximum ⠼ | 5 | Test fitting the decline of metabolites from their maximum ✔ | 6 | Test fitting the decline of metabolites from their maximum [0.9 s] ⠏ | 0 | Fitting the logistic model ⠋ | 1 | Fitting the logistic model ✔ | 1 | Fitting the logistic model [0.9 s] ⠏ | 0 | Test dataset class mkinds used in gmkin ✔ | 1 | Test dataset class mkinds used in gmkin - ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.7 s] + ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ✔ | 12 | Special cases of mkinfit calls [2.6 s] ⠏ | 0 | mkinmod model generation and printing ⠇ | 9 | mkinmod model generation and printing ✔ | 9 | mkinmod model generation and printing [0.2 s] ⠏ | 0 | Model predictions with mkinpredict ⠋ | 1 | Model predictions with mkinpredict ✔ | 3 | Model predictions with mkinpredict [0.3 s] - ⠏ | 0 | Evaluations according to 2015 NAFTA guidance ⠙ | 2 | Evaluations according to 2015 NAFTA guidance ⠇ | 9 | Evaluations according to 2015 NAFTA guidance ⠏ | 10 | Evaluations according to 2015 NAFTA guidance ⠴ | 16 | Evaluations according to 2015 NAFTA guidance ✔ | 16 | Evaluations according to 2015 NAFTA guidance [4.1 s] - ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [40.9 s] + ⠏ | 0 | Evaluations according to 2015 NAFTA guidance ⠙ | 2 | Evaluations according to 2015 NAFTA guidance ⠇ | 9 | Evaluations according to 2015 NAFTA guidance ⠏ | 10 | Evaluations according to 2015 NAFTA guidance ⠴ | 16 | Evaluations according to 2015 NAFTA guidance ✔ | 16 | Evaluations according to 2015 NAFTA guidance [4.0 s] + ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [40.7 s] ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.2 s] ⠏ | 0 | Summary ✔ | 1 | Summary ⠏ | 0 | Plotting ⠹ | 3 | Plotting ✔ | 4 | Plotting [0.3 s] ⠏ | 0 | AIC calculation ✔ | 2 | AIC calculation - ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.4 s] - ⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.2 s] + ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.3 s] + ⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.1 s] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 584.3 s +Duration: 491.4 s OK: 125 Failed: 0 diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf index 43215ec4..668b1151 100644 --- a/tests/testthat/FOCUS_2006_D.csf +++ b/tests/testthat/FOCUS_2006_D.csf @@ -5,7 +5,7 @@ Description: MeasurementUnits: % AR TimeUnits: days Comments: Created using mkin::CAKE_export -Date: 2019-06-04 +Date: 2019-06-05 Optimiser: IRLS [Data] diff --git a/tests/testthat/summary_DFOP_FOCUS_C.txt b/tests/testthat/summary_DFOP_FOCUS_C.txt index fb8051c5..5c6f4257 100644 --- a/tests/testthat/summary_DFOP_FOCUS_C.txt +++ b/tests/testthat/summary_DFOP_FOCUS_C.txt @@ -12,8 +12,9 @@ Model predictions using solution type analytical Fitted using test 0 model solutions performed in test time 0 s -Error model: -Constant variance +Error model: Constant variance + +Error model algorithm: d_3 Starting values for parameters to be optimised: value type diff --git a/tests/testthat/test_error_models.R b/tests/testthat/test_error_models.R index 404f02ab..fa1f7131 100644 --- a/tests/testthat/test_error_models.R +++ b/tests/testthat/test_error_models.R @@ -153,7 +153,7 @@ test_that("Reweighting method 'tc' produces reasonable variance estimates", { # For a single fit, we get a relative error of less than 10% in the error # model components f_met_2_tc_e4 <- mkinfit(m_synth_DFOP_lin, d_met_2_15[[1]], quiet = TRUE, - error_model = "tc") + error_model = "tc", error_model_algorithm = "direct") parm_errors_met_2_tc_e4 <- (f_met_2_tc_e4$errparms - c(0.5, 0.07)) / c(0.5, 0.07) expect_true(all(abs(parm_errors_met_2_tc_e4) < 0.1)) -- cgit v1.2.1