diff options
author | ranke <ranke@5fad18fb-23f0-0310-ab10-e59a3bee62b4> | 2006-06-23 16:06:54 +0000 |
---|---|---|
committer | ranke <ranke@5fad18fb-23f0-0310-ab10-e59a3bee62b4> | 2006-06-23 16:06:54 +0000 |
commit | 7889cda8d4133e68b07e7b204cd75295e0b348ee (patch) | |
tree | d60559caef78d590042a7cf3a7b8bfc527a7d04c /inst/doc/chemCal.tex | |
parent | 9e0dae397df8c18e7333d2604cae96b2a7927420 (diff) |
Some cosmetic changes, and the vignette created during package building.
git-svn-id: http://kriemhild.uft.uni-bremen.de/svn/chemCal@17 5fad18fb-23f0-0310-ab10-e59a3bee62b4
Diffstat (limited to 'inst/doc/chemCal.tex')
-rw-r--r-- | inst/doc/chemCal.tex | 338 |
1 files changed, 169 insertions, 169 deletions
diff --git a/inst/doc/chemCal.tex b/inst/doc/chemCal.tex index 0469848..32c5143 100644 --- a/inst/doc/chemCal.tex +++ b/inst/doc/chemCal.tex @@ -1,169 +1,169 @@ -\documentclass[a4paper]{article} -%\VignetteIndexEntry{Short manual for the chemCal package} -\usepackage{hyperref} - -\title{Basic calibration functions for analytical chemistry} -\author{Johannes Ranke} - -\usepackage{/usr/share/R/share/texmf/Sweave} -\begin{document} -\maketitle - -The \texttt{chemCal} package was first designed in the course of a lecture and lab -course on "analytics of organic trace contaminants" at the University of Bremen -from October to December 2004. In the fall 2005, an email exchange with -Ron Wehrens led to the belief that it would be desirable to implement the -inverse prediction method given in \cite{massart97} since it also covers the -case of weighted regression. Studies of the IUPAC orange book and of DIN 32645 -as well as publications by Currie and the Analytical Method Committee of the -Royal Society of Chemistry and a nice paper by Castillo and Castells provided -further understanding of the matter. - -At the moment, the package consists of four functions, working on univariate -linear models of class \texttt{lm} or \texttt{rlm}, plus to datasets for -validation. - -A \href{http://bugs.r-project.org/cgi-bin/R/wishlst-fulfilled?id=8877;user=guest}{bug -report (PR\#8877)} and the following e-mail exchange on the r-devel mailing list about -prediction intervals from weighted regression entailed some further studies -on this subject. However, I did not encounter any proof or explanation of the -formula cited below yet, so I can't really confirm that Massart's method is correct. - -When calibrating an analytical method, the first task is to generate a suitable -model. If we want to use the \texttt{chemCal} functions, we will have to restrict -ourselves to univariate, possibly weighted, linear regression so far. - -Once such a model has been created, the calibration can be graphically -shown by using the \texttt{calplot} function: - -\begin{Schunk} -\begin{Sinput} -> library(chemCal) -> data(massart97ex3) -> m0 <- lm(y ~ x, data = massart97ex3) -> calplot(m0) -\end{Sinput} -\end{Schunk} -\includegraphics{chemCal-001} - -As we can see, the scatter increases with increasing x. This is also -illustrated by one of the diagnostic plots for linear models -provided by R: - -\begin{Schunk} -\begin{Sinput} -> plot(m0, which = 3) -\end{Sinput} -\end{Schunk} -\includegraphics{chemCal-002} - -Therefore, in Example 8 in \cite{massart97} weighted regression -is proposed which can be reproduced by - -\begin{Schunk} -\begin{Sinput} -> attach(massart97ex3) -> yx <- split(y, x) -> ybar <- sapply(yx, mean) -> s <- round(sapply(yx, sd), digits = 2) -> w <- round(1/(s^2), digits = 3) -> weights <- w[factor(x)] -> m <- lm(y ~ x, w = weights) -\end{Sinput} -\end{Schunk} - -If we now want to predict a new x value from measured y values, -we use the \texttt{inverse.predict} function: - -\begin{Schunk} -\begin{Sinput} -> inverse.predict(m, 15, ws = 1.67) -\end{Sinput} -\begin{Soutput} -$Prediction -[1] 5.865367 - -$`Standard Error` -[1] 0.7288138 - -$Confidence -[1] 2.023511 - -$`Confidence Limits` -[1] 3.841856 7.888878 -\end{Soutput} -\begin{Sinput} -> inverse.predict(m, 90, ws = 0.145) -\end{Sinput} -\begin{Soutput} -$Prediction -[1] 44.06025 - -$`Standard Error` -[1] 2.310001 - -$Confidence -[1] 6.41359 - -$`Confidence Limits` -[1] 37.64666 50.47384 -\end{Soutput} -\end{Schunk} - -The weight \texttt{ws} assigned to the measured y value has to be -given by the user in the case of weighted regression, or alternatively, -the approximate variance \texttt{var.s} at this location. - -\section*{Theory for \texttt{inverse.predict}} -Equation 8.28 in \cite{massart97} gives a general equation for predicting the -standard error $s_{\hat{x_s}}$ for an x value predicted from measurements of y -according to the linear calibration function $ y = b_0 + b_1 \cdot x$: - -\begin{equation} -s_{\hat{x_s}} = \frac{s_e}{b_1} \sqrt{\frac{1}{w_s m} + \frac{1}{\sum{w_i}} + - \frac{(\bar{y_s} - \bar{y_w})^2 \sum{w_i}} - {{b_1}^2 \left( \sum{w_i} \sum{w_i {x_i}^2} - - {\left( \sum{ w_i x_i } \right)}^2 \right) }} -\end{equation} - -with - -\begin{equation} -s_e = \sqrt{ \frac{\sum w_i (y_i - \hat{y_i})^2}{n - 2}} -\end{equation} - -where $w_i$ is the weight for calibration standard $i$, $y_i$ is the mean $y$ -value (!) observed for standard $i$, $\hat{y_i}$ is the estimated value for -standard $i$, $n$ is the number calibration standards, $w_s$ is the weight -attributed to the sample $s$, $m$ is the number of replicate measurements of -sample $s$, $\bar{y_s}$ is the mean response for the sample, -$\bar{y_w} = \frac{\sum{w_i y_i}}{\sum{w_i}}$ is the weighted mean of responses -$y_i$, and $x_i$ is the given $x$ value for standard $i$. - -The weight $w_s$ for the sample should be estimated or calculated in accordance -to the weights used in the linear regression. - -I adjusted the above equation in order to be able to take a different -precisions in standards and samples into account. In analogy to Equation 8.26 -from \cite{massart97} we get - -\begin{equation} -s_{\hat{x_s}} = \frac{1}{b_1} \sqrt{\frac{{s_s}^2}{w_s m} + - {s_e}^2 \left( \frac{1}{\sum{w_i}} + - \frac{(\bar{y_s} - \bar{y_w})^2 \sum{w_i}} - {{b_1}^2 \left( \sum{w_i} \sum{w_i {x_i}^2} - {\left( \sum{ w_i x_i } \right)}^2 \right) } \right) } -\end{equation} - -where I interpret $\frac{{s_s}^2}{w_s}$ as an estimator of the variance at location -$\hat{x_s}$, which can be replaced by a user-specified value using the argument -\texttt{var.s} of the function \texttt{inverse.predict}. - -\begin{thebibliography}{1} -\bibitem{massart97} -Massart, L.M, Vandenginste, B.G.M., Buydens, L.M.C., De Jong, S., Lewi, P.J., -Smeyers-Verbeke, J. -\newblock Handbook of Chemometrics and Qualimetrics: Part A, -\newblock Elsevier, Amsterdam, 1997 -\end{thebibliography} - -\end{document} +\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Short manual for the chemCal package}
+\usepackage{hyperref}
+
+\title{Basic calibration functions for analytical chemistry}
+\author{Johannes Ranke}
+
+\usepackage{d:/Programme/R/R-2.3.1/share/texmf/Sweave}
+\begin{document}
+\maketitle
+
+The \texttt{chemCal} package was first designed in the course of a lecture and lab
+course on "analytics of organic trace contaminants" at the University of Bremen
+from October to December 2004. In the fall 2005, an email exchange with
+Ron Wehrens led to the belief that it would be desirable to implement the
+inverse prediction method given in \cite{massart97} since it also covers the
+case of weighted regression. Studies of the IUPAC orange book and of DIN 32645
+as well as publications by Currie and the Analytical Method Committee of the
+Royal Society of Chemistry and a nice paper by Castillo and Castells provided
+further understanding of the matter.
+
+At the moment, the package consists of four functions, working on univariate
+linear models of class \texttt{lm} or \texttt{rlm}, plus to datasets for
+validation.
+
+A \href{http://bugs.r-project.org/cgi-bin/R/wishlst-fulfilled?id=8877;user=guest}{bug
+report (PR\#8877)} and the following e-mail exchange on the r-devel mailing list about
+prediction intervals from weighted regression entailed some further studies
+on this subject. However, I did not encounter any proof or explanation of the
+formula cited below yet, so I can't really confirm that Massart's method is correct.
+
+When calibrating an analytical method, the first task is to generate a suitable
+model. If we want to use the \texttt{chemCal} functions, we will have to restrict
+ourselves to univariate, possibly weighted, linear regression so far.
+
+Once such a model has been created, the calibration can be graphically
+shown by using the \texttt{calplot} function:
+
+\begin{Schunk}
+\begin{Sinput}
+> library(chemCal)
+> data(massart97ex3)
+> m0 <- lm(y ~ x, data = massart97ex3)
+> calplot(m0)
+\end{Sinput}
+\end{Schunk}
+\includegraphics{chemCal-001}
+
+As we can see, the scatter increases with increasing x. This is also
+illustrated by one of the diagnostic plots for linear models
+provided by R:
+
+\begin{Schunk}
+\begin{Sinput}
+> plot(m0, which = 3)
+\end{Sinput}
+\end{Schunk}
+\includegraphics{chemCal-002}
+
+Therefore, in Example 8 in \cite{massart97} weighted regression
+is proposed which can be reproduced by
+
+\begin{Schunk}
+\begin{Sinput}
+> attach(massart97ex3)
+> yx <- split(y, x)
+> ybar <- sapply(yx, mean)
+> s <- round(sapply(yx, sd), digits = 2)
+> w <- round(1/(s^2), digits = 3)
+> weights <- w[factor(x)]
+> m <- lm(y ~ x, w = weights)
+\end{Sinput}
+\end{Schunk}
+
+If we now want to predict a new x value from measured y values,
+we use the \texttt{inverse.predict} function:
+
+\begin{Schunk}
+\begin{Sinput}
+> inverse.predict(m, 15, ws = 1.67)
+\end{Sinput}
+\begin{Soutput}
+$Prediction
+[1] 5.865367
+
+$`Standard Error`
+[1] 0.892611
+
+$Confidence
+[1] 2.478285
+
+$`Confidence Limits`
+[1] 3.387082 8.343652
+\end{Soutput}
+\begin{Sinput}
+> inverse.predict(m, 90, ws = 0.145)
+\end{Sinput}
+\begin{Soutput}
+$Prediction
+[1] 44.06025
+
+$`Standard Error`
+[1] 2.829162
+
+$Confidence
+[1] 7.855012
+
+$`Confidence Limits`
+[1] 36.20523 51.91526
+\end{Soutput}
+\end{Schunk}
+
+The weight \texttt{ws} assigned to the measured y value has to be
+given by the user in the case of weighted regression, or alternatively,
+the approximate variance \texttt{var.s} at this location.
+
+\section*{Theory for \texttt{inverse.predict}}
+Equation 8.28 in \cite{massart97} gives a general equation for predicting the
+standard error $s_{\hat{x_s}}$ for an x value predicted from measurements of y
+according to the linear calibration function $ y = b_0 + b_1 \cdot x$:
+
+\begin{equation}
+s_{\hat{x_s}} = \frac{s_e}{b_1} \sqrt{\frac{1}{w_s m} + \frac{1}{\sum{w_i}} +
+ \frac{(\bar{y_s} - \bar{y_w})^2 \sum{w_i}}
+ {{b_1}^2 \left( \sum{w_i} \sum{w_i {x_i}^2} -
+ {\left( \sum{ w_i x_i } \right)}^2 \right) }}
+\end{equation}
+
+with
+
+\begin{equation}
+s_e = \sqrt{ \frac{\sum w_i (y_i - \hat{y_i})^2}{n - 2}}
+\end{equation}
+
+where $w_i$ is the weight for calibration standard $i$, $y_i$ is the mean $y$
+value (!) observed for standard $i$, $\hat{y_i}$ is the estimated value for
+standard $i$, $n$ is the number calibration standards, $w_s$ is the weight
+attributed to the sample $s$, $m$ is the number of replicate measurements of
+sample $s$, $\bar{y_s}$ is the mean response for the sample,
+$\bar{y_w} = \frac{\sum{w_i y_i}}{\sum{w_i}}$ is the weighted mean of responses
+$y_i$, and $x_i$ is the given $x$ value for standard $i$.
+
+The weight $w_s$ for the sample should be estimated or calculated in accordance
+to the weights used in the linear regression.
+
+I adjusted the above equation in order to be able to take a different
+precisions in standards and samples into account. In analogy to Equation 8.26
+from \cite{massart97} we get
+
+\begin{equation}
+s_{\hat{x_s}} = \frac{1}{b_1} \sqrt{\frac{{s_s}^2}{w_s m} +
+ {s_e}^2 \left( \frac{1}{\sum{w_i}} +
+ \frac{(\bar{y_s} - \bar{y_w})^2 \sum{w_i}}
+ {{b_1}^2 \left( \sum{w_i} \sum{w_i {x_i}^2} - {\left( \sum{ w_i x_i } \right)}^2 \right) } \right) }
+\end{equation}
+
+where I interpret $\frac{{s_s}^2}{w_s}$ as an estimator of the variance at location
+$\hat{x_s}$, which can be replaced by a user-specified value using the argument
+\texttt{var.s} of the function \texttt{inverse.predict}.
+
+\begin{thebibliography}{1}
+\bibitem{massart97}
+Massart, L.M, Vandenginste, B.G.M., Buydens, L.M.C., De Jong, S., Lewi, P.J.,
+Smeyers-Verbeke, J.
+\newblock Handbook of Chemometrics and Qualimetrics: Part A,
+\newblock Elsevier, Amsterdam, 1997
+\end{thebibliography}
+
+\end{document}
|