deriveCx {VFP} | R Documentation |
Determine C5 and C95 or any Concentration Cx.
Description
This function makes use of a precision profile. The concentration is sought at which 100 * 'Cx'% of the measurements lie above 'cutoff' theoretically as each X-value corresponds to a normal distribution with mean=X and SD as read off the precision profile. In case of e.g. "C5" exactly 5% will be above cutoff, whereas for "C95" 95% will be larger than cutoff. This follows the CLSI EP12 guideline whenever an internal continuous result (ICR) is available and measurement imprecision can be assumed to be normally distributed. The CLSI EP12 recommends to base derivation of C5 and C95 on the results of intermediate precision analyses using multiple samples. This includes between-day and between-run as additional variance components besides repeatability.
Usage
deriveCx(
vfp,
model.no = NULL,
start = NULL,
cutoff = NULL,
Cx = 0.05,
tol = 1e-06,
plot = FALSE
)
Arguments
vfp |
(VFP) object representing a precision profile to be used |
model.no |
(integer) specifying which model to use, if NULL the "best" model will be used automatically |
start |
(numeric) start concentration, e.g. for C5 smaller than r, for C95 larger than R |
cutoff |
(numeric) the cutoff of to be used |
Cx |
(numeric) the probability, e.g. for C5 use 0.05 and for C95 use 0.95 |
tol |
(numeric) tolerance value determining when the iterative bisections search can terminate, i.e. when the difference becomes smalle enough |
plot |
(logical) TRUE = plot the result |
Value
(numeric) Mean and SD of concentration Cx
Author(s)
Andre Schuetzenmeister andre.schuetzenmeister@roche.com
Examples
## Not run:
# perform variance component analysis
library(VCA)
data(VCAdata1)
# perform VCA-anaylsis
lst <- anovaVCA(y~(device+lot)/day/run, VCAdata1, by="sample")
# transform list of VCA-objects into required matrix
mat <- getMat.VCA(lst) # automatically selects "total"
mat
# fit all models batch-wise
res <- fit.vfp(model.no=1:10, Data=mat)
# now search for the C5 concentration
deriveCx(res, start=15, cutoff=20, Cx=0.05, plot=TRUE)
deriveCx(res, start=25, cutoff=20, Cx=0.95, plot=TRUE)
deriveCx(res, start=25, cutoff=20, Cx=0.25, plot=TRUE)
deriveCx(res, start=25, cutoff=20, Cx=0.75, plot=TRUE)
#
p <- c(seq(.01, .12, .01), seq(.15, .85, .05), seq(.88, .99, .01))
system.time(x <- deriveCx(res, Cx=p, cutoff=20))
## End(Not run)