diff options
author | Johannes Ranke <jranke@uni-bremen.de> | 2020-11-06 00:03:29 +0100 |
---|---|---|
committer | Johannes Ranke <jranke@uni-bremen.de> | 2020-11-06 00:03:29 +0100 |
commit | b5b446b718b15ccaae5b197e147fc1358f0f564e (patch) | |
tree | a36f32ee664c6925b5afdb812daca41075968152 /docs/dev/reference/mkinfit.html | |
parent | 2f24fe0ce70d040e491619d7f2413fc902e433f1 (diff) |
Fast analytical solutions for saemix, update.mmkin
Also, use logit transformation for g and for solitary formation
fractions, addressing #10.
Diffstat (limited to 'docs/dev/reference/mkinfit.html')
-rw-r--r-- | docs/dev/reference/mkinfit.html | 154 |
1 files changed, 79 insertions, 75 deletions
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.</p></td> <tr> <th>transform_fractions</th> <td><p>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 <code><a href='ilr.html'>ilr()</a></code> transformation.</p></td> +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 <a href='transform_odeparms.html'>transform_odeparms</a>.</p></td> </tr> <tr> <th>quiet</th> @@ -433,15 +432,15 @@ Degradation Data. <em>Environments</em> 6(12) 124 <span class='fu'><a href='https://rdrr.io/r/base/summary.html'>summary</a></span><span class='op'>(</span><span class='va'>fit</span><span class='op'>)</span> </div><div class='output co'>#> 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. <em>Environments</em> 6(12) 124 </div><div class='output co'>#> <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'> <span class='co'># Fit the model quietly to the FOCUS example dataset D using defaults</span> <span class='va'>fit</span> <span class='op'><-</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='va'>SFO_SFO</span>, <span class='va'>FOCUS_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> -<span class='co'># Since mkin 0.9.50.3, we get a warning about non-normality of residuals,</span> -<span class='co'># so we try an alternative error model</span> +<span class='fu'><a href='plot.mkinfit.html'>plot_sep</a></span><span class='op'>(</span><span class='va'>fit</span><span class='op'>)</span> +</div><div class='img'><img src='mkinfit-1.png' alt='' width='700' height='433' /></div><div class='input'><span class='co'># As lower parent values appear to have lower variance, we try an alternative error model</span> <span class='va'>fit.tc</span> <span class='op'><-</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='va'>SFO_SFO</span>, <span class='va'>FOCUS_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, error_model <span class='op'>=</span> <span class='st'>"tc"</span><span class='op'>)</span> <span class='co'># This avoids the warning, and the likelihood ratio test confirms it is preferable</span> <span class='fu'><a href='https://rdrr.io/pkg/lmtest/man/lrtest.html'>lrtest</a></span><span class='op'>(</span><span class='va'>fit.tc</span>, <span class='va'>fit</span><span class='op'>)</span> @@ -536,8 +535,7 @@ Degradation Data. <em>Environments</em> 6(12) 124 #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1</div><div class='input'><span class='co'># We can also allow for different variances of parent and metabolite as error model</span> <span class='va'>fit.obs</span> <span class='op'><-</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='va'>SFO_SFO</span>, <span class='va'>FOCUS_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, error_model <span class='op'>=</span> <span class='st'>"obs"</span><span class='op'>)</span> -<span class='co'># This also avoids the warning about non-normality, but the two-component error model</span> -<span class='co'># has significantly higher likelihood</span> +<span class='co'># The two-component error model has significantly higher likelihood</span> <span class='fu'><a href='https://rdrr.io/pkg/lmtest/man/lrtest.html'>lrtest</a></span><span class='op'>(</span><span class='va'>fit.obs</span>, <span class='va'>fit.tc</span><span class='op'>)</span> </div><div class='output co'>#> Likelihood ratio test #> @@ -549,9 +547,9 @@ Degradation Data. <em>Environments</em> 6(12) 124 #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1</div><div class='input'><span class='fu'><a href='parms.html'>parms</a></span><span class='op'>(</span><span class='va'>fit.tc</span><span class='op'>)</span> </div><div class='output co'>#> 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 </div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span><span class='op'>(</span><span class='va'>fit.tc</span><span class='op'>)</span> +#> 7.928118e-02 </div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span><span class='op'>(</span><span class='va'>fit.tc</span><span class='op'>)</span> </div><div class='output co'>#> $ff #> parent_m1 parent_sink #> 0.5083933 0.4916067 @@ -559,7 +557,7 @@ Degradation Data. <em>Environments</em> 6(12) 124 #> $distimes #> DT50 DT90 #> parent 6.89313 22.89848 -#> m1 134.15635 445.65776 +#> m1 134.15634 445.65772 #> </div><div class='input'> <span class='co'># We can show a quick (only one replication) benchmark for this case, as we</span> <span class='co'># have several alternative solution methods for the model. We skip</span> @@ -576,9 +574,9 @@ Degradation Data. <em>Environments</em> 6(12) 124 solution_type <span class='op'>=</span> <span class='st'>"analytical"</span><span class='op'>)</span><span class='op'>)</span> <span class='op'>}</span> </div><div class='output co'>#> <span class='message'>Loading required package: rbenchmark</span></div><div class='output co'>#> test relative elapsed -#> 3 analytical 1.000 0.746 -#> 1 deSolve_compiled 2.288 1.707 -#> 2 eigen 2.708 2.020</div><div class='input'><span class='co'># }</span> +#> 3 analytical 1.000 0.532 +#> 1 deSolve_compiled 1.765 0.939 +#> 2 eigen 2.229 1.186</div><div class='input'><span class='co'># }</span> <span class='co'># Use stepwise fitting, using optimised parameters from parent only fit, FOMC-SFO</span> <span class='co'># \dontrun{</span> @@ -588,21 +586,22 @@ Degradation Data. <em>Environments</em> 6(12) 124 </div><div class='output co'>#> <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='va'>fit.FOMC_SFO</span> <span class='op'><-</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='va'>FOMC_SFO</span>, <span class='va'>FOCUS_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> <span class='co'># Again, we get a warning and try a more sophisticated error model</span> <span class='va'>fit.FOMC_SFO.tc</span> <span class='op'><-</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='va'>FOMC_SFO</span>, <span class='va'>FOCUS_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, error_model <span class='op'>=</span> <span class='st'>"tc"</span><span class='op'>)</span> -<span class='co'># This model has a higher likelihood, but not significantly so</span> +</div><div class='output co'>#> <span class='warning'>Warning: Optimisation did not converge:</span> +#> <span class='warning'>iteration limit reached without convergence (10)</span></div><div class='input'><span class='co'># This model has a higher likelihood, but not significantly so</span> <span class='fu'><a href='https://rdrr.io/pkg/lmtest/man/lrtest.html'>lrtest</a></span><span class='op'>(</span><span class='va'>fit.tc</span>, <span class='va'>fit.FOMC_SFO.tc</span><span class='op'>)</span> </div><div class='output co'>#> 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</div><div class='input'><span class='co'># Also, the missing standard error for log_beta and the t-tests for alpha</span> +#> 1 7 -64.870 +#> 2 6 -64.983 -1 0.2259 0.6346</div><div class='input'><span class='co'># Also, the missing standard error for log_beta and the t-tests for alpha</span> <span class='co'># and beta indicate overparameterisation</span> <span class='fu'><a href='https://rdrr.io/r/base/summary.html'>summary</a></span><span class='op'>(</span><span class='va'>fit.FOMC_SFO.tc</span>, data <span class='op'>=</span> <span class='cn'>FALSE</span><span class='op'>)</span> -</div><div class='output co'>#> <span class='warning'>Warning: NaNs produced</span></div><div class='output co'>#> <span class='warning'>Warning: NaNs produced</span></div><div class='output co'>#> <span class='warning'>Warning: diag(.) had 0 or NA entries; non-finite result is doubtful</span></div><div class='output co'>#> mkin version used for fitting: 0.9.50.4 +</div><div class='output co'>#> <span class='warning'>Warning: NaNs produced</span></div><div class='output co'>#> <span class='warning'>Warning: NaNs produced</span></div><div class='output co'>#> <span class='warning'>Warning: NaNs produced</span></div><div class='output co'>#> <span class='warning'>Warning: diag(.) had 0 or NA entries; non-finite result is doubtful</span></div><div class='output co'>#> 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. <em>Environments</em> 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. <em>Environments</em> 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</div><div class='input'> +#> DT50 DT90 DT50back +#> parent 6.81 22.7 6.833 +#> m1 136.74 454.2 NA</div><div class='input'> <span class='co'># We can easily use starting parameters from the parent only fit (only for illustration)</span> <span class='va'>fit.FOMC</span> <span class='op'>=</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='st'>"FOMC"</span>, <span class='va'>FOCUS_2006_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, error_model <span class='op'>=</span> <span class='st'>"tc"</span><span class='op'>)</span> <span class='va'>fit.FOMC_SFO</span> <span class='op'><-</span> <span class='fu'>mkinfit</span><span class='op'>(</span><span class='va'>FOMC_SFO</span>, <span class='va'>FOCUS_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, |