calibration: Analytical calibration functions

View source: R/calibration.R

calibrationR Documentation

Analytical calibration functions

Description

Defines a 'calibration' object for the calculation of concentrations from measurement signals including estimations for the limit of detection (LOD) and limit of quantification (LOQ) in accordance with DIN 32645 (2008).

Usage

calibration(
  formula,
  data = NULL,
  blanks = NULL,
  weights = NULL,
  model = "lm",
  check_assumptions = TRUE,
  ...
)

## S3 method for class 'calibration'
print(x, ...)

## S3 method for class 'calibration'
summary(object, ...)

## S3 method for class 'calibration'
plot(x, interval = "conf", level = 0.95, ...)

## S3 method for class 'calibration'
as.list(x, which = c("coef", "adj.r.squared", "lod", "loq", "blanks"), ...)

lod(x, ...)

## Default S3 method:
lod(x, ...)

## S3 method for class 'calibration'
lod(x, blanks = NULL, alpha = 0.01, level = 0.05, ...)

loq(x, ...)

## Default S3 method:
loq(x, ...)

## S3 method for class 'calibration'
loq(x, blanks = NULL, alpha = 0.01, k = 3, level = 0.05, maxiter = 10, ...)

## S3 method for class 'calibration'
predict(object, newdata = NULL, interval = "conf", ...)

inv_predict(x, ...)

## Default S3 method:
inv_predict(x, ...)

## S3 method for class 'calibration'
inv_predict(x, y, below_lod = NULL, method = "analytic", ...)

Arguments

formula

model formula providing the recorded signal intensities with respect to the nominal/specified analyte concentrations in the form of signal ~ concentration or signal ~ concentration - 1; model formulas are currently restricted to those forms.

data

an optional data frame containing the variables in the model.

blanks

a vector of numeric blank values overriding those automatically retrieved from calibration data.

weights

an optional character string containing one or more model variables, for example, in the form of "1/concentration^0.5" or "1/signal" which is internally converted to a numeric vector and passed to the fitting process of the selected model; see also weight_select()

model

model class to be used for fitting; currently, lm() and rlm() are supported.

check_assumptions

automatically check for normality and homoscedasticity of model residuals using shapiro.test() and bptest(), respectively; only executed if weights == NULL.

...

further arguments passed to submethods; for instance, the respective model environment such as lm(), print(), or plot().

x, object

an object of class 'calibration' with a model formula as shown above.

interval

type of interval plotted (can be abbreviated); see predict() for details.

level

tolerance/confidence level; see predict() and confint() for details.

which

character vector indicating the parameters to export; defaults to c("coef", "adj.r.squared", "lod", "loq", "blanks").

alpha

numeric; error tolerance for the detection limit (critical value).

k

numeric; relative uncertainty for the limit of quantification (1/beta).

maxiter

a positive integer specifying the maximum number of iterations to calculate the LOQ.

newdata

a data frame in which to look for variables with which to predict. If NULL, values are guessed; predict.lm() for details.

y

numeric; the value to inverse predict.

below_lod

value to be assigned if inverse prediction is below LOD; defaults to "NULL" which keeps predicted values untouched. Other options may be NA or 0.

method

character indicating the method used for inverse prediction; defaults to "analytic".

Details

The LOD is defined as the lowest quantity of a substance that can be distinguished from the absence of that substance (blank value) within a given confidence level (alpha). The LOQ is defined as the lowest quantity of a substance that can be quantified/distinguished from another sample given with respect to a defined confidence level (k).

If the data supplied to calibration contain more than one blank value, namely measurements with a nominal/specified concentration of or close to zero, the LOD and LOQ are calculated from the deviation of the blank samples. This method is called "blank method" according to DIN 32645 (2008) and supposed to be more accurate than the so-called "calibration method" which will be used for the estimation of LOD and LOQ when data does not contain zero concentration measurements.

Value

calibration returns an object of class 'calibration'.

print() calls the function parameters together with the respective LOD and LOQ. summary() may be used to retrieve the summary of the underlying model. plot() plots the respective calibration curve together with the measurement values.

as.list() returns a named list.

lod() and loq() return a named vector with the LOD and LOQ together with lower and upper confidence limits.

predict() returns a data.frame of predictions.

inv_predict() predicts/calculates analyte concentrations from signal intensities.

Author(s)

Zacharias Steinmetz

References

Almeida, A.M.D., Castel-Branco, M.M., & Falcao, A.C. (2002). Linear regression for calibration lines revisited: weighting schemes for bioanalytical methods. Journal of Chromatography B, 774(2), 215-222. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/S1570-0232(02)00244-1")}.

Currie, L.A. (1999). Nomenclature in evaluation of analytical methods including detection and quantification capabilities: (IUPAC Recommendations 1995). Analytica Chimica Acta 391, 105-126.

DIN 32645 (2008). Chemical analysis - Decision limit, detection limit and determination limit under repeatability conditions - Terms, methods, evaluation. Technical standard. Deutsches Institut für Normung, Berlin.

Massart, D.L., Vandeginste, B.G., Buydens, L.M.C., Lewi, P.J., & Smeyers-Verbeke, J. (1997). Handbook of chemometrics and qualimetrics: Part A. Elsevier Science Inc.

See Also

invest() for alternative inverse prediction methods;

Other calibration: din32645, icp, matrix_effect(), neitzel2003, phenolics, weight_select()

Examples

data(din32645)
din <- calibration(Area ~ Conc, data = din32645)

print(din)
summary(din)
plot(din)

as.list(din)

lod(din)
loq(din)

predict(din)

inv_predict(din, 5000)


zsteinmetz/envalysis documentation built on March 24, 2024, 8:19 p.m.