aboutsummaryrefslogtreecommitdiff
path: root/man/sigma_twocomp.Rd
blob: d205a2f7796b7fcfb1853d7f0b5ceac8b6a30ea9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/sigma_twocomp.R
\name{sigma_twocomp}
\alias{sigma_twocomp}
\title{Two-component error model}
\usage{
sigma_twocomp(y, sigma_low, rsd_high)
}
\arguments{
\item{y}{The magnitude of the observed value}

\item{sigma_low}{The asymptotic minimum of the standard deviation for low
observed values}

\item{rsd_high}{The coefficient describing the increase of the standard
deviation with the magnitude of the observed value}
}
\value{
The standard deviation of the response variable.
}
\description{
Function describing the standard deviation of the measurement error in
dependence of the measured value \eqn{y}:
}
\details{
\deqn{\sigma = \sqrt{ \sigma_{low}^2 + y^2 * {rsd}_{high}^2}} sigma =
sqrt(sigma_low^2 + y^2 * rsd_high^2)

This is the error model used for example by Werner et al. (1978). The model
proposed by Rocke and Lorenzato (1995) can be written in this form as well,
but assumes approximate lognormal distribution of errors for high values of
y.
}
\examples{
times <- c(0, 1, 3, 7, 14, 28, 60, 90, 120)
d_pred <- data.frame(time = times, parent = 100 * exp(- 0.03 * times))
set.seed(123456)
d_syn <- add_err(d_pred, function(y) sigma_twocomp(y, 1, 0.07),
  reps = 2, n = 1)[[1]]
f_nls <- nls(value ~ SSasymp(time, 0, parent_0, lrc), data = d_syn,
 start = list(parent_0 = 100, lrc = -3))
library(nlme)
f_gnls <- gnls(value ~ SSasymp(time, 0, parent_0, lrc),
  data = d_syn, na.action = na.omit,
  start = list(parent_0 = 100, lrc = -3))
if (length(findFunction("varConstProp")) > 0) {
  f_gnls_tc <- update(f_gnls, weights = varConstProp())
  f_gnls_tc_sf <- update(f_gnls_tc, control = list(sigma = 1))
}
f_mkin <- mkinfit("SFO", d_syn, error_model = "const", quiet = TRUE)
f_mkin_tc <- mkinfit("SFO", d_syn, error_model = "tc", quiet = TRUE)
plot_res(f_mkin_tc, standardized = TRUE)
AIC(f_nls, f_gnls, f_gnls_tc, f_gnls_tc_sf, f_mkin, f_mkin_tc)
}
\references{
Werner, Mario, Brooks, Samuel H., and Knott, Lancaster B. (1978)
Additive, Multiplicative, and Mixed Analytical Errors. Clinical Chemistry
24(11), 1895-1898.

Rocke, David M. and Lorenzato, Stefan (1995) A two-component model for
measurement error in analytical chemistry. Technometrics 37(2), 176-184.
}

Contact - Imprint