22  Standards Mapping

This chapter answers one question: in the current ivdtools version, which statistical tasks from specified standards are implemented, which are available only as component calculations, which are not implemented, and which have similar names but different algorithms. “Supported” here means auditable statistical calculation capability; it does not mean that study design, sample representativeness, acceptance criteria, quality systems, or registration conclusions have been completed automatically.

The Handbook covers all CLSI EP documents, YY/T 1789.1–1789.6, and the statistical tasks mentioned in the CMDE guidance. Other standards systems are outside this chapter.

22.1 Interpretation Categories

Four statuses are used:

  • Implemented: a public function calculates the core statistic required by the standard, with standard data or an auditable example available for checking;
  • Partially implemented: core components can be calculated, but a standard-specific statistic, input structure, complete workflow, or final decision is missing;
  • Not implemented: the current package has no public entry point that answers the standard’s statistical question;
  • Different algorithm: both the package and the standard produce a result, but the estimator, error model, interval, rejection region, or integerization rule differs.

“Different algorithm” can occur together with “partially implemented.” A difference in displayed digits that does not change the statistical definition is recorded as display rounding, not as an algorithm error. When the published standard value cannot be obtained from the public formula and same data, it is reported honestly as a published-value or source-material limitation; parameters are not adjusted merely to force agreement.

22.2 CLSI EP Series

22.2.1 Core Statistical Tasks Implemented or Directly Reusable

EP05 (precision) — core implemented. precision(), variance(), ci(), profile(), and report() can estimate repeatability, within-laboratory precision, reproducibility, CVs, variance components, and intervals by day, run, lot, site, or center. Single-center and multicenter EP05-A3 examples have been checked.

EP06 (linearity) — core implemented. linearity() is the dedicated linearity entry point and supports replicate-level aggregation, straight lines, weights, deviations, and allowable deviations; linearity_replicates(), linearity_panel(), and linearity_endpoints() support design and endpoint checks.

EP07 (interference) — core implemented. Replicate planning, paired interference, dose response, patient-sample comparison, and cross-reactivity are handled by interference_replicates(), interference_paired(), interference_dose_response(), and interference_patient().

EP09 (method comparison and bias) — core implemented. mcr(), describe(), correlation(), regression(), bland_altman(), outlier(), bias(), predict(), and reference_bias() cover OLS, WLS, Deming, weighted Deming, Passing–Bablok, difference plots, outliers, and bias at medical decision levels. Main paths in EP09c Appendices C, D, F, H, I, J, and K2 have examples.

EP12 (qualitative performance) — binary core implemented; standard-specific portions missing. raw_to_table(), counts_to_table(), diagnostics(), kappa(), mcnemar(), and c5_c95() support 2×2 diagnostic performance, agreement, Kappa, McNemar, and C5/C95 from a continuous response. ANA/APA, semi-quantitative R×C weighted Kappa, fixed-CV C95, and special intervals in some appendices have no corresponding entry point. Coding positive counts as 0/1 and passing them to a continuous-response VFP model changes the statistical model and is not a substitute implementation.

EP14 (commutability of processed samples) — core implemented. commutability() supports EP14-type Deming regression, clinical-sample repeatability, prediction intervals at specified reference points, and material classification. The statistical unit of samples, procedures, replicates, and prediction intervals is auditable; sample source, processing, reference procedure, and final suitability judgment are not completed automatically.

EP15 (user precision and bias verification) — core implemented. Precision can use the precision() family, and bias can use reference_bias() or the method-comparison workflow.

EP17 (detection capability) — core implemented. sensitivity_lob(), sensitivity_lod(), sensitivity_loq(), sensitivity_verify(), and sensitivity_design() cover parametric/nonparametric LoB, classical/Probit LoD, precision or total-error LoQ, and claim verification.

EP24 (ROC and diagnostic accuracy) — core implemented, with result-format differences. roc(), auc(), cutoff(), mlr(), and auc_compare() support empirical ROC, AUC, cutoff, multivariate logistic regression, and EP24 Hanley–McNeil and DeLong paired AUC comparisons. Single-curve intervals use the package’s fixed Hanley–McNeil path; cutoff notation between adjacent values, Youden tie handling, and standard hand tables may differ.

EP25 (stability) — core implemented. stability_plan(), stability_bias(), stability_regression(), stability_time(), arrhenius(), and mkt() handle node bias, trends, one-sided limits, time to exceed a limit, and accelerated stability.

EP28 (reference intervals) — core implemented. reference_interval() supports the EP28 continuous-rank nonparametric method, exact binomial-rank confidence intervals, Appendix B biweight, and type 6, parametric, and Huber extensions.

EP29 (measurement uncertainty) — core implemented, with path differences. Type A/B components, IQC, homogeneity, stability, characterization, covariance combination, effective degrees of freedom, general measurement models, delta, Monte Carlo, and stepwise traceability are available. The approximately 6.9%/7.1% difference between the Kragten approximation and analytic delta in EP29 Example 10 is a path difference.

EP30 (reference-material commutability) — core implemented. Prediction intervals, relative residuals, and material classification in EP30 Appendix B can be calculated separately.

EP34 (extended measurement interval) — core implemented. dilution_recovery(), spike_concentration(), spike_recovery(), and hook_effect() calculate dilution, spike recovery, mass balance, and hook effect. The standard requires precision, LoQ, recovery, and hook-effect evidence together; the package does not automatically integrate these into a final EMI decision.

22.3 YY/T 1789.1–1789.6

YY/T 1789.1 (precision) — core implemented. precision() can perform the main calculations for repeatability, within-laboratory precision, and variance components.

YY/T 1789.2 (trueness—method comparison) — core implemented, with explicit algorithm differences. Method comparison, reference-material bias, segmented patient-sample bias, and OLS/WLS/Deming/Passing–Bablok parameters can be calculated. Whether a WLS bias interval is multiplied again by a weighted residual scale, and whether a Deming interval uses analytic covariance or delete-one jackknife, produces different endpoints. These differences affect interval width and decisions at medical decision levels; similar point estimates do not establish complete reproduction.

YY/T 1789.3 (limit of detection/quantitation) — core implemented, with finite-sample algorithm differences. LoB, classical LoD, and parametric/nonparametric paths are available, but the package uses continuous ranks, its own finite-sample coefficients, and pooled SD from raw data. Some standard examples use discrete ranks, displayed SDs, and different coefficients. Intermediate values may differ even when final rounded values are close; the algorithms are not identical.

YY/T 1789.4 (linearity) — partially implemented with model differences. linearity() calculates straight lines, deviations, and allowable limits, but the standard often fits higher-order models to level means and tests higher-order terms, whereas the package’s exploratory polynomial mode is organized at the observation level. Degrees of freedom, residual standard errors, and model-selection evidence differ. There is no dedicated ADL-PctBnd critical-table entry point.

YY/T 1789.5 (interference) — main effects available; standard intervals differ. Paired effects, dose response, patient samples, and cross-reactivity rates can be obtained separately. The standard’s \(B_c\) uses an SD from an external precision study, whereas the package’s paired interval uses observed SD from the current experimental units; the intervals therefore do not have the same decision meaning. The package does not choose interferents, concentrations, or acceptance limits automatically.

YY/T 1789.6 (diagnostic performance) — binary core partly implemented. Four-fold tables, diagnostic sensitivity/specificity, Wilson intervals, and some appendix data can be checked. The standard’s binomial hit-rate verification differs from the continuous internal-response/VFP model required by c5_c95(); they must not be treated as the same C5/C95 algorithm.

22.4 CMDE Guidance Support Level

Quantitative method comparison, bias, ROC, four-fold tables, recovery, precision, detection capability, interference, linearity, stability, reference intervals, and QC-material components in the CMDE guidance can be calculated separately by the corresponding modules. Not implemented or not automated are multicenter and clustered designs, semi-quantitative R×C weighted Kappa, cross-reactivity/inclusivity, grouped Z rules, reference-interval verification, complete measurement-interval evidence synthesis, transport and multi-analyte stability decisions, QC-target transfer, and database/XPT/audit-trail submission workflows.

CMDE support is not equivalent to “a function exists, therefore the study complies.” For example, a recovery function can report recovery for each sample and the mean recovery, but the allowable range and clinical acceptability come from the protocol; method comparison can provide regression and bias, but it does not automatically judge sample representativeness, clinical equivalence, or a registration conclusion.