From 1ef7008be2a72a0847064ad9c2ddcfa16b055482 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 3 May 2019 19:14:15 +0200 Subject: Improve error model fitting Now we have a three stage fitting process for nonconstant error models: - Unweighted least squares - Only optimize the error model - Optimize both Static documentation rebuilt by pkgdown --- docs/reference/Extract.mmkin.html | 4 +- docs/reference/IORE.solution.html | 6 +- docs/reference/NAFTA_SOP_Attachment-1.png | Bin 42265 -> 42265 bytes docs/reference/NAFTA_SOP_Attachment.html | 4 +- docs/reference/add_err-1.png | Bin 89823 -> 89826 bytes docs/reference/logLik.mkinfit.html | 2 +- docs/reference/logistic.solution.html | 10 +- docs/reference/mccall81_245T.html | 42 +-- docs/reference/mkinfit.html | 402 ++++++++++++++-------------- docs/reference/mkinmod.html | 2 +- docs/reference/mkinparplot-1.png | Bin 16555 -> 16549 bytes docs/reference/mkinparplot.html | 3 +- docs/reference/mkinpredict.html | 18 +- docs/reference/mkinresplot-1.png | Bin 14889 -> 14892 bytes docs/reference/mmkin-2.png | Bin 88227 -> 88226 bytes docs/reference/mmkin-3.png | Bin 85742 -> 85737 bytes docs/reference/mmkin.html | 10 +- docs/reference/plot.mkinfit-1.png | Bin 45173 -> 45182 bytes docs/reference/plot.mmkin-3.png | Bin 25441 -> 25445 bytes docs/reference/schaefer07_complex_case.html | 10 +- docs/reference/summary.mkinfit.html | 12 +- docs/reference/test_data_from_UBA_2014.html | 34 +-- 22 files changed, 282 insertions(+), 277 deletions(-) (limited to 'docs/reference') diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html index 3b7209b1..652dfee0 100644 --- a/docs/reference/Extract.mmkin.html +++ b/docs/reference/Extract.mmkin.html @@ -189,7 +189,7 @@ fits[["FOMC", "B"]] )
#> $par #> parent_0 log_alpha log_beta sigma -#> 99.666193 2.549850 5.050586 1.890202 +#> 99.666193 2.549849 5.050586 1.890202 #> #> $objective #> [1] 28.58291 @@ -202,7 +202,7 @@ #> #> $evaluations #> function gradient -#> 25 76 +#> 25 72 #> #> $message #> [1] "both X-convergence and relative convergence (5)" diff --git a/docs/reference/IORE.solution.html b/docs/reference/IORE.solution.html index c9b79512..c67c2a37 100644 --- a/docs/reference/IORE.solution.html +++ b/docs/reference/IORE.solution.html @@ -182,9 +182,9 @@ print(data.frame(fit.fomc$par, fit.iore$par, fit.iore.deS$par, row.names = paste("model par", 1:4)))
#> fit.fomc.par fit.iore.par fit.iore.deS.par -#> model par 1 85.87488995 85.874890 85.874890 -#> model par 2 0.05192228 -4.826631 -4.826631 -#> model par 3 0.65096650 1.949403 1.949403 +#> model par 1 85.87489063 85.874890 85.874890 +#> model par 2 0.05192238 -4.826631 -4.826631 +#> model par 3 0.65096665 1.949403 1.949403 #> model par 4 1.85744396 1.857444 1.857444
print(rbind(fomc = endpoints(fit.fomc)$distimes, iore = endpoints(fit.iore)$distimes, iore.deS = endpoints(fit.iore)$distimes))
#> DT50 DT90 DT50back #> fomc 1.785233 15.1479 4.559973 diff --git a/docs/reference/NAFTA_SOP_Attachment-1.png b/docs/reference/NAFTA_SOP_Attachment-1.png index 87068d7c..a40cb689 100644 Binary files a/docs/reference/NAFTA_SOP_Attachment-1.png and b/docs/reference/NAFTA_SOP_Attachment-1.png differ diff --git a/docs/reference/NAFTA_SOP_Attachment.html b/docs/reference/NAFTA_SOP_Attachment.html index 48a1495f..76d91c40 100644 --- a/docs/reference/NAFTA_SOP_Attachment.html +++ b/docs/reference/NAFTA_SOP_Attachment.html @@ -177,7 +177,7 @@ #> Estimate Pr(>t) Lower Upper #> parent_0 9.99e+01 1.41e-26 98.8116 101.0810 #> k1 2.67e-02 5.05e-06 0.0243 0.0295 -#> k2 3.41e-12 5.00e-01 0.0000 Inf +#> k2 2.86e-12 5.00e-01 0.0000 Inf #> g 6.47e-01 3.67e-06 0.6248 0.6677 #> sigma 1.27e+00 8.91e-06 0.8395 1.6929 #> @@ -186,7 +186,7 @@ #> DT50 DT90 DT50_rep #> SFO 67.7 2.25e+02 6.77e+01 #> IORE 58.2 1.07e+03 3.22e+02 -#> DFOP 55.5 3.70e+11 2.03e+11 +#> DFOP 55.5 4.42e+11 2.42e+11 #> #> Representative half-life: #> [1] 321.51
plot(nafta_att_p5a)
diff --git a/docs/reference/add_err-1.png b/docs/reference/add_err-1.png index 2f60fdf7..61f00d9b 100644 Binary files a/docs/reference/add_err-1.png and b/docs/reference/add_err-1.png differ diff --git a/docs/reference/logLik.mkinfit.html b/docs/reference/logLik.mkinfit.html index 0184d573..f5844a8e 100644 --- a/docs/reference/logLik.mkinfit.html +++ b/docs/reference/logLik.mkinfit.html @@ -180,7 +180,7 @@ The total number of estimated parameters returned with the value f_nw <- mkinfit(sfo_sfo, d_t, quiet = TRUE) # no weighting (weights are unity)
#> Warning: Observations with value of zero were removed from the data
f_obs <- mkinfit(sfo_sfo, d_t, error_model = "obs", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
f_tc <- mkinfit(sfo_sfo, d_t, error_model = "tc", quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
AIC(f_nw, f_obs, f_tc)
#> df AIC #> f_nw 5 204.4486 #> f_obs 6 205.8727 -#> f_tc 6 141.9656
+#> f_tc 6 148.1802
summary(m)$bpar
#> Estimate se_notrans t value Pr(>t) Lower -#> parent_0 1.057896e+02 1.9023449643 55.610120 3.768361e-16 1.016451e+02 +#> parent_0 1.057896e+02 1.9023449649 55.610120 3.768361e-16 1.016451e+02 #> kmax 6.398190e-02 0.0143201029 4.467978 3.841828e-04 3.929235e-02 -#> k0 1.612775e-04 0.0005866813 0.274898 3.940351e-01 5.846687e-08 -#> r 2.263946e-01 0.1718110718 1.317695 1.061044e-01 4.335843e-02 +#> k0 1.612775e-04 0.0005866813 0.274898 3.940351e-01 5.846685e-08 +#> r 2.263946e-01 0.1718110773 1.317695 1.061044e-01 4.335843e-02 #> sigma 5.332935e+00 0.9145907310 5.830952 4.036926e-05 3.340213e+00 #> Upper #> parent_0 109.9341588 #> kmax 0.1041853 -#> k0 0.4448749 +#> k0 0.4448750 #> r 1.1821121 #> sigma 7.3256566
endpoints(m)$distimes
#> DT50 DT90 DT50_k0 DT50_kmax -#> parent 36.86533 62.41511 4297.853 10.83349
+#> parent 36.86533 62.41511 4297.854 10.83349
#> Compilation argument: -#> /usr/lib/R/bin/R CMD SHLIB file26cc3b169ccf.c 2> file26cc3b169ccf.c.err.txt +#> /usr/lib/R/bin/R CMD SHLIB file2b304be466d0.c 2> file2b304be466d0.c.err.txt #> Program source: #> 1: #include <R.h> #> 2: diff --git a/docs/reference/mkinparplot-1.png b/docs/reference/mkinparplot-1.png index 798722a2..65918d53 100644 Binary files a/docs/reference/mkinparplot-1.png and b/docs/reference/mkinparplot-1.png differ diff --git a/docs/reference/mkinparplot.html b/docs/reference/mkinparplot.html index c90acf4a..8cfb9374 100644 --- a/docs/reference/mkinparplot.html +++ b/docs/reference/mkinparplot.html @@ -154,8 +154,7 @@
model <- mkinmod( T245 = mkinsub("SFO", to = c("phenol"), sink = FALSE), phenol = mkinsub("SFO", to = c("anisole")), - anisole = mkinsub("SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
fit <- mkinfit(model, subset(mccall81_245T, soil == "Commerce"), quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
#> Warning: Optimisation did not converge: -#> false convergence (8)
mkinparplot(fit)
+ anisole = mkinsub("SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
fit <- mkinfit(model, subset(mccall81_245T, soil == "Commerce"), quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
mkinparplot(fit)
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.002 0.000 0.002
system.time( +#> 0.002 0.000 0.001
system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve", use_compiled = FALSE)[201,]))
#> time parent m1 #> 201 20 4.978707 27.46227
#> User System verstrichen -#> 0.021 0.000 0.021
+#> 0.022 0.000 0.021
# Predict from a fitted model - f <- mkinfit(SFO_SFO, FOCUS_2006_C)
#> Sum of squared residuals at call 1: 552.5739 + f <- mkinfit(SFO_SFO, FOCUS_2006_C)
#> Ordinary least squares optimisation
#> Sum of squared residuals at call 1: 552.5739 #> Sum of squared residuals at call 3: 552.5739 #> Sum of squared residuals at call 4: 552.5739 #> Sum of squared residuals at call 6: 279.9345 @@ -350,6 +350,7 @@ #> Sum of squared residuals at call 12: 200.3629 #> Sum of squared residuals at call 13: 200.3629 #> Sum of squared residuals at call 18: 197.9039 +#> Sum of squared residuals at call 23: 197.9039 #> Sum of squared residuals at call 25: 196.6754 #> Sum of squared residuals at call 27: 196.6754 #> Sum of squared residuals at call 32: 196.5742 @@ -366,15 +367,16 @@ #> Sum of squared residuals at call 58: 196.5334 #> Sum of squared residuals at call 59: 196.5334 #> Sum of squared residuals at call 65: 196.5334 +#> Sum of squared residuals at call 73: 196.5334 #> Negative log-likelihood at call 75: 26.64668 #> Negative log-likelihood at call 103: 26.64668 #> Optimisation successfully terminated.
head(mkinpredict(f))
#> time parent m1 #> 1 0.0 82.49216 0.000000 -#> 2 0.1 80.00563 1.179956 -#> 3 0.2 77.59404 2.312583 -#> 4 0.3 75.25515 3.399424 -#> 5 0.4 72.98675 4.441974 -#> 6 0.5 70.78673 5.441685
+#> 2 0.1 80.00563 1.179955 +#> 3 0.2 77.59404 2.312580 +#> 4 0.3 75.25515 3.399419 +#> 5 0.4 72.98675 4.441969 +#> 6 0.5 70.78673 5.441679
#> User System verstrichen -#> 0.047 0.041 7.417
time_1
#> User System verstrichen -#> 21.251 0.000 21.263
+#> 0.042 0.028 5.095
time_1
#> User System verstrichen +#> 19.29 0.00 19.30
endpoints(fits.0[["SFO_lin", 2]])
#> $ff #> parent_M1 parent_sink M1_M2 M1_sink -#> 0.7340481 0.2659519 0.7505683 0.2494317 +#> 0.7340481 0.2659519 0.7505684 0.2494316 #> #> $SFORB #> logical(0) @@ -206,8 +206,8 @@ #> $distimes #> DT50 DT90 #> parent 0.8777689 2.915885 -#> M1 2.3257442 7.725955 -#> M2 33.7200941 112.015728 +#> M1 2.3257449 7.725957 +#> M2 33.7200958 112.015734 #>
# plot.mkinfit handles rows or columns of mmkin result objects plot(fits.0[1, ])
plot(fits.0[1, ], obs_var = c("M1", "M2"))
plot(fits.0[, 1])
# Use double brackets to extract a single mkinfit object, which will be plotted diff --git a/docs/reference/plot.mkinfit-1.png b/docs/reference/plot.mkinfit-1.png index 115792db..e7b3bac7 100644 Binary files a/docs/reference/plot.mkinfit-1.png and b/docs/reference/plot.mkinfit-1.png differ diff --git a/docs/reference/plot.mmkin-3.png b/docs/reference/plot.mmkin-3.png index 412c7244..7f32afe2 100644 Binary files a/docs/reference/plot.mmkin-3.png and b/docs/reference/plot.mmkin-3.png differ diff --git a/docs/reference/schaefer07_complex_case.html b/docs/reference/schaefer07_complex_case.html index f645e6a7..09f6d1e2 100644 --- a/docs/reference/schaefer07_complex_case.html +++ b/docs/reference/schaefer07_complex_case.html @@ -167,7 +167,7 @@ A2 = list(type = "SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
fit <- mkinfit(model, data, quiet = TRUE) plot(fit)
endpoints(fit)
#> $ff #> parent_A1 parent_B1 parent_C1 parent_sink A1_A2 A1_sink -#> 0.3809619 0.1954667 0.4235714 0.0000000 0.4479603 0.5520397 +#> 0.3809619 0.1954667 0.4235714 0.0000000 0.4479620 0.5520380 #> #> $SFORB #> logical(0) @@ -175,10 +175,10 @@ #> $distimes #> DT50 DT90 #> parent 13.95078 46.34350 -#> A1 49.75343 165.27733 -#> B1 37.26907 123.80518 -#> C1 11.23131 37.30959 -#> A2 28.50644 94.69635 +#> A1 49.75344 165.27737 +#> B1 37.26907 123.80517 +#> C1 11.23131 37.30960 +#> A2 28.50627 94.69577 #>
# Compare with the results obtained in the original publication print(schaefer07_complex_results)
#> compound parameter KinGUI ModelMaker deviation #> 1 parent degradation rate 0.0496 0.0506 2.0 diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index 89a8b9a6..351d7a7e 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -211,15 +211,15 @@

Examples

summary(mkinfit(mkinmod(parent = mkinsub("SFO")), FOCUS_2006_A, quiet = TRUE))
#> mkin version used for fitting: 0.9.49.4 #> R version used for fitting: 3.6.0 -#> Date of fit: Thu May 2 18:48:59 2019 -#> Date of summary: Thu May 2 18:48:59 2019 +#> Date of fit: Fri May 3 19:08:31 2019 +#> Date of summary: Fri May 3 19:08:31 2019 #> #> Equations: #> d_parent/dt = - k_parent_sink * parent #> #> Model predictions using solution type analytical #> -#> Fitted using 131 model solutions performed in 0.274 s +#> Fitted using 131 model solutions performed in 0.27 s #> #> Error model: #> Constant variance @@ -247,9 +247,9 @@ #> #> Parameter correlation: #> parent_0 log_k_parent_sink sigma -#> parent_0 1.000e+00 5.428e-01 1.642e-07 -#> log_k_parent_sink 5.428e-01 1.000e+00 2.507e-07 -#> sigma 1.642e-07 2.507e-07 1.000e+00 +#> parent_0 1.000e+00 5.428e-01 1.648e-07 +#> log_k_parent_sink 5.428e-01 1.000e+00 2.513e-07 +#> sigma 1.648e-07 2.513e-07 1.000e+00 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. diff --git a/docs/reference/test_data_from_UBA_2014.html b/docs/reference/test_data_from_UBA_2014.html index 688baf32..bc988340 100644 --- a/docs/reference/test_data_from_UBA_2014.html +++ b/docs/reference/test_data_from_UBA_2014.html @@ -160,14 +160,14 @@ m_ws <- mkinmod(parent_w = mkinsub("SFO", "parent_s"), parent_s = mkinsub("SFO", "parent_w"))
#> Successfully compiled differential equation model from auto-generated C code.
f_river <- mkinfit(m_ws, test_data_from_UBA_2014[[1]]$data, quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
plot_sep(f_river)
summary(f_river)$bpar
#> Estimate se_notrans t value Pr(>t) -#> parent_w_0 9.598567e+01 2.12352039 4.520120e+01 9.476357e-18 -#> k_parent_w_sink 3.603743e-01 0.03149366 1.144276e+01 4.128096e-09 -#> k_parent_w_parent_s 6.031371e-02 0.01603582 3.761185e+00 9.436293e-04 -#> k_parent_s_sink 7.560341e-11 0.09483761 7.971881e-10 5.000000e-01 -#> k_parent_s_parent_w 7.419672e-02 0.10738374 6.909493e-01 2.500756e-01 -#> sigma 2.982879e+00 0.50546582 5.901247e+00 1.454824e-05 +#> parent_w_0 9.598567e+01 2.12351789 4.520126e+01 9.476190e-18 +#> k_parent_w_sink 3.603743e-01 0.03149282 1.144306e+01 4.126593e-09 +#> k_parent_w_parent_s 6.031371e-02 0.01603582 3.761186e+00 9.436275e-04 +#> k_parent_s_sink 5.108964e-11 0.09482736 5.387647e-10 5.000000e-01 +#> k_parent_s_parent_w 7.419672e-02 0.10737376 6.910135e-01 2.500560e-01 +#> sigma 2.982879e+00 0.50545649 5.901356e+00 1.454535e-05 #> Lower Upper -#> parent_w_0 91.48420501 100.4871438 +#> parent_w_0 91.48420503 100.4871438 #> k_parent_w_sink 0.30668904 0.4234571 #> k_parent_w_parent_s 0.03423904 0.1062455 #> k_parent_s_sink 0.00000000 Inf @@ -184,25 +184,25 @@ M3 = mkinsub("SFO"), use_of_ff = "max")
#> Successfully compiled differential equation model from auto-generated C code.
f_soil <- mkinfit(m_soil, test_data_from_UBA_2014[[3]]$data, quiet = TRUE)
#> Warning: Observations with value of zero were removed from the data
plot_sep(f_soil, lpos = c("topright", "topright", "topright", "bottomright"))
summary(f_soil)$bpar
#> Estimate se_notrans t value Pr(>t) Lower -#> parent_0 76.55425583 0.859186612 89.1008482 1.113866e-26 74.755959748 -#> k_parent 0.12081956 0.004601921 26.2541551 1.077372e-16 0.111561582 -#> k_M1 0.84258650 0.806231456 1.0450926 1.545475e-01 0.113839804 -#> k_M2 0.04210878 0.017083049 2.4649452 1.170195e-02 0.018013807 +#> parent_0 76.55425584 0.859186619 89.1008474 1.113866e-26 74.755959756 +#> k_parent 0.12081956 0.004601922 26.2541544 1.077373e-16 0.111561582 +#> k_M1 0.84258649 0.806231419 1.0450926 1.545475e-01 0.113839803 +#> k_M2 0.04210878 0.017083049 2.4649453 1.170195e-02 0.018013807 #> k_M3 0.01122919 0.007245890 1.5497322 6.885127e-02 0.002909463 -#> f_parent_to_M1 0.32240199 0.240803564 1.3388589 9.820820e-02 NA -#> f_parent_to_M2 0.16099854 0.033691991 4.7785403 6.531225e-05 NA -#> f_M1_to_M3 0.27921500 0.269443517 1.0362654 1.565440e-01 0.022992933 -#> f_M2_to_M3 0.55641333 0.595125466 0.9349513 1.807725e-01 0.008003317 +#> f_parent_to_M1 0.32240199 0.240803555 1.3388589 9.820820e-02 NA +#> f_parent_to_M2 0.16099854 0.033691991 4.7785403 6.531224e-05 NA +#> f_M1_to_M3 0.27921501 0.269443514 1.0362655 1.565440e-01 0.022992937 +#> f_M2_to_M3 0.55641331 0.595125445 0.9349513 1.807725e-01 0.008003317 #> sigma 1.14005399 0.149696423 7.6157731 1.727024e-07 0.826735778 #> Upper #> parent_0 78.35255192 #> k_parent 0.13084582 -#> k_M1 6.23641283 +#> k_M1 6.23641265 #> k_M2 0.09843279 #> k_M3 0.04333950 #> f_parent_to_M1 NA #> f_parent_to_M2 NA -#> f_M1_to_M3 0.86443084 +#> f_M1_to_M3 0.86443083 #> f_M2_to_M3 0.99489847 #> sigma 1.45337221
mkinerrmin(f_soil)
#> err.min n.optim df #> All data 0.09649963 9 20 -- cgit v1.2.1