Learn R Programming

valytics (version 0.4.0)

ate_from_bv: Calculate Allowable Total Error from Biological Variation

Description

Calculates analytical performance specifications (allowable imprecision, allowable bias, and total allowable error) based on biological variation data using the hierarchical model from Fraser & Petersen (1993).

Usage

ate_from_bv(
  cvi,
  cvg = NULL,
  level = c("desirable", "optimal", "minimum"),
  k = 1.65
)

Value

An object of class c("ate_specs", "valytics_ate", "valytics_result"), which is a list containing:

specifications

List with calculated specifications:

  • allowable_cv: Allowable analytical imprecision (CV_A)

  • allowable_bias: Allowable analytical bias (NULL if cvg not provided)

  • tea: Total allowable error (NULL if cvg not provided)

input

List with input parameters:

  • cvi: Within-subject CV

  • cvg: Between-subject CV (or NULL)

  • level: Performance level used

  • k: Coverage factor used

multipliers

List with level-specific multipliers used:

  • imprecision: Multiplier for CV_I

  • bias: Multiplier for sqrt(CV_I^2 + CV_G^2)

Arguments

cvi

Numeric. Within-subject (intra-individual) biological variation coefficient of variation, expressed as a percentage.

cvg

Numeric. Between-subject (inter-individual) biological variation coefficient of variation, expressed as a percentage. If NULL (default), only imprecision specifications are calculated.

level

Character. Performance level: "desirable" (default), "optimal", or "minimum". See Details.

k

Numeric. Coverage factor for total allowable error calculation (default: 1.65 for ~95% coverage assuming normal distribution).

Data Sources

Biological variation data (CV_I and CV_G) should be obtained from authoritative sources. The recommended current source is the EFLM Biological Variation Database: https://biologicalvariation.eu/

This database provides rigorously reviewed BV estimates derived from published studies meeting defined quality specifications.

Details

The biological variation model for analytical performance specifications was developed by Fraser, Petersen, and colleagues. The model derives allowable analytical error from the inherent biological variability of the measurand.

Formulas (Desirable level):

$$CV_A \leq 0.50 \times CV_I$$

$$Bias \leq 0.25 \times \sqrt{CV_I^2 + CV_G^2}$$

$$TEa \leq k \times CV_A + Bias$$

Where:

  • CV_I = within-subject biological variation

  • CV_G = between-subject biological variation

  • CV_A = allowable analytical imprecision

  • k = coverage factor (default 1.65)

Performance Levels:

Three hierarchical performance levels are defined:

  • Optimal: Most stringent; multipliers are 0.25x desirable (i.e., 0.125 for CV, 0.0625 for bias)

  • Desirable: Standard target; multipliers are 0.50 for CV, 0.25 for bias

  • Minimum: Least stringent; multipliers are 1.5x desirable (i.e., 0.75 for CV, 0.375 for bias)

References

Fraser CG, Petersen PH (1993). Desirable standards for laboratory tests if they are to fulfill medical needs. Clinical Chemistry, 39(7):1447-1453.

Ricos C, Alvarez V, Cava F, et al. (1999). Current databases on biological variation: pros, cons and progress. Scandinavian Journal of Clinical and Laboratory Investigation, 59(7):491-500.

Aarsand AK, Fernandez-Calle P, Webster C, et al. (2020). The EFLM Biological Variation Database. https://biologicalvariation.eu/

Westgard JO (2008). Basic Method Validation (3rd ed.). Westgard QC, Inc.

See Also

sigma_metric() for calculating Six Sigma metrics, ate_assessment() for comparing observed performance to specifications

Examples

Run this code
# Glucose: CV_I = 5.6%, CV_G = 7.5% (example values)
ate <- ate_from_bv(cvi = 5.6, cvg = 7.5)
ate

# Optimal performance level (more stringent)
ate_optimal <- ate_from_bv(cvi = 5.6, cvg = 7.5, level = "optimal")
ate_optimal

# Minimum acceptable performance
ate_min <- ate_from_bv(cvi = 5.6, cvg = 7.5, level = "minimum")
ate_min

# When only within-subject CV is known (bias goal not calculable)
ate_cv_only <- ate_from_bv(cvi = 5.6)
ate_cv_only

# Custom coverage factor (e.g., 2.0 for ~97.5% coverage)
ate_custom <- ate_from_bv(cvi = 5.6, cvg = 7.5, k = 2.0)

# Access individual specifications
ate$specifications$allowable_cv
ate$specifications$allowable_bias
ate$specifications$tea

Run the code above in your browser using DataLab