From b5b446b718b15ccaae5b197e147fc1358f0f564e Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 6 Nov 2020 00:03:29 +0100 Subject: Fast analytical solutions for saemix, update.mmkin Also, use logit transformation for g and for solitary formation fractions, addressing #10. --- docs/dev/reference/Rplot001.png | Bin 19062 -> 1011 bytes docs/dev/reference/Rplot002.png | Bin 24396 -> 17289 bytes docs/dev/reference/Rplot003.png | Bin 6583 -> 15451 bytes docs/dev/reference/Rplot004.png | Bin 28700 -> 13203 bytes docs/dev/reference/Rplot005.png | Bin 26806 -> 15024 bytes docs/dev/reference/Rplot006.png | Bin 26623 -> 13474 bytes docs/dev/reference/Rplot007.png | Bin 26730 -> 18546 bytes docs/dev/reference/Rplot008.png | Bin 0 -> 11762 bytes docs/dev/reference/Rplot009.png | Bin 0 -> 21414 bytes docs/dev/reference/Rplot010.png | Bin 0 -> 5643 bytes docs/dev/reference/Rplot011.png | Bin 0 -> 26192 bytes docs/dev/reference/Rplot012.png | Bin 0 -> 23686 bytes docs/dev/reference/Rplot013.png | Bin 0 -> 23097 bytes docs/dev/reference/Rplot014.png | Bin 0 -> 18299 bytes docs/dev/reference/Rplot015.png | Bin 0 -> 23097 bytes docs/dev/reference/mkinfit-1.png | Bin 0 -> 67810 bytes docs/dev/reference/mkinfit.html | 154 ++--- docs/dev/reference/mmkin-1.png | Bin 115683 -> 114048 bytes docs/dev/reference/mmkin-2.png | Bin 113464 -> 110392 bytes docs/dev/reference/mmkin-3.png | Bin 100799 -> 97556 bytes docs/dev/reference/mmkin-4.png | Bin 70430 -> 70005 bytes docs/dev/reference/mmkin-5.png | Bin 66958 -> 66093 bytes docs/dev/reference/mmkin.html | 87 +-- docs/dev/reference/saemix-1.png | Bin 50490 -> 46062 bytes docs/dev/reference/saemix-10.png | Bin 0 -> 17011 bytes docs/dev/reference/saemix-11.png | Bin 0 -> 64787 bytes docs/dev/reference/saemix-12.png | Bin 0 -> 59464 bytes docs/dev/reference/saemix-13.png | Bin 0 -> 7742 bytes docs/dev/reference/saemix-2.png | Bin 60503 -> 47804 bytes docs/dev/reference/saemix-3.png | Bin 18094 -> 40694 bytes docs/dev/reference/saemix-4.png | Bin 82011 -> 38144 bytes docs/dev/reference/saemix-5.png | Bin 0 -> 39988 bytes docs/dev/reference/saemix-6.png | Bin 0 -> 39720 bytes docs/dev/reference/saemix-7.png | Bin 0 -> 7742 bytes docs/dev/reference/saemix-8.png | Bin 0 -> 35501 bytes docs/dev/reference/saemix-9.png | Bin 0 -> 7742 bytes docs/dev/reference/saemix.html | 974 ++++++++++++++++++++++------- docs/dev/reference/transform_odeparms.html | 159 +++-- 38 files changed, 969 insertions(+), 405 deletions(-) create mode 100644 docs/dev/reference/Rplot008.png create mode 100644 docs/dev/reference/Rplot009.png create mode 100644 docs/dev/reference/Rplot010.png create mode 100644 docs/dev/reference/Rplot011.png create mode 100644 docs/dev/reference/Rplot012.png create mode 100644 docs/dev/reference/Rplot013.png create mode 100644 docs/dev/reference/Rplot014.png create mode 100644 docs/dev/reference/Rplot015.png create mode 100644 docs/dev/reference/mkinfit-1.png create mode 100644 docs/dev/reference/saemix-10.png create mode 100644 docs/dev/reference/saemix-11.png create mode 100644 docs/dev/reference/saemix-12.png create mode 100644 docs/dev/reference/saemix-13.png create mode 100644 docs/dev/reference/saemix-5.png create mode 100644 docs/dev/reference/saemix-6.png create mode 100644 docs/dev/reference/saemix-7.png create mode 100644 docs/dev/reference/saemix-8.png create mode 100644 docs/dev/reference/saemix-9.png (limited to 'docs/dev/reference') diff --git a/docs/dev/reference/Rplot001.png b/docs/dev/reference/Rplot001.png index 36b20f09..17a35806 100644 Binary files a/docs/dev/reference/Rplot001.png and b/docs/dev/reference/Rplot001.png differ diff --git a/docs/dev/reference/Rplot002.png b/docs/dev/reference/Rplot002.png index b568eb1c..a33ecd71 100644 Binary files a/docs/dev/reference/Rplot002.png and b/docs/dev/reference/Rplot002.png differ diff --git a/docs/dev/reference/Rplot003.png b/docs/dev/reference/Rplot003.png index 53415e5d..dd7e24f3 100644 Binary files a/docs/dev/reference/Rplot003.png and b/docs/dev/reference/Rplot003.png differ diff --git a/docs/dev/reference/Rplot004.png b/docs/dev/reference/Rplot004.png index ea685493..2057f883 100644 Binary files a/docs/dev/reference/Rplot004.png and b/docs/dev/reference/Rplot004.png differ diff --git a/docs/dev/reference/Rplot005.png b/docs/dev/reference/Rplot005.png index aceec1b5..b9285d56 100644 Binary files a/docs/dev/reference/Rplot005.png and b/docs/dev/reference/Rplot005.png differ diff --git a/docs/dev/reference/Rplot006.png b/docs/dev/reference/Rplot006.png index b3c9f16f..511c6b00 100644 Binary files a/docs/dev/reference/Rplot006.png and b/docs/dev/reference/Rplot006.png differ diff --git a/docs/dev/reference/Rplot007.png b/docs/dev/reference/Rplot007.png index 225931c4..a0d6336e 100644 Binary files a/docs/dev/reference/Rplot007.png and b/docs/dev/reference/Rplot007.png differ diff --git a/docs/dev/reference/Rplot008.png b/docs/dev/reference/Rplot008.png new file mode 100644 index 00000000..5d1701b8 Binary files /dev/null and b/docs/dev/reference/Rplot008.png differ diff --git a/docs/dev/reference/Rplot009.png b/docs/dev/reference/Rplot009.png new file mode 100644 index 00000000..7788b2d0 Binary files /dev/null and b/docs/dev/reference/Rplot009.png differ diff --git a/docs/dev/reference/Rplot010.png b/docs/dev/reference/Rplot010.png new file mode 100644 index 00000000..86ddd790 Binary files /dev/null and b/docs/dev/reference/Rplot010.png differ diff --git a/docs/dev/reference/Rplot011.png b/docs/dev/reference/Rplot011.png new file mode 100644 index 00000000..30861f3e Binary files /dev/null and b/docs/dev/reference/Rplot011.png differ diff --git a/docs/dev/reference/Rplot012.png b/docs/dev/reference/Rplot012.png new file mode 100644 index 00000000..4286bb2a Binary files /dev/null and b/docs/dev/reference/Rplot012.png differ diff --git a/docs/dev/reference/Rplot013.png b/docs/dev/reference/Rplot013.png new file mode 100644 index 00000000..65903441 Binary files /dev/null and b/docs/dev/reference/Rplot013.png differ diff --git a/docs/dev/reference/Rplot014.png b/docs/dev/reference/Rplot014.png new file mode 100644 index 00000000..fe2cf0d9 Binary files /dev/null and b/docs/dev/reference/Rplot014.png differ diff --git a/docs/dev/reference/Rplot015.png b/docs/dev/reference/Rplot015.png new file mode 100644 index 00000000..65903441 Binary files /dev/null and b/docs/dev/reference/Rplot015.png differ diff --git a/docs/dev/reference/mkinfit-1.png b/docs/dev/reference/mkinfit-1.png new file mode 100644 index 00000000..eed9064f Binary files /dev/null and b/docs/dev/reference/mkinfit-1.png differ diff --git a/docs/dev/reference/mkinfit.html b/docs/dev/reference/mkinfit.html index 39bd12cb..b46c2cce 100644 --- a/docs/dev/reference/mkinfit.html +++ b/docs/dev/reference/mkinfit.html @@ -307,12 +307,11 @@ a lower bound for the rates in the optimisation.

transform_fractions

Boolean specifying if formation fractions -constants should be transformed in the model specification used in the -fitting for better compliance with the assumption of normal distribution -of the estimator. The default (TRUE) is to do transformations. If TRUE, -the g parameter of the DFOP and HS models are also transformed, as they -can also be seen as compositional data. The transformation used for these -transformations is the ilr() transformation.

+should be transformed in the model specification used in the fitting for +better compliance with the assumption of normal distribution of the +estimator. The default (TRUE) is to do transformations. If TRUE, +the g parameter of the DFOP model is also transformed. Transformations +are described in transform_odeparms.

quiet @@ -433,15 +432,15 @@ Degradation Data. Environments 6(12) 124 summary(fit)
#> mkin version used for fitting: 0.9.50.4 #> R version used for fitting: 4.0.3 -#> Date of fit: Thu Nov 5 08:25:42 2020 -#> Date of summary: Thu Nov 5 08:25:42 2020 +#> Date of fit: Thu Nov 5 23:14:40 2020 +#> Date of summary: Thu Nov 5 23:14:40 2020 #> #> 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.049 s +#> Fitted using 222 model solutions performed in 0.05 s #> #> Error model: Constant variance #> @@ -521,8 +520,8 @@ Degradation Data. Environments 6(12) 124
#> Successfully compiled differential equation model from auto-generated C code.
# Fit the model quietly to the FOCUS example dataset D using defaults fit <- mkinfit(SFO_SFO, FOCUS_D, quiet = TRUE) -# Since mkin 0.9.50.3, we get a warning about non-normality of residuals, -# so we try an alternative error model +plot_sep(fit) +
# As lower parent values appear to have lower variance, we try an alternative error model fit.tc <- mkinfit(SFO_SFO, FOCUS_D, quiet = TRUE, error_model = "tc") # This avoids the warning, and the likelihood ratio test confirms it is preferable lrtest(fit.tc, fit) @@ -536,8 +535,7 @@ Degradation Data. Environments 6(12) 124 #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# We can also allow for different variances of parent and metabolite as error model fit.obs <- mkinfit(SFO_SFO, FOCUS_D, quiet = TRUE, error_model = "obs") -# This also avoids the warning about non-normality, but the two-component error model -# has significantly higher likelihood +# The two-component error model has significantly higher likelihood lrtest(fit.obs, fit.tc)
#> Likelihood ratio test #> @@ -549,9 +547,9 @@ Degradation Data. Environments 6(12) 124 #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
parms(fit.tc)
#> parent_0 k_parent k_m1 f_parent_to_m1 sigma_low -#> 1.007343e+02 1.005562e-01 5.166712e-03 5.083933e-01 3.049891e-03 +#> 1.007343e+02 1.005562e-01 5.166712e-03 5.083933e-01 3.049884e-03 #> rsd_high -#> 7.928117e-02
endpoints(fit.tc) +#> 7.928118e-02
endpoints(fit.tc)
#> $ff #> parent_m1 parent_sink #> 0.5083933 0.4916067 @@ -559,7 +557,7 @@ Degradation Data. Environments 6(12) 124 #> $distimes #> DT50 DT90 #> parent 6.89313 22.89848 -#> m1 134.15635 445.65776 +#> m1 134.15634 445.65772 #>
# We can show a quick (only one replication) benchmark for this case, as we # have several alternative solution methods for the model. We skip @@ -576,9 +574,9 @@ Degradation Data. Environments 6(12) 124 solution_type = "analytical")) }
#> Loading required package: rbenchmark
#> test relative elapsed -#> 3 analytical 1.000 0.746 -#> 1 deSolve_compiled 2.288 1.707 -#> 2 eigen 2.708 2.020
# } +#> 3 analytical 1.000 0.532 +#> 1 deSolve_compiled 1.765 0.939 +#> 2 eigen 2.229 1.186
# } # Use stepwise fitting, using optimised parameters from parent only fit, FOMC-SFO # \dontrun{ @@ -588,21 +586,22 @@ Degradation Data. Environments 6(12) 124
#> Successfully compiled differential equation model from auto-generated C code.
fit.FOMC_SFO <- mkinfit(FOMC_SFO, FOCUS_D, quiet = TRUE) # Again, we get a warning and try a more sophisticated error model fit.FOMC_SFO.tc <- mkinfit(FOMC_SFO, FOCUS_D, quiet = TRUE, error_model = "tc") -# This model has a higher likelihood, but not significantly so +
#> Warning: Optimisation did not converge: +#> iteration limit reached without convergence (10)
# This model has a higher likelihood, but not significantly so lrtest(fit.tc, fit.FOMC_SFO.tc)
#> Likelihood ratio test #> #> Model 1: FOMC_SFO with error model tc and fixed parameter(s) m1_0 #> Model 2: SFO_SFO with error model tc and fixed parameter(s) m1_0 #> #Df LogLik Df Chisq Pr(>Chisq) -#> 1 7 -64.829 -#> 2 6 -64.983 -1 0.3075 0.5792
# Also, the missing standard error for log_beta and the t-tests for alpha +#> 1 7 -64.870 +#> 2 6 -64.983 -1 0.2259 0.6346
# Also, the missing standard error for log_beta and the t-tests for alpha # and beta indicate overparameterisation summary(fit.FOMC_SFO.tc, data = FALSE) -
#> Warning: NaNs produced
#> Warning: NaNs produced
#> Warning: diag(.) had 0 or NA entries; non-finite result is doubtful
#> mkin version used for fitting: 0.9.50.4 +
#> Warning: NaNs produced
#> Warning: NaNs produced
#> Warning: NaNs produced
#> Warning: diag(.) had 0 or NA entries; non-finite result is doubtful
#> mkin version used for fitting: 0.9.50.4 #> R version used for fitting: 4.0.3 -#> Date of fit: Thu Nov 5 08:25:56 2020 -#> Date of summary: Thu Nov 5 08:25:56 2020 +#> Date of fit: Thu Nov 5 23:14:51 2020 +#> Date of summary: Thu Nov 5 23:14:51 2020 #> #> Equations: #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent @@ -611,7 +610,7 @@ Degradation Data. Environments 6(12) 124 #> #> Model predictions using solution type deSolve #> -#> Fitted using 3611 model solutions performed in 2.673 s +#> Fitted using 4273 model solutions performed in 3.081 s #> #> Error model: Two-component variance function #> @@ -629,80 +628,85 @@ Degradation Data. Environments 6(12) 124 #> rsd_high 0.10 error #> #> Starting values for the transformed parameters actually optimised: -#> value lower upper -#> parent_0 100.750000 -Inf Inf -#> log_k_m1 -2.302585 -Inf Inf -#> f_parent_ilr_1 0.000000 -Inf Inf -#> log_alpha 0.000000 -Inf Inf -#> log_beta 2.302585 -Inf Inf -#> sigma_low 0.100000 0 Inf -#> rsd_high 0.100000 0 Inf +#> value lower upper +#> parent_0 100.750000 -Inf Inf +#> log_k_m1 -2.302585 -Inf Inf +#> f_parent_qlogis 0.000000 -Inf Inf +#> log_alpha 0.000000 -Inf Inf +#> log_beta 2.302585 -Inf Inf +#> sigma_low 0.100000 0 Inf +#> rsd_high 0.100000 0 Inf #> #> Fixed parameter values: #> value type #> m1_0 0 state #> +#> +#> Warning(s): +#> Optimisation did not converge: +#> iteration limit reached without convergence (10) +#> #> Results: #> -#> AIC BIC logLik -#> 143.658 155.1211 -64.82902 +#> AIC BIC logLik +#> 143.7396 155.2027 -64.86982 #> #> Optimised, transformed parameters with symmetric confidence intervals: -#> Estimate Std. Error Lower Upper -#> parent_0 101.600000 2.6390000 96.240000 107.000000 -#> log_k_m1 -5.284000 0.0928900 -5.473000 -5.095000 -#> f_parent_ilr_1 0.001008 0.0541900 -0.109500 0.111500 -#> log_alpha 5.522000 0.0077300 5.506000 5.538000 -#> log_beta 7.806000 NaN NaN NaN -#> sigma_low 0.002488 0.0002431 0.001992 0.002984 -#> rsd_high 0.079210 0.0093280 0.060180 0.098230 +#> Estimate Std. Error Lower Upper +#> parent_0 1.016e+02 1.90600 97.7400 105.5000 +#> log_k_m1 -5.285e+00 0.09286 -5.4740 -5.0950 +#> f_parent_qlogis 6.482e-04 0.06164 -0.1251 0.1264 +#> log_alpha 5.467e+00 NaN NaN NaN +#> log_beta 7.750e+00 NaN NaN NaN +#> sigma_low 0.000e+00 NaN NaN NaN +#> rsd_high 7.989e-02 NaN NaN NaN #> #> Parameter correlation: -#> parent_0 log_k_m1 f_parent_ilr_1 log_alpha log_beta sigma_low -#> parent_0 1.000000 -0.094697 -0.76654 0.70525 NaN 0.016099 -#> log_k_m1 -0.094697 1.000000 0.51404 -0.14347 NaN 0.001576 -#> f_parent_ilr_1 -0.766543 0.514038 1.00000 -0.61368 NaN 0.015465 -#> log_alpha 0.705247 -0.143468 -0.61368 1.00000 NaN 5.871780 -#> log_beta NaN NaN NaN NaN 1 NaN -#> sigma_low 0.016099 0.001576 0.01546 5.87178 NaN 1.000000 -#> rsd_high 0.006566 -0.011662 -0.05353 0.04845 NaN -0.652554 -#> rsd_high -#> parent_0 0.006566 -#> log_k_m1 -0.011662 -#> f_parent_ilr_1 -0.053525 -#> log_alpha 0.048451 -#> log_beta NaN -#> sigma_low -0.652554 -#> rsd_high 1.000000 +#> parent_0 log_k_m1 f_parent_qlogis log_alpha log_beta +#> parent_0 1.0000000 -0.0002167 -0.6060 NaN NaN +#> log_k_m1 -0.0002167 1.0000000 0.5474 NaN NaN +#> f_parent_qlogis -0.6060320 0.5474423 1.0000 NaN NaN +#> log_alpha NaN NaN NaN 1 NaN +#> log_beta NaN NaN NaN NaN 1 +#> sigma_low NaN NaN NaN NaN NaN +#> rsd_high NaN NaN NaN NaN NaN +#> sigma_low rsd_high +#> parent_0 NaN NaN +#> log_k_m1 NaN NaN +#> f_parent_qlogis NaN NaN +#> log_alpha NaN NaN +#> log_beta NaN NaN +#> sigma_low 1 NaN +#> rsd_high NaN 1 #> #> Backtransformed parameters: #> Confidence intervals for internally transformed parameters are asymmetric. #> t-test (unrealistically) based on the assumption of normal distribution #> for estimators of untransformed parameters. #> Estimate t value Pr(>t) Lower Upper -#> parent_0 1.016e+02 32.7800 6.312e-26 9.624e+01 1.070e+02 -#> k_m1 5.072e-03 10.1200 1.216e-11 4.197e-03 6.130e-03 -#> f_parent_to_m1 5.004e-01 20.8300 4.318e-20 4.614e-01 5.394e-01 -#> alpha 2.502e+02 0.5624 2.889e-01 2.463e+02 2.542e+02 -#> beta 2.455e+03 0.5549 2.915e-01 NA NA -#> sigma_low 2.488e-03 0.4843 3.158e-01 1.992e-03 2.984e-03 -#> rsd_high 7.921e-02 8.4300 8.001e-10 6.018e-02 9.823e-02 +#> parent_0 1.016e+02 32.5400 7.812e-26 97.740000 1.055e+02 +#> k_m1 5.069e-03 10.0400 1.448e-11 0.004194 6.126e-03 +#> f_parent_to_m1 5.002e-01 20.7300 5.001e-20 0.468800 5.315e-01 +#> alpha 2.367e+02 0.6205 2.697e-01 NA NA +#> beta 2.322e+03 0.6114 2.727e-01 NA NA +#> sigma_low 0.000e+00 NaN NaN NaN NaN +#> rsd_high 7.989e-02 8.6630 4.393e-10 NaN NaN #> #> FOCUS Chi2 error levels in percent: #> err.min n.optim df -#> All data 6.781 5 14 -#> parent 7.141 3 6 -#> m1 4.640 2 8 +#> All data 6.782 5 14 +#> parent 7.142 3 6 +#> m1 4.639 2 8 #> #> Resulting formation fractions: #> ff -#> parent_m1 0.5004 -#> parent_sink 0.4996 +#> parent_m1 0.5002 +#> parent_sink 0.4998 #> #> Estimated disappearance times: -#> DT50 DT90 DT50back -#> parent 6.812 22.7 6.834 -#> m1 136.661 454.0 NA
+#> DT50 DT90 DT50back +#> parent 6.81 22.7 6.833 +#> m1 136.74 454.2 NA
# We can easily use starting parameters from the parent only fit (only for illustration) fit.FOMC = mkinfit("FOMC", FOCUS_2006_D, quiet = TRUE, error_model = "tc") fit.FOMC_SFO <- mkinfit(FOMC_SFO, FOCUS_D, quiet = TRUE, diff --git a/docs/dev/reference/mmkin-1.png b/docs/dev/reference/mmkin-1.png index 135d5446..7b7da90a 100644 Binary files a/docs/dev/reference/mmkin-1.png and b/docs/dev/reference/mmkin-1.png differ diff --git a/docs/dev/reference/mmkin-2.png b/docs/dev/reference/mmkin-2.png index 40109afc..ce2b2af4 100644 Binary files a/docs/dev/reference/mmkin-2.png and b/docs/dev/reference/mmkin-2.png differ diff --git a/docs/dev/reference/mmkin-3.png b/docs/dev/reference/mmkin-3.png index bce34531..bb96f1b2 100644 Binary files a/docs/dev/reference/mmkin-3.png and b/docs/dev/reference/mmkin-3.png differ diff --git a/docs/dev/reference/mmkin-4.png b/docs/dev/reference/mmkin-4.png index 02976ced..351b21aa 100644 Binary files a/docs/dev/reference/mmkin-4.png and b/docs/dev/reference/mmkin-4.png differ diff --git a/docs/dev/reference/mmkin-5.png b/docs/dev/reference/mmkin-5.png index 56750342..c1c05eea 100644 Binary files a/docs/dev/reference/mmkin-5.png and b/docs/dev/reference/mmkin-5.png differ diff --git a/docs/dev/reference/mmkin.html b/docs/dev/reference/mmkin.html index a5d7ba42..b0ca90f0 100644 --- a/docs/dev/reference/mmkin.html +++ b/docs/dev/reference/mmkin.html @@ -75,7 +75,7 @@ datasets specified in its first two arguments." /> mkin - 0.9.50.3 + 0.9.50.4
@@ -123,7 +123,7 @@ datasets specified in its first two arguments." />