diff options
Diffstat (limited to 'man')
| -rw-r--r-- | man/add_err.Rd | 5 | ||||
| -rw-r--r-- | man/synthetic_data_for_UBA.Rd | 82 | 
2 files changed, 83 insertions, 4 deletions
| diff --git a/man/add_err.Rd b/man/add_err.Rd index 808edbc6..e098d95c 100644 --- a/man/add_err.Rd +++ b/man/add_err.Rd @@ -9,7 +9,7 @@    may depend on the predicted value and is specified as a standard deviation.  }  \usage{ -  add_err(prediction, sdfunc, +  add_err(prediction, sdfunc, secondary = c("M1", "M2"),            n = 1000, LOD = 0.1, reps = 2,            digits = 1, seed = NA)  } @@ -22,6 +22,9 @@      a standard deviation that should be used for generating the random error      terms for this value.    } +  \item{secondary}{ +    The names of state variables that should have an initial value of zero +  }    \item{n}{      The number of datasets to be generated.    } diff --git a/man/synthetic_data_for_UBA.Rd b/man/synthetic_data_for_UBA.Rd index a9739d55..3339798e 100644 --- a/man/synthetic_data_for_UBA.Rd +++ b/man/synthetic_data_for_UBA.Rd @@ -11,7 +11,7 @@   Variance component 'a' is based on a normal distribution with standard deviation of 3,
   Variance component 'b' is also based on a normal distribution, but with a standard deviation of 7.
 - Variance component 'c' is based on the error model from Rocke and Lorenzato (1995), with the 
 + Variance component 'c' is based on the error model from Rocke and Lorenzato (1995), with the
   minimum standard deviation (for small y values) of 0.5, and a proportionality constant of 0.07
   for the increase of the standard deviation with y.
 @@ -36,12 +36,13 @@  \source{
    Ranke (2014) Prüfung und Validierung von Modellierungssoftware als Alternative
    zu ModelMaker 4.0, Umweltbundesamt Projektnummer 27452
 - 
 +
    Rocke, David M. und Lorenzato, Stefan (1995) A two-component model for
    measurement error in analytical chemistry. Technometrics 37(2), 176-184.
  }
  \examples{
  \dontrun{
 +# The data have been generated using the following kinetic models
  m_synth_SFO_lin <- mkinmod(parent = list(type = "SFO", to = "M1"),
                             M1 = list(type = "SFO", to = "M2"),
                             M2 = list(type = "SFO"), use_of_ff = "max")
 @@ -61,7 +62,82 @@ m_synth_DFOP_par <- mkinmod(parent = list(type = "DFOP", to = c("M1", "M2"),                              M1 = list(type = "SFO"),
                              M2 = list(type = "SFO"), use_of_ff = "max")
 -fit <- mkinfit(m_synth_SFO_lin, synthetic_data_for_UBA_2014[[1]]$data, quiet = TRUE)
 +# The model predictions without intentional error were generated as follows
 +sampling_times = c(0, 1, 3, 7, 14, 28, 60, 90, 120)
 +
 +d_synth_SFO_lin <- mkinpredict(m_synth_SFO_lin,
 +                               c(k_parent = 0.7, f_parent_to_M1 = 0.8,
 +                                 k_M1 = 0.3, f_M1_to_M2 = 0.7,
 +                                 k_M2 = 0.02),
 +                               c(parent = 100, M1 = 0, M2 = 0),
 +                               sampling_times)
 +
 +d_synth_DFOP_lin <- mkinpredict(m_synth_DFOP_lin,
 +                                c(k1 = 0.2, k2 = 0.02, g = 0.5,
 +                                  f_parent_to_M1 = 0.5, k_M1 = 0.3,
 +                                  f_M1_to_M2 = 0.7, k_M2 = 0.02),
 +                                 c(parent = 100, M1 = 0, M2 = 0),
 +                                 sampling_times)
 +
 +d_synth_SFO_par <- mkinpredict(m_synth_SFO_par,
 +                               c(k_parent = 0.2,
 +                                 f_parent_to_M1 = 0.8, k_M1 = 0.01,
 +                                 f_parent_to_M2 = 0.2, k_M2 = 0.02),
 +                                 c(parent = 100, M1 = 0, M2 = 0),
 +                                 sampling_times)
 +
 +d_synth_DFOP_par <- mkinpredict(m_synth_DFOP_par,
 +                               c(k1 = 0.3, k2 = 0.02, g = 0.7,
 +                                 f_parent_to_M1 = 0.6, k_M1 = 0.04,
 +                                 f_parent_to_M2 = 0.4, k_M2 = 0.01),
 +                                 c(parent = 100, M1 = 0, M2 = 0),
 +                                 sampling_times)
 +
 +# Construct names for datasets with errors
 +d_synth_names = paste0("d_synth_", c("SFO_lin", "SFO_par",
 +                                     "DFOP_lin", "DFOP_par"))
 +
 +# Function for adding errors. The add_err function now published with this
 +# package is a slightly generalised version where the names of secondary
 +# compartments that should have an initial value of zero (M1 and M2 in this
 +# case) are not hardcoded any more.
 +add_err = function(d, sdfunc, LOD = 0.1, reps = 2, seed = 123456789)
 +{
 +  set.seed(seed)
 +  d_long = mkin_wide_to_long(d, time = "time")
 +  d_rep = data.frame(lapply(d_long, rep, each = 2))
 +  d_rep$value = rnorm(length(d_rep$value), d_rep$value, sdfunc(d_rep$value))
 +
 +  d_rep[d_rep$time == 0 & d_rep$name %in% c("M1", "M2"), "value"] <- 0
 +  d_NA <- transform(d_rep, value = ifelse(value < LOD, NA, value))
 +  d_NA$value <- round(d_NA$value, 1)
 +  return(d_NA)
 +}
 +
 +# The following is the two-component model of Rocke and Lorenzato (1995)
 +sdfunc_twocomp = function(value, sd_low, rsd_high) {
 +  sqrt(sd_low^2 + value^2 * rsd_high^2)
 +}
 +
 +# Add the errors.
 +for (d_synth_name in d_synth_names)
 +{
 +  d_synth = get(d_synth_name)
 +  assign(paste0(d_synth_name, "_a"), add_err(d_synth, function(value) 3))
 +  assign(paste0(d_synth_name, "_b"), add_err(d_synth, function(value) 7))
 +  assign(paste0(d_synth_name, "_c"), add_err(d_synth,
 +                           function(value) sdfunc_twocomp(value, 0.5, 0.07)))
 +
 +}
 +
 +d_synth_err_names = c(
 +  paste(rep(d_synth_names, each = 3), letters[1:3], sep = "_")
 +)
 +
 +# This is just one example of an evaluation using the kinetic model used for
 +# the generation of the data
 +fit <- mkinfit(m_synth_SFO_lin, synthetic_data_for_UBA_2014[[1]]$data,
 +               quiet = TRUE)
  plot_sep(fit)
  summary(fit)
  }
 | 
