From 329dadc5fd557cbeec0d1f3a6db57b6b4d6f41d4 Mon Sep 17 00:00:00 2001 From: jranke Date: Sat, 16 Feb 2013 21:15:52 +0000 Subject: - Some maintenance fixes - Start of the examples vignette git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/kinfit/pkg/mkin@61 edb9625f-4e0d-4859-8d74-9fd3b1da38cb --- vignettes/examples.Rnw | 289 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 vignettes/examples.Rnw (limited to 'vignettes/examples.Rnw') diff --git a/vignettes/examples.Rnw b/vignettes/examples.Rnw new file mode 100644 index 0000000..24e1b57 --- /dev/null +++ b/vignettes/examples.Rnw @@ -0,0 +1,289 @@ +% $Id: examples.Rnw 66 2010-09-03 08:50:26Z jranke $ +%%\VignetteIndexEntry{Examples for kinetic evaluations using mkin} +%%VignetteDepends{FME} +%%\usepackage{Sweave} +\documentclass[12pt,a4paper]{article} +\usepackage{a4wide} +%%\usepackage[lists,heads]{endfloat} +\input{header} +\hypersetup{ + pdftitle = {Examples for kinetic evaluations using mkin}, + pdfsubject = {Manuscript}, + pdfauthor = {Johannes Ranke}, + colorlinks = {true}, + linkcolor = {blue}, + citecolor = {blue}, + urlcolor = {red}, + hyperindex = {true}, + linktocpage = {true}, +} +\SweaveOpts{engine=R, eps=FALSE, keep.source = TRUE} +<>= +options(prompt = "R> ") +options(SweaveHooks = list( + cex = function() par(cex.lab = 1.3, cex.axis = 1.3))) +@ +\begin{document} +\title{Examples for kinetic evaluations using mkin} +\author{\textbf{Johannes Ranke} \\[0.5cm] +%EndAName +Eurofins Regulatory AG\\ +Weidenweg 15, CH--4310 Rheinfelden, Switzerland\\[0.5cm] +and\\[0.5cm] +University of Bremen\\ +} +\maketitle + +%\begin{abstract} +%\end{abstract} + + +\thispagestyle{empty} \setcounter{page}{0} + +\clearpage + +\tableofcontents + +\textbf{Key words}: Kinetics, FOCUS, nonlinear optimisation + +\section{Kinetic evaluations for parent compounds} +\label{intro} + +These examples are also evaluated in a parallel vignette of the +\Rpackage{kinfit} package \citep{pkg:kinfit}. The datasets are from Appendix 3, +of the FOCUS kinetics report \citep{FOCUS2006, FOCUSkinetics2011}. + +\subsection{Laboratory Data L1} + +The following code defines example dataset L1 from the FOCUS kinetics +report, p. 284 + +<>= +library("mkin") +FOCUS_2006_L1 = data.frame( + t = rep(c(0, 1, 2, 3, 5, 7, 14, 21, 30), each = 2), + parent = c(88.3, 91.4, 85.6, 84.5, 78.9, 77.6, + 72.0, 71.9, 50.3, 59.4, 47.0, 45.1, + 27.7, 27.3, 10.0, 10.4, 2.9, 4.0)) +FOCUS_2006_L1_mkin <- mkin_wide_to_long(FOCUS_2006_L1) +@ + +The next step is to set up the models used for the kinetic analysis. Note that +the model definitions contain the names of the observed variables in the data. +In this case, there is only one variable called \Robject{parent}. + +<>= +SFO <- mkinmod(parent = list(type = "SFO")) +FOMC <- mkinmod(parent = list(type = "FOMC")) +DFOP <- mkinmod(parent = list(type = "DFOP")) +@ + +The three models cover the first assumption of simple first order (SFO), +the case of declining rate constant over time (FOMC) and the case of two +different phases of the kinetics (DFOP). For a more detailed discussion +of the models, please see the FOCUS kinetics report. + +The following two lines fit the model and produce the summary report +of the model fit. This covers the numerical analysis given in the +FOCUS report. + +<>= +m.L1.SFO <- mkinfit(SFO, FOCUS_2006_L1_mkin, quiet=TRUE) +summary(m.L1.SFO) +@ + +A plot of the fit is obtained with the plot function for mkinfit objects. + +<>= +plot(m.L1.SFO) +@ + +The residual plot can be easily obtained by + +<>= +mkinresplot(m.L1.SFO, ylab = "Observed", xlab = "Time") +@ + +For comparison, the FOMC model is fitted as well, and the $\chi^2$ error level +is checked. + +<>= +m.L1.FOMC <- mkinfit(FOMC, FOCUS_2006_L1_mkin, quiet=TRUE) +s.m.L1.FOMC <- summary(m.L1.FOMC) +s.m.L1.FOMC$errmin +@ + +Due to the higher number of parameters, and the lower number of degrees of freedom +of the fit, the $\chi^2$ error level is actually higher for the FOMC model (3.6\%) than +for the SFO model (3.4\%). + +\subsection{Laboratory Data L2} + +The following code defines example dataset L2 from the FOCUS kinetics +report, p. 287 + +<>= +library("mkin") +FOCUS_2006_L2 = data.frame( + t = rep(c(0, 1, 3, 7, 14, 28), each = 2), + parent = c(96.1, 91.8, 41.4, 38.7, + 19.3, 22.3, 4.6, 4.6, + 2.6, 1.2, 0.3, 0.6)) +FOCUS_2006_L2_mkin <- mkin_wide_to_long(FOCUS_2006_L2) +@ + +Again, the SFO model is fitted and a summary is obtained. + +<>= +m.L2.SFO <- mkinfit(SFO, FOCUS_2006_L2_mkin, quiet=TRUE) +summary(m.L2.SFO) +@ + +The $\chi^2$ error level of 14\% suggests that the model does not fit very well. +This is also obvious from the plots of the fit and the residuals. + +<>= +plot(m.L2.SFO) +@ + +In the FOCUS kinetics report, it is stated that there is no apparent systematic +error observed from the residual plot up to the measured DT90 (approximately at +day 5), and there is an underestimation beyond that point. + +<>= +mkinresplot(m.L2.SFO, ylab = "Observed", xlab = "Time") +@ + +We may add that it is difficult to judge the random nature of the residuals just +from the three samplings at days 0, 1 and 3. Also, it is not clear why a +consistent underestimation after the approximate DT90 should be irrelevant. + +For comparison, the FOMC model is fitted as well, and the $\chi^2$ error level +is checked. + +<>= +m.L2.FOMC <- mkinfit(FOMC, FOCUS_2006_L2_mkin, quiet=TRUE) +plot(m.L2.FOMC) +s.m.L2.FOMC <- summary(m.L2.FOMC) +s.m.L2.FOMC$errmin +@ + +The error level at which the $\chi^2$ test passes is much lower in this case. +Therefore, the FOMC model provides a better description of the data, as less +experimental error has to be assumed in order to explain the data. + +Fitting the four parameter DFOP model does not further reduce the +$\chi^2$ error level. + +<>= +m.L2.DFOP <- mkinfit(DFOP, FOCUS_2006_L2_mkin, quiet=TRUE) +plot(m.L2.DFOP) +@ + +Here, the default starting parameters for the DFOP model obviously do not lead +to a reasonable solution. Therefore the fit is repeated with different starting +parameters. + +<>= +m.L2.DFOP <- mkinfit(DFOP, FOCUS_2006_L2_mkin, + parms.ini = c(k1 = 1, k2 = 0.01, g = 0.8), + quiet=TRUE) +plot(m.L2.DFOP) +summary(m.L2.DFOP) +s.m.L2.DFOP <- summary(m.L2.DFOP) +s.m.L2.DFOP$errmin +@ + +Therefore, the FOMC model is clearly the best-fit model based on the +$\chi^2$ error level criterion. + +\subsection{Laboratory Data L3} + +The following code defines example dataset L3 from the FOCUS kinetics +report, p. 290 + +<>= +library("mkin") +FOCUS_2006_L3 = data.frame( + t = c(0, 3, 7, 14, 30, 60, 91, 120), + parent = c(97.8, 60, 51, 43, 35, 22, 15, 12)) +FOCUS_2006_L3_mkin <- mkin_wide_to_long(FOCUS_2006_L3) +@ + +SFO model, summary and plot: + +<>= +m.L3.SFO <- mkinfit(SFO, FOCUS_2006_L3_mkin, quiet=TRUE) +summary(m.L3.SFO) +plot(m.L3.SFO) +@ + +The $\chi^2$ error level of 22\% as well as the plot suggest that the model +does not fit very well. + +The FOMC model performs better: + +<>= +m.L3.FOMC <- mkinfit(FOMC, FOCUS_2006_L3_mkin, quiet=TRUE) +plot(m.L3.FOMC) +s.m.L3.FOMC <- summary(m.L3.FOMC) +s.m.L3.FOMC$errmin +endpoints(m.L3.FOMC) +@ + +The error level at which the $\chi^2$ test passes is 7\% in this case. + +Fitting the four parameter DFOP model further reduces the $\chi^2$ error level +considerably: + +<>= +m.L3.DFOP <- mkinfit(DFOP, FOCUS_2006_L3_mkin, quiet=TRUE) +plot(m.L3.DFOP) +s.m.L3.DFOP <- summary(m.L3.DFOP) +s.m.L3.DFOP$errmin +@ + +Therefore, the DFOP model is the best-fit model based on the $\chi^2$ error +level criterion for laboratory data L3. + +\subsection{Laboratory Data L4} + +The following code defines example dataset L4 from the FOCUS kinetics +report, p. 293 + +<>= +library("mkin") +FOCUS_2006_L4 = data.frame( + t = c(0, 3, 7, 14, 30, 60, 91, 120), + parent = c(96.6, 96.3, 94.3, 88.8, 74.9, 59.9, 53.5, 49.0)) +FOCUS_2006_L4_mkin <- mkin_wide_to_long(FOCUS_2006_L4) +@ + +SFO model, summary and plot: + +<>= +m.L4.SFO <- mkinfit(SFO, FOCUS_2006_L4_mkin, quiet=TRUE) +summary(m.L4.SFO) +plot(m.L4.SFO) +@ + +The $\chi^2$ error level of 3.3\% as well as the plot suggest that the model +fits very well. + +The FOMC model for comparison + +<>= +m.L4.FOMC <- mkinfit(FOMC, FOCUS_2006_L4_mkin, quiet=TRUE) +plot(m.L4.FOMC) +s.m.L4.FOMC <- summary(m.L4.FOMC) +s.m.L4.FOMC$errmin +@ + +The error level at which the $\chi^2$ test passes is slightly lower for the FOMC +model. However, the difference appears negligible. + +\bibliographystyle{plainnat} +\bibliography{references} + +\end{document} +% vim: set foldmethod=syntax: -- cgit v1.2.1