diff options
Diffstat (limited to 'docs/dev/reference/mkinfit.html')
-rw-r--r-- | docs/dev/reference/mkinfit.html | 679 |
1 files changed, 679 insertions, 0 deletions
diff --git a/docs/dev/reference/mkinfit.html b/docs/dev/reference/mkinfit.html new file mode 100644 index 00000000..1c84b9b2 --- /dev/null +++ b/docs/dev/reference/mkinfit.html @@ -0,0 +1,679 @@ +<!DOCTYPE html> +<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Fit a kinetic model to data with one or more state variables — mkinfit • mkin</title><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><meta property="og:title" content="Fit a kinetic model to data with one or more state variables — mkinfit"><meta name="description" content="This function maximises the likelihood of the observed data using the Port +algorithm stats::nlminb(), and the specified initial or fixed +parameters and starting values. In each step of the optimisation, the +kinetic model is solved using the function mkinpredict(), except +if an analytical solution is implemented, in which case the model is solved +using the degradation function in the mkinmod object. The +parameters of the selected error model are fitted simultaneously with the +degradation model parameters, as both of them are arguments of the +likelihood function."><meta property="og:description" content="This function maximises the likelihood of the observed data using the Port +algorithm stats::nlminb(), and the specified initial or fixed +parameters and starting values. In each step of the optimisation, the +kinetic model is solved using the function mkinpredict(), except +if an analytical solution is implemented, in which case the model is solved +using the degradation function in the mkinmod object. The +parameters of the selected error model are fitted simultaneously with the +degradation model parameters, as both of them are arguments of the +likelihood function."><meta name="robots" content="noindex"></head><body> + <a href="#main" class="visually-hidden-focusable">Skip to contents</a> + + + <nav class="navbar navbar-expand-lg fixed-top bg-light" data-bs-theme="default" aria-label="Site navigation"><div class="container"> + + <a class="navbar-brand me-2" href="../index.html">mkin</a> + + <small class="nav-text text-info me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="In-development version">1.2.10</small> + + + <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + + <div id="navbar" class="collapse navbar-collapse ms-3"> + <ul class="navbar-nav me-auto"><li class="active nav-item"><a class="nav-link" href="../reference/index.html">Reference</a></li> +<li class="nav-item dropdown"> + <button class="nav-link dropdown-toggle" type="button" id="dropdown-articles" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true">Articles</button> + <ul class="dropdown-menu" aria-labelledby="dropdown-articles"><li><a class="dropdown-item" href="../articles/mkin.html">Introduction to mkin</a></li> + <li><hr class="dropdown-divider"></li> + <li><h6 class="dropdown-header" data-toc-skip>Example evaluations with (generalised) nonlinear least squares</h6></li> + <li><a class="dropdown-item" href="../articles/FOCUS_D.html">Example evaluation of FOCUS Example Dataset D</a></li> + <li><a class="dropdown-item" href="../articles/FOCUS_L.html">Example evaluation of FOCUS Laboratory Data L1 to L3</a></li> + <li><a class="dropdown-item" href="../articles/web_only/FOCUS_Z.html">Example evaluation of FOCUS Example Dataset Z</a></li> + <li><hr class="dropdown-divider"></li> + <li><h6 class="dropdown-header" data-toc-skip>Example evaluations with hierarchical models (nonlinear mixed-effects models)</h6></li> + <li><a class="dropdown-item" href="../articles/prebuilt/2022_dmta_parent.html">Testing hierarchical parent degradation kinetics with residue data on dimethenamid and dimethenamid-P</a></li> + <li><a class="dropdown-item" href="../articles/prebuilt/2022_dmta_pathway.html">Testing hierarchical pathway kinetics with residue data on dimethenamid and dimethenamid-P</a></li> + <li><a class="dropdown-item" href="../articles/prebuilt/2023_mesotrione_parent.html">Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione</a></li> + <li><a class="dropdown-item" href="../articles/prebuilt/2022_cyan_pathway.html">Testing hierarchical pathway kinetics with residue data on cyantraniliprole</a></li> + <li><a class="dropdown-item" href="../articles/web_only/dimethenamid_2018.html">Comparison of saemix and nlme evaluations of dimethenamid data from 2018</a></li> + <li><a class="dropdown-item" href="../articles/web_only/multistart.html">Short demo of the multistart method</a></li> + <li><hr class="dropdown-divider"></li> + <li><h6 class="dropdown-header" data-toc-skip>Performance</h6></li> + <li><a class="dropdown-item" href="../articles/web_only/compiled_models.html">Performance benefit by using compiled model definitions in mkin</a></li> + <li><a class="dropdown-item" href="../articles/web_only/benchmarks.html">Benchmark timings for mkin</a></li> + <li><a class="dropdown-item" href="../articles/web_only/saem_benchmarks.html">Benchmark timings for saem.mmkin</a></li> + <li><hr class="dropdown-divider"></li> + <li><h6 class="dropdown-header" data-toc-skip>Miscellaneous</h6></li> + <li><a class="dropdown-item" href="../articles/twa.html">Calculation of time weighted average concentrations with mkin</a></li> + <li><a class="dropdown-item" href="../articles/web_only/NAFTA_examples.html">Example evaluation of NAFTA SOP Attachment examples</a></li> + </ul></li> +<li class="nav-item"><a class="nav-link" href="../coverage/coverage.html">Test coverage</a></li> +<li class="nav-item"><a class="nav-link" href="../news/index.html">News</a></li> + </ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search"> + <input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json"></form></li> +<li class="nav-item"><a class="external-link nav-link" href="https://github.com/jranke/mkin/" aria-label="GitHub"><span class="fa fab fa-github fa-lg"></span></a></li> + </ul></div> + + + </div> +</nav><div class="container template-reference-topic"> +<div class="row"> + <main id="main" class="col-md-9"><div class="page-header"> + + <h1>Fit a kinetic model to data with one or more state variables</h1> + <small class="dont-index">Source: <a href="https://github.com/jranke/mkin/blob/HEAD/R/mkinfit.R" class="external-link"><code>R/mkinfit.R</code></a></small> + <div class="d-none name"><code>mkinfit.Rd</code></div> + </div> + + <div class="ref-description section level2"> + <p>This function maximises the likelihood of the observed data using the Port +algorithm <code><a href="https://rdrr.io/r/stats/nlminb.html" class="external-link">stats::nlminb()</a></code>, and the specified initial or fixed +parameters and starting values. In each step of the optimisation, the +kinetic model is solved using the function <code><a href="mkinpredict.html">mkinpredict()</a></code>, except +if an analytical solution is implemented, in which case the model is solved +using the degradation function in the <a href="mkinmod.html">mkinmod</a> object. The +parameters of the selected error model are fitted simultaneously with the +degradation model parameters, as both of them are arguments of the +likelihood function.</p> + </div> + + <div class="section level2"> + <h2 id="ref-usage">Usage<a class="anchor" aria-label="anchor" href="#ref-usage"></a></h2> + <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">mkinfit</span><span class="op">(</span></span> +<span> <span class="va">mkinmod</span>,</span> +<span> <span class="va">observed</span>,</span> +<span> parms.ini <span class="op">=</span> <span class="st">"auto"</span>,</span> +<span> state.ini <span class="op">=</span> <span class="st">"auto"</span>,</span> +<span> err.ini <span class="op">=</span> <span class="st">"auto"</span>,</span> +<span> fixed_parms <span class="op">=</span> <span class="cn">NULL</span>,</span> +<span> fixed_initials <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/names.html" class="external-link">names</a></span><span class="op">(</span><span class="va">mkinmod</span><span class="op">$</span><span class="va">diffs</span><span class="op">)</span><span class="op">[</span><span class="op">-</span><span class="fl">1</span><span class="op">]</span>,</span> +<span> from_max_mean <span class="op">=</span> <span class="cn">FALSE</span>,</span> +<span> solution_type <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"auto"</span>, <span class="st">"analytical"</span>, <span class="st">"eigen"</span>, <span class="st">"deSolve"</span><span class="op">)</span>,</span> +<span> method.ode <span class="op">=</span> <span class="st">"lsoda"</span>,</span> +<span> use_compiled <span class="op">=</span> <span class="st">"auto"</span>,</span> +<span> control <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span>eval.max <span class="op">=</span> <span class="fl">300</span>, iter.max <span class="op">=</span> <span class="fl">200</span><span class="op">)</span>,</span> +<span> transform_rates <span class="op">=</span> <span class="cn">TRUE</span>,</span> +<span> transform_fractions <span class="op">=</span> <span class="cn">TRUE</span>,</span> +<span> quiet <span class="op">=</span> <span class="cn">FALSE</span>,</span> +<span> atol <span class="op">=</span> <span class="fl">1e-08</span>,</span> +<span> rtol <span class="op">=</span> <span class="fl">1e-10</span>,</span> +<span> error_model <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"const"</span>, <span class="st">"obs"</span>, <span class="st">"tc"</span><span class="op">)</span>,</span> +<span> error_model_algorithm <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"auto"</span>, <span class="st">"d_3"</span>, <span class="st">"direct"</span>, <span class="st">"twostep"</span>, <span class="st">"threestep"</span>, <span class="st">"fourstep"</span>,</span> +<span> <span class="st">"IRLS"</span>, <span class="st">"OLS"</span><span class="op">)</span>,</span> +<span> reweight.tol <span class="op">=</span> <span class="fl">1e-08</span>,</span> +<span> reweight.max.iter <span class="op">=</span> <span class="fl">10</span>,</span> +<span> trace_parms <span class="op">=</span> <span class="cn">FALSE</span>,</span> +<span> test_residuals <span class="op">=</span> <span class="cn">FALSE</span>,</span> +<span> <span class="va">...</span></span> +<span><span class="op">)</span></span></code></pre></div> + </div> + + <div class="section level2"> + <h2 id="arguments">Arguments<a class="anchor" aria-label="anchor" href="#arguments"></a></h2> + + +<dl><dt id="arg-mkinmod">mkinmod<a class="anchor" aria-label="anchor" href="#arg-mkinmod"></a></dt> +<dd><p>A list of class <a href="mkinmod.html">mkinmod</a>, containing the kinetic +model to be fitted to the data, or one of the shorthand names ("SFO", +"FOMC", "DFOP", "HS", "SFORB", "IORE"). If a shorthand name is given, a +parent only degradation model is generated for the variable with the +highest value in <code>observed</code>.</p></dd> + + +<dt id="arg-observed">observed<a class="anchor" aria-label="anchor" href="#arg-observed"></a></dt> +<dd><p>A dataframe or an object coercible to a dataframe +(e.g. a <code>tibble</code>) with the observed data. The first column called +"name" must contain the name of the observed variable for each data point. +The second column must contain the times of observation, named "time". +The third column must be named "value" and contain the observed values. +Zero values in the "value" column will be removed, with a warning, in +order to avoid problems with fitting the two-component error model. This +is not expected to be a problem, because in general, values of zero are +not observed in degradation data, because there is a lower limit of +detection.</p></dd> + + +<dt id="arg-parms-ini">parms.ini<a class="anchor" aria-label="anchor" href="#arg-parms-ini"></a></dt> +<dd><p>A named vector of initial values for the parameters, +including parameters to be optimised and potentially also fixed parameters +as indicated by <code>fixed_parms</code>. If set to "auto", initial values for +rate constants are set to default values. Using parameter names that are +not in the model gives an error.</p> +<p>It is possible to only specify a subset of the parameters that the model +needs. You can use the parameter lists "bparms.ode" from a previously +fitted model, which contains the differential equation parameters from +this model. This works nicely if the models are nested. An example is +given below.</p></dd> + + +<dt id="arg-state-ini">state.ini<a class="anchor" aria-label="anchor" href="#arg-state-ini"></a></dt> +<dd><p>A named vector of initial values for the state variables of +the model. In case the observed variables are represented by more than one +model variable, the names will differ from the names of the observed +variables (see <code>map</code> component of <a href="mkinmod.html">mkinmod</a>). The default +is to set the initial value of the first model variable to the mean of the +time zero values for the variable with the maximum observed value, and all +others to 0. If this variable has no time zero observations, its initial +value is set to 100.</p></dd> + + +<dt id="arg-err-ini">err.ini<a class="anchor" aria-label="anchor" href="#arg-err-ini"></a></dt> +<dd><p>A named vector of initial values for the error model +parameters to be optimised. If set to "auto", initial values are set to +default values. Otherwise, inital values for all error model parameters +must be given.</p></dd> + + +<dt id="arg-fixed-parms">fixed_parms<a class="anchor" aria-label="anchor" href="#arg-fixed-parms"></a></dt> +<dd><p>The names of parameters that should not be optimised but +rather kept at the values specified in <code>parms.ini</code>. Alternatively, +a named numeric vector of parameters to be fixed, regardless of the values +in parms.ini.</p></dd> + + +<dt id="arg-fixed-initials">fixed_initials<a class="anchor" aria-label="anchor" href="#arg-fixed-initials"></a></dt> +<dd><p>The names of model variables for which the initial +state at time 0 should be excluded from the optimisation. Defaults to all +state variables except for the first one.</p></dd> + + +<dt id="arg-from-max-mean">from_max_mean<a class="anchor" aria-label="anchor" href="#arg-from-max-mean"></a></dt> +<dd><p>If this is set to TRUE, and the model has only one +observed variable, then data before the time of the maximum observed value +(after averaging for each sampling time) are discarded, and this time is +subtracted from all remaining time values, so the time of the maximum +observed mean value is the new time zero.</p></dd> + + +<dt id="arg-solution-type">solution_type<a class="anchor" aria-label="anchor" href="#arg-solution-type"></a></dt> +<dd><p>If set to "eigen", the solution of the system of +differential equations is based on the spectral decomposition of the +coefficient matrix in cases that this is possible. If set to "deSolve", a +numerical <a href="https://rdrr.io/pkg/deSolve/man/ode.html" class="external-link">ode solver from package deSolve</a> is used. If +set to "analytical", an analytical solution of the model is used. This is +only implemented for relatively simple degradation models. The default is +"auto", which uses "analytical" if possible, otherwise "deSolve" if a +compiler is present, and "eigen" if no compiler is present and the model +can be expressed using eigenvalues and eigenvectors.</p></dd> + + +<dt id="arg-method-ode">method.ode<a class="anchor" aria-label="anchor" href="#arg-method-ode"></a></dt> +<dd><p>The solution method passed via <code><a href="mkinpredict.html">mkinpredict()</a></code> +to <code><a href="https://rdrr.io/pkg/deSolve/man/ode.html" class="external-link">deSolve::ode()</a></code> in case the solution type is "deSolve". The default +"lsoda" is performant, but sometimes fails to converge.</p></dd> + + +<dt id="arg-use-compiled">use_compiled<a class="anchor" aria-label="anchor" href="#arg-use-compiled"></a></dt> +<dd><p>If set to <code>FALSE</code>, no compiled version of the +<a href="mkinmod.html">mkinmod</a> model is used in the calls to <code><a href="mkinpredict.html">mkinpredict()</a></code> even if a compiled +version is present.</p></dd> + + +<dt id="arg-control">control<a class="anchor" aria-label="anchor" href="#arg-control"></a></dt> +<dd><p>A list of control arguments passed to <code><a href="https://rdrr.io/r/stats/nlminb.html" class="external-link">stats::nlminb()</a></code>.</p></dd> + + +<dt id="arg-transform-rates">transform_rates<a class="anchor" aria-label="anchor" href="#arg-transform-rates"></a></dt> +<dd><p>Boolean specifying if kinetic rate constants should +be transformed in the model specification used in the fitting for better +compliance with the assumption of normal distribution of the estimator. If +TRUE, also alpha and beta parameters of the FOMC model are +log-transformed, as well as k1 and k2 rate constants for the DFOP and HS +models and the break point tb of the HS model. If FALSE, zero is used as +a lower bound for the rates in the optimisation.</p></dd> + + +<dt id="arg-transform-fractions">transform_fractions<a class="anchor" aria-label="anchor" href="#arg-transform-fractions"></a></dt> +<dd><p>Boolean specifying if formation fractions +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></dd> + + +<dt id="arg-quiet">quiet<a class="anchor" aria-label="anchor" href="#arg-quiet"></a></dt> +<dd><p>Suppress printing out the current value of the negative +log-likelihood after each improvement?</p></dd> + + +<dt id="arg-atol">atol<a class="anchor" aria-label="anchor" href="#arg-atol"></a></dt> +<dd><p>Absolute error tolerance, passed to <code><a href="https://rdrr.io/pkg/deSolve/man/ode.html" class="external-link">deSolve::ode()</a></code>. Default +is 1e-8, which is lower than the default in the <code><a href="https://rdrr.io/pkg/deSolve/man/lsoda.html" class="external-link">deSolve::lsoda()</a></code> +function which is used per default.</p></dd> + + +<dt id="arg-rtol">rtol<a class="anchor" aria-label="anchor" href="#arg-rtol"></a></dt> +<dd><p>Absolute error tolerance, passed to <code><a href="https://rdrr.io/pkg/deSolve/man/ode.html" class="external-link">deSolve::ode()</a></code>. Default +is 1e-10, much lower than in <code><a href="https://rdrr.io/pkg/deSolve/man/lsoda.html" class="external-link">deSolve::lsoda()</a></code>.</p></dd> + + +<dt id="arg-error-model">error_model<a class="anchor" aria-label="anchor" href="#arg-error-model"></a></dt> +<dd><p>If the error model is "const", a constant standard +deviation is assumed.</p> +<p>If the error model is "obs", each observed variable is assumed to have its +own variance.</p> +<p>If the error model is "tc" (two-component error model), a two component +error model similar to the one described by Rocke and Lorenzato (1995) is +used for setting up the likelihood function. Note that this model +deviates from the model by Rocke and Lorenzato, as their model implies +that the errors follow a lognormal distribution for large values, not a +normal distribution as assumed by this method.</p></dd> + + +<dt id="arg-error-model-algorithm">error_model_algorithm<a class="anchor" aria-label="anchor" href="#arg-error-model-algorithm"></a></dt> +<dd><p>If "auto", the selected algorithm depends on +the error model. If the error model is "const", unweighted nonlinear +least squares fitting ("OLS") is selected. If the error model is "obs", or +"tc", the "d_3" algorithm is selected.</p> +<p>The 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.</p> +<p>The algorithm "direct" will directly minimize the negative log-likelihood.</p> +<p>The algorithm "twostep" will minimize the negative log-likelihood after an +initial unweighted least squares optimisation step.</p> +<p>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.</p> +<p>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.</p> +<p>The algorithm "IRLS" (Iteratively Reweighted Least Squares) 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.</p></dd> + + +<dt id="arg-reweight-tol">reweight.tol<a class="anchor" aria-label="anchor" href="#arg-reweight-tol"></a></dt> +<dd><p>Tolerance for the convergence criterion calculated from +the error model parameters in IRLS fits.</p></dd> + + +<dt id="arg-reweight-max-iter">reweight.max.iter<a class="anchor" aria-label="anchor" href="#arg-reweight-max-iter"></a></dt> +<dd><p>Maximum number of iterations in IRLS fits.</p></dd> + + +<dt id="arg-trace-parms">trace_parms<a class="anchor" aria-label="anchor" href="#arg-trace-parms"></a></dt> +<dd><p>Should a trace of the parameter values be listed?</p></dd> + + +<dt id="arg-test-residuals">test_residuals<a class="anchor" aria-label="anchor" href="#arg-test-residuals"></a></dt> +<dd><p>Should the residuals be tested for normal distribution?</p></dd> + + +<dt id="arg--">...<a class="anchor" aria-label="anchor" href="#arg--"></a></dt> +<dd><p>Further arguments that will be passed on to +<code><a href="https://rdrr.io/pkg/deSolve/man/ode.html" class="external-link">deSolve::ode()</a></code>.</p></dd> + +</dl></div> + <div class="section level2"> + <h2 id="value">Value<a class="anchor" aria-label="anchor" href="#value"></a></h2> + <p>A list with "mkinfit" in the class attribute.</p> + </div> + <div class="section level2"> + <h2 id="details">Details<a class="anchor" aria-label="anchor" href="#details"></a></h2> + <p>Per default, parameters in the kinetic models are internally transformed in +order to better satisfy the assumption of a normal distribution of their +estimators.</p> + </div> + <div class="section level2"> + <h2 id="note">Note<a class="anchor" aria-label="anchor" href="#note"></a></h2> + <p>When using the "IORE" submodel for metabolites, fitting with +"transform_rates = TRUE" (the default) often leads to failures of the +numerical ODE solver. In this situation it may help to switch off the +internal rate transformation.</p> + </div> + <div class="section level2"> + <h2 id="references">References<a class="anchor" aria-label="anchor" href="#references"></a></h2> + <p>Rocke DM and Lorenzato S (1995) A two-component model +for measurement error in analytical chemistry. <em>Technometrics</em> 37(2), 176-184.</p> +<p>Ranke J and Meinecke S (2019) Error Models for the Kinetic Evaluation of Chemical +Degradation Data. <em>Environments</em> 6(12) 124 +<a href="https://doi.org/10.3390/environments6120124" class="external-link">doi:10.3390/environments6120124</a> +.</p> + </div> + <div class="section level2"> + <h2 id="see-also">See also<a class="anchor" aria-label="anchor" href="#see-also"></a></h2> + <div class="dont-index"><p><a href="summary.mkinfit.html">summary.mkinfit</a>, <a href="plot.mkinfit.html">plot.mkinfit</a>, <a href="parms.html">parms</a> and <a href="https://rdrr.io/pkg/lmtest/man/lrtest.html" class="external-link">lrtest</a>.</p> +<p>Comparisons of models fitted to the same data can be made using +<code><a href="https://rdrr.io/r/stats/AIC.html" class="external-link">AIC</a></code> by virtue of the method <code><a href="logLik.mkinfit.html">logLik.mkinfit</a></code>.</p> +<p>Fitting of several models to several datasets in a single call to +<code><a href="mmkin.html">mmkin</a></code>.</p></div> + </div> + <div class="section level2"> + <h2 id="author">Author<a class="anchor" aria-label="anchor" href="#author"></a></h2> + <p>Johannes Ranke</p> + </div> + + <div class="section level2"> + <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2> + <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span></span></span> +<span class="r-in"><span><span class="co"># Use shorthand notation for parent only degradation</span></span></span> +<span class="r-in"><span><span class="va">fit</span> <span class="op"><-</span> <span class="fu">mkinfit</span><span class="op">(</span><span class="st">"FOMC"</span>, <span class="va">FOCUS_2006_C</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></span> +<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">fit</span><span class="op">)</span></span></span> +<span class="r-out co"><span class="r-pr">#></span> mkin version used for fitting: 1.2.10 </span> +<span class="r-out co"><span class="r-pr">#></span> R version used for fitting: 4.4.2 </span> +<span class="r-out co"><span class="r-pr">#></span> Date of fit: Fri Feb 14 07:30:02 2025 </span> +<span class="r-out co"><span class="r-pr">#></span> Date of summary: Fri Feb 14 07:30:02 2025 </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Equations:</span> +<span class="r-out co"><span class="r-pr">#></span> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Model predictions using solution type analytical </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Fitted using 222 model solutions performed in 0.014 s</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Error model: Constant variance </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Error model algorithm: OLS </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Starting values for parameters to be optimised:</span> +<span class="r-out co"><span class="r-pr">#></span> value type</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 85.1 state</span> +<span class="r-out co"><span class="r-pr">#></span> alpha 1.0 deparm</span> +<span class="r-out co"><span class="r-pr">#></span> beta 10.0 deparm</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Starting values for the transformed parameters actually optimised:</span> +<span class="r-out co"><span class="r-pr">#></span> value lower upper</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 85.100000 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha 0.000000 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta 2.302585 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Fixed parameter values:</span> +<span class="r-out co"><span class="r-pr">#></span> None</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Results:</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> AIC BIC logLik</span> +<span class="r-out co"><span class="r-pr">#></span> 44.68652 45.47542 -18.34326</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Optimised, transformed parameters with symmetric confidence intervals:</span> +<span class="r-out co"><span class="r-pr">#></span> Estimate Std. Error Lower Upper</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 85.87000 1.8070 81.23000 90.5200</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha 0.05192 0.1353 -0.29580 0.3996</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta 0.65100 0.2287 0.06315 1.2390</span> +<span class="r-out co"><span class="r-pr">#></span> sigma 1.85700 0.4378 0.73200 2.9830</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Parameter correlation:</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 log_alpha log_beta sigma</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 1.000e+00 -1.565e-01 -3.142e-01 4.681e-08</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha -1.565e-01 1.000e+00 9.564e-01 1.013e-07</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta -3.142e-01 9.564e-01 1.000e+00 8.637e-08</span> +<span class="r-out co"><span class="r-pr">#></span> sigma 4.681e-08 1.013e-07 8.637e-08 1.000e+00</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Backtransformed parameters:</span> +<span class="r-out co"><span class="r-pr">#></span> Confidence intervals for internally transformed parameters are asymmetric.</span> +<span class="r-out co"><span class="r-pr">#></span> t-test (unrealistically) based on the assumption of normal distribution</span> +<span class="r-out co"><span class="r-pr">#></span> for estimators of untransformed parameters.</span> +<span class="r-out co"><span class="r-pr">#></span> Estimate t value Pr(>t) Lower Upper</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 85.870 47.530 3.893e-08 81.2300 90.520</span> +<span class="r-out co"><span class="r-pr">#></span> alpha 1.053 7.393 3.562e-04 0.7439 1.491</span> +<span class="r-out co"><span class="r-pr">#></span> beta 1.917 4.373 3.601e-03 1.0650 3.451</span> +<span class="r-out co"><span class="r-pr">#></span> sigma 1.857 4.243 4.074e-03 0.7320 2.983</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> FOCUS Chi2 error levels in percent:</span> +<span class="r-out co"><span class="r-pr">#></span> err.min n.optim df</span> +<span class="r-out co"><span class="r-pr">#></span> All data 6.657 3 6</span> +<span class="r-out co"><span class="r-pr">#></span> parent 6.657 3 6</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Estimated disappearance times:</span> +<span class="r-out co"><span class="r-pr">#></span> DT50 DT90 DT50back</span> +<span class="r-out co"><span class="r-pr">#></span> parent 1.785 15.15 4.56</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Data:</span> +<span class="r-out co"><span class="r-pr">#></span> time variable observed predicted residual</span> +<span class="r-out co"><span class="r-pr">#></span> 0 parent 85.1 85.875 -0.7749</span> +<span class="r-out co"><span class="r-pr">#></span> 1 parent 57.9 55.191 2.7091</span> +<span class="r-out co"><span class="r-pr">#></span> 3 parent 29.9 31.845 -1.9452</span> +<span class="r-out co"><span class="r-pr">#></span> 7 parent 14.6 17.012 -2.4124</span> +<span class="r-out co"><span class="r-pr">#></span> 14 parent 9.7 9.241 0.4590</span> +<span class="r-out co"><span class="r-pr">#></span> 28 parent 6.6 4.754 1.8460</span> +<span class="r-out co"><span class="r-pr">#></span> 63 parent 4.0 2.102 1.8977</span> +<span class="r-out co"><span class="r-pr">#></span> 91 parent 3.9 1.441 2.4590</span> +<span class="r-out co"><span class="r-pr">#></span> 119 parent 0.6 1.092 -0.4919</span> +<span class="r-in"><span></span></span> +<span class="r-in"><span><span class="co"># One parent compound, one metabolite, both single first order.</span></span></span> +<span class="r-in"><span><span class="co"># We remove zero values from FOCUS dataset D in order to avoid warnings</span></span></span> +<span class="r-in"><span><span class="va">FOCUS_D</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/subset.html" class="external-link">subset</a></span><span class="op">(</span><span class="va">FOCUS_2006_D</span>, <span class="va">value</span> <span class="op">!=</span> <span class="fl">0</span><span class="op">)</span></span></span> +<span class="r-in"><span><span class="co"># Use mkinsub for convenience in model formulation. Pathway to sink included per default.</span></span></span> +<span class="r-in"><span><span class="va">SFO_SFO</span> <span class="op"><-</span> <span class="fu"><a href="mkinmod.html">mkinmod</a></span><span class="op">(</span></span></span> +<span class="r-in"><span> parent <span class="op">=</span> <span class="fu"><a href="mkinmod.html">mkinsub</a></span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"m1"</span><span class="op">)</span>,</span></span> +<span class="r-in"><span> m1 <span class="op">=</span> <span class="fu"><a href="mkinmod.html">mkinsub</a></span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span><span class="op">)</span></span></span> +<span class="r-msg co"><span class="r-pr">#></span> Temporary DLL for differentials generated and loaded</span> +<span class="r-in"><span></span></span> +<span class="r-in"><span><span class="co"># Fit the model quietly to the FOCUS example dataset D using defaults</span></span></span> +<span class="r-in"><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></span> +<span class="r-in"><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></span></span> +<span class="r-plt img"><img src="mkinfit-1.png" alt="" width="700" height="433"></span> +<span class="r-in"><span><span class="co"># As lower parent values appear to have lower variance, we try an alternative error model</span></span></span> +<span class="r-in"><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></span> +<span class="r-in"><span><span class="co"># This avoids the warning, and the likelihood ratio test confirms it is preferable</span></span></span> +<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/pkg/lmtest/man/lrtest.html" class="external-link">lrtest</a></span><span class="op">(</span><span class="va">fit.tc</span>, <span class="va">fit</span><span class="op">)</span></span></span> +<span class="r-out co"><span class="r-pr">#></span> Likelihood ratio test</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Model 1: SFO_SFO with error model tc and fixed parameter(s) m1_0</span> +<span class="r-out co"><span class="r-pr">#></span> Model 2: SFO_SFO with error model const and fixed parameter(s) m1_0</span> +<span class="r-out co"><span class="r-pr">#></span> #Df LogLik Df Chisq Pr(>Chisq) </span> +<span class="r-out co"><span class="r-pr">#></span> 1 6 -64.983 </span> +<span class="r-out co"><span class="r-pr">#></span> 2 5 -97.224 -1 64.483 9.737e-16 ***</span> +<span class="r-out co"><span class="r-pr">#></span> ---</span> +<span class="r-out co"><span class="r-pr">#></span> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1</span> +<span class="r-in"><span><span class="co"># We can also allow for different variances of parent and metabolite as error model</span></span></span> +<span class="r-in"><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></span> +<span class="r-in"><span><span class="co"># The two-component error model has significantly higher likelihood</span></span></span> +<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/pkg/lmtest/man/lrtest.html" class="external-link">lrtest</a></span><span class="op">(</span><span class="va">fit.obs</span>, <span class="va">fit.tc</span><span class="op">)</span></span></span> +<span class="r-out co"><span class="r-pr">#></span> Likelihood ratio test</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Model 1: SFO_SFO with error model tc and fixed parameter(s) m1_0</span> +<span class="r-out co"><span class="r-pr">#></span> Model 2: SFO_SFO with error model obs and fixed parameter(s) m1_0</span> +<span class="r-out co"><span class="r-pr">#></span> #Df LogLik Df Chisq Pr(>Chisq) </span> +<span class="r-out co"><span class="r-pr">#></span> 1 6 -64.983 </span> +<span class="r-out co"><span class="r-pr">#></span> 2 6 -96.936 0 63.907 < 2.2e-16 ***</span> +<span class="r-out co"><span class="r-pr">#></span> ---</span> +<span class="r-out co"><span class="r-pr">#></span> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1</span> +<span class="r-in"><span><span class="fu"><a href="parms.html">parms</a></span><span class="op">(</span><span class="va">fit.tc</span><span class="op">)</span></span></span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 k_parent k_m1 f_parent_to_m1 sigma_low </span> +<span class="r-out co"><span class="r-pr">#></span> 1.007343e+02 1.005562e-01 5.166712e-03 5.083933e-01 3.049883e-03 </span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high </span> +<span class="r-out co"><span class="r-pr">#></span> 7.928118e-02 </span> +<span class="r-in"><span><span class="fu"><a href="endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">fit.tc</span><span class="op">)</span></span></span> +<span class="r-out co"><span class="r-pr">#></span> $ff</span> +<span class="r-out co"><span class="r-pr">#></span> parent_m1 parent_sink </span> +<span class="r-out co"><span class="r-pr">#></span> 0.5083933 0.4916067 </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> $distimes</span> +<span class="r-out co"><span class="r-pr">#></span> DT50 DT90</span> +<span class="r-out co"><span class="r-pr">#></span> parent 6.89313 22.89848</span> +<span class="r-out co"><span class="r-pr">#></span> m1 134.15634 445.65771</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-in"><span></span></span> +<span class="r-in"><span><span class="co"># We can show a quick (only one replication) benchmark for this case, as we</span></span></span> +<span class="r-in"><span><span class="co"># have several alternative solution methods for the model. We skip</span></span></span> +<span class="r-in"><span><span class="co"># uncompiled deSolve, as it is so slow. More benchmarks are found in the</span></span></span> +<span class="r-in"><span><span class="co"># benchmark vignette</span></span></span> +<span class="r-in"><span><span class="co"># \dontrun{</span></span></span> +<span class="r-in"><span><span class="kw">if</span><span class="op">(</span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">require</a></span><span class="op">(</span><span class="va"><a href="http://rbenchmark.googlecode.com" class="external-link">rbenchmark</a></span><span class="op">)</span><span class="op">)</span> <span class="op">{</span></span></span> +<span class="r-in"><span> <span class="fu"><a href="https://rdrr.io/pkg/rbenchmark/man/benchmark.html" class="external-link">benchmark</a></span><span class="op">(</span>replications <span class="op">=</span> <span class="fl">1</span>, order <span class="op">=</span> <span class="st">"relative"</span>, columns <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"test"</span>, <span class="st">"relative"</span>, <span class="st">"elapsed"</span><span class="op">)</span>,</span></span> +<span class="r-in"><span> deSolve_compiled <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></span> +<span class="r-in"><span> solution_type <span class="op">=</span> <span class="st">"deSolve"</span>, use_compiled <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span>,</span></span> +<span class="r-in"><span> eigen <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></span> +<span class="r-in"><span> solution_type <span class="op">=</span> <span class="st">"eigen"</span><span class="op">)</span>,</span></span> +<span class="r-in"><span> analytical <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></span> +<span class="r-in"><span> solution_type <span class="op">=</span> <span class="st">"analytical"</span><span class="op">)</span><span class="op">)</span></span></span> +<span class="r-in"><span><span class="op">}</span></span></span> +<span class="r-out co"><span class="r-pr">#></span> test relative elapsed</span> +<span class="r-out co"><span class="r-pr">#></span> 3 analytical 1.000 0.242</span> +<span class="r-out co"><span class="r-pr">#></span> 2 eigen 1.913 0.463</span> +<span class="r-out co"><span class="r-pr">#></span> 1 deSolve_compiled 1.917 0.464</span> +<span class="r-in"><span><span class="co"># }</span></span></span> +<span class="r-in"><span></span></span> +<span class="r-in"><span><span class="co"># Use stepwise fitting, using optimised parameters from parent only fit, FOMC-SFO</span></span></span> +<span class="r-in"><span><span class="co"># \dontrun{</span></span></span> +<span class="r-in"><span><span class="va">FOMC_SFO</span> <span class="op"><-</span> <span class="fu"><a href="mkinmod.html">mkinmod</a></span><span class="op">(</span></span></span> +<span class="r-in"><span> parent <span class="op">=</span> <span class="fu"><a href="mkinmod.html">mkinsub</a></span><span class="op">(</span><span class="st">"FOMC"</span>, <span class="st">"m1"</span><span class="op">)</span>,</span></span> +<span class="r-in"><span> m1 <span class="op">=</span> <span class="fu"><a href="mkinmod.html">mkinsub</a></span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span><span class="op">)</span></span></span> +<span class="r-msg co"><span class="r-pr">#></span> Temporary DLL for differentials generated and loaded</span> +<span class="r-in"><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><span class="op">)</span></span></span> +<span class="r-in"><span><span class="co"># Again, we get a warning and try a more sophisticated error model</span></span></span> +<span class="r-in"><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></span> +<span class="r-in"><span><span class="co"># This model has a higher likelihood, but not significantly so</span></span></span> +<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/pkg/lmtest/man/lrtest.html" class="external-link">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></span></span> +<span class="r-out co"><span class="r-pr">#></span> Likelihood ratio test</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Model 1: FOMC_SFO with error model tc and fixed parameter(s) m1_0</span> +<span class="r-out co"><span class="r-pr">#></span> Model 2: SFO_SFO with error model tc and fixed parameter(s) m1_0</span> +<span class="r-out co"><span class="r-pr">#></span> #Df LogLik Df Chisq Pr(>Chisq)</span> +<span class="r-out co"><span class="r-pr">#></span> 1 7 -64.829 </span> +<span class="r-out co"><span class="r-pr">#></span> 2 6 -64.983 -1 0.3075 0.5792</span> +<span class="r-in"><span><span class="co"># Also, the missing standard error for log_beta and the t-tests for alpha</span></span></span> +<span class="r-in"><span><span class="co"># and beta indicate overparameterisation</span></span></span> +<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">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></span></span> +<span class="r-wrn co"><span class="r-pr">#></span> <span class="warning">Warning: </span>NaNs produced</span> +<span class="r-wrn co"><span class="r-pr">#></span> <span class="warning">Warning: </span>diag(V) had non-positive or NA entries; the non-finite result may be dubious</span> +<span class="r-out co"><span class="r-pr">#></span> mkin version used for fitting: 1.2.10 </span> +<span class="r-out co"><span class="r-pr">#></span> R version used for fitting: 4.4.2 </span> +<span class="r-out co"><span class="r-pr">#></span> Date of fit: Fri Feb 14 07:30:07 2025 </span> +<span class="r-out co"><span class="r-pr">#></span> Date of summary: Fri Feb 14 07:30:07 2025 </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Equations:</span> +<span class="r-out co"><span class="r-pr">#></span> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent</span> +<span class="r-out co"><span class="r-pr">#></span> d_m1/dt = + f_parent_to_m1 * (alpha/beta) * 1/((time/beta) + 1) *</span> +<span class="r-out co"><span class="r-pr">#></span> parent - k_m1 * m1</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Model predictions using solution type deSolve </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Fitted using 4062 model solutions performed in 0.77 s</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Error model: Two-component variance function </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Error model algorithm: d_3 </span> +<span class="r-out co"><span class="r-pr">#></span> Direct fitting and three-step fitting yield approximately the same likelihood </span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Starting values for parameters to be optimised:</span> +<span class="r-out co"><span class="r-pr">#></span> value type</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 100.75 state</span> +<span class="r-out co"><span class="r-pr">#></span> alpha 1.00 deparm</span> +<span class="r-out co"><span class="r-pr">#></span> beta 10.00 deparm</span> +<span class="r-out co"><span class="r-pr">#></span> k_m1 0.10 deparm</span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_to_m1 0.50 deparm</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low 0.10 error</span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high 0.10 error</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Starting values for the transformed parameters actually optimised:</span> +<span class="r-out co"><span class="r-pr">#></span> value lower upper</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 100.750000 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> log_k_m1 -2.302585 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_qlogis 0.000000 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha 0.000000 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta 2.302585 -Inf Inf</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low 0.100000 0 Inf</span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high 0.100000 0 Inf</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Fixed parameter values:</span> +<span class="r-out co"><span class="r-pr">#></span> value type</span> +<span class="r-out co"><span class="r-pr">#></span> m1_0 0 state</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Results:</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> AIC BIC logLik</span> +<span class="r-out co"><span class="r-pr">#></span> 143.658 155.1211 -64.82902</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Optimised, transformed parameters with symmetric confidence intervals:</span> +<span class="r-out co"><span class="r-pr">#></span> Estimate Std. Error Lower Upper</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 101.600000 2.6400000 96.240000 107.000000</span> +<span class="r-out co"><span class="r-pr">#></span> log_k_m1 -5.284000 0.0929100 -5.474000 -5.095000</span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_qlogis 0.001426 0.0766900 -0.155000 0.157800</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha 5.522000 0.0077320 5.506000 5.538000</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta 7.806000 NaN NaN NaN</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low 0.002488 0.0002431 0.001992 0.002984</span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high 0.079210 0.0093280 0.060180 0.098230</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Parameter correlation:</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 log_k_m1 f_parent_qlogis log_alpha log_beta</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 1.000000 -0.095161 -0.76675 0.70542 NaN</span> +<span class="r-out co"><span class="r-pr">#></span> log_k_m1 -0.095161 1.000000 0.51429 -0.14382 NaN</span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_qlogis -0.766750 0.514286 1.00000 -0.61393 NaN</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha 0.705417 -0.143821 -0.61393 1.00000 NaN</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta NaN NaN NaN NaN 1</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low 0.016086 0.001583 0.01547 5.87036 NaN</span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high 0.006618 -0.011695 -0.05356 0.04848 NaN</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low rsd_high</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 0.016086 0.006618</span> +<span class="r-out co"><span class="r-pr">#></span> log_k_m1 0.001583 -0.011695</span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_qlogis 0.015466 -0.053560</span> +<span class="r-out co"><span class="r-pr">#></span> log_alpha 5.870361 0.048483</span> +<span class="r-out co"><span class="r-pr">#></span> log_beta NaN NaN</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low 1.000000 -0.652545</span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high -0.652545 1.000000</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Backtransformed parameters:</span> +<span class="r-out co"><span class="r-pr">#></span> Confidence intervals for internally transformed parameters are asymmetric.</span> +<span class="r-out co"><span class="r-pr">#></span> t-test (unrealistically) based on the assumption of normal distribution</span> +<span class="r-out co"><span class="r-pr">#></span> for estimators of untransformed parameters.</span> +<span class="r-out co"><span class="r-pr">#></span> Estimate t value Pr(>t) Lower Upper</span> +<span class="r-out co"><span class="r-pr">#></span> parent_0 1.016e+02 32.7800 6.310e-26 9.624e+01 1.070e+02</span> +<span class="r-out co"><span class="r-pr">#></span> k_m1 5.072e-03 10.1200 1.216e-11 4.196e-03 6.130e-03</span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_to_m1 5.004e-01 20.8300 4.316e-20 4.613e-01 5.394e-01</span> +<span class="r-out co"><span class="r-pr">#></span> alpha 2.502e+02 0.5624 2.889e-01 2.463e+02 2.542e+02</span> +<span class="r-out co"><span class="r-pr">#></span> beta 2.455e+03 0.5549 2.915e-01 NA NA</span> +<span class="r-out co"><span class="r-pr">#></span> sigma_low 2.488e-03 0.4843 3.158e-01 1.992e-03 2.984e-03</span> +<span class="r-out co"><span class="r-pr">#></span> rsd_high 7.921e-02 8.4300 8.001e-10 6.018e-02 9.823e-02</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> FOCUS Chi2 error levels in percent:</span> +<span class="r-out co"><span class="r-pr">#></span> err.min n.optim df</span> +<span class="r-out co"><span class="r-pr">#></span> All data 6.781 5 14</span> +<span class="r-out co"><span class="r-pr">#></span> parent 7.141 3 6</span> +<span class="r-out co"><span class="r-pr">#></span> m1 4.640 2 8</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Resulting formation fractions:</span> +<span class="r-out co"><span class="r-pr">#></span> ff</span> +<span class="r-out co"><span class="r-pr">#></span> parent_m1 0.5004</span> +<span class="r-out co"><span class="r-pr">#></span> parent_sink 0.4996</span> +<span class="r-out co"><span class="r-pr">#></span> </span> +<span class="r-out co"><span class="r-pr">#></span> Estimated disappearance times:</span> +<span class="r-out co"><span class="r-pr">#></span> DT50 DT90 DT50back</span> +<span class="r-out co"><span class="r-pr">#></span> parent 6.812 22.7 6.834</span> +<span class="r-out co"><span class="r-pr">#></span> m1 136.661 454.0 NA</span> +<span class="r-in"><span></span></span> +<span class="r-in"><span><span class="co"># We can easily use starting parameters from the parent only fit (only for illustration)</span></span></span> +<span class="r-in"><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></span> +<span class="r-in"><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>,</span></span> +<span class="r-in"><span> parms.ini <span class="op">=</span> <span class="va">fit.FOMC</span><span class="op">$</span><span class="va">bparms.ode</span>, error_model <span class="op">=</span> <span class="st">"tc"</span><span class="op">)</span></span></span> +<span class="r-in"><span><span class="co"># }</span></span></span> +</code></pre></div> + </div> + </main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2> + </nav></aside></div> + + + <footer><div class="pkgdown-footer-left"> + <p>Developed by Johannes Ranke.</p> +</div> + +<div class="pkgdown-footer-right"> + <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.1.1.</p> +</div> + + </footer></div> + + + + + + </body></html> + |