TOD {binGroup2} | R Documentation |
Summary measures for the Thresholded Optimal Dorfman (TOD) algorithm
Description
Summary measures for the Thresholded Optimal Dorfman (TOD) algorithm.
Usage
TOD(p.vec, Se, Sp, max = 15, init.group.sz = NULL, threshold = NULL)
Arguments
p.vec |
a vector of individual risk probabilities. |
Se |
sensitivity of the diagnostic test. |
Sp |
specificity of the diagnostic test. |
max |
the maximum allowable group size. Further details are given under 'Details'. |
init.group.sz |
the initial group size used for TOD, if threshold is not specified. Further details are given under 'Details'. |
threshold |
the threshold value for TOD. If a threshold is not specified, one is found algorithmically. Further details are given under 'Details'. |
Details
This function finds the characteristics of an informative two-stage hierarchical (Dorfman) decoding process. Characteristics found include the expected expenditure of the decoding process, the variance of the expenditure of the decoding process, and the pooling sensitivity, pooling specificity, pooling positive predictive value, and pooling negative predictive value for each individual and for the overall algorithm. Calculations of these characteristics are done using equations presented in McMahan et al. (2012).
Thresholded Optimal Dorfman (TOD) is an informative Dorfman algorithm in
which all N
individuals are partitioned into two classes, low-risk and
high-risk individuals. The threshold can be specified using the optional
threshold argument. Alternatively, the TOD algorithm can identify
the optimal threshold value. The low-risk individuals are tested using an
optimal common pool size, and the high-risk individuals are tested
individually. If desired, the user can add the constraint of a maximum
allowable group size (max), so that each group will contain no more
than the maximum allowable number of individuals.
The displayed overall pooling sensitivity, pooling specificity, pooling positive predictive value, and pooling negative predictive value are weighted averages of the corresponding individual accuracy measures for all individuals within the initial group (or block) for a hierarchical algorithm, or within the entire array for an array-based algorithm. Expressions for these averages are provided in the Supplementary Material for Hitt et al. (2019). These expressions are based on accuracy definitions given by Altman and Bland (1994a, 1994b).
Value
A list containing:
prob |
the vector of individual risk probabilities, as specified by the user. |
Se |
the sensitivity of the diagnostic test, as specified by the user. |
Sp |
the specificity of the diagnostic test, as specified by the user. |
group.sz |
the initial group size used for TOD, if applicable. |
thresh.val |
the threshold value used for TOD, if applicable. |
OTC |
a list specifying elements of the optimal testing configuration, which may include:
|
ET |
the expected testing expenditure to decode all individuals in the algorithm. |
Var |
the variance of the testing expenditure to decode all individuals in the algorithm. |
Accuracy |
a list containing:
|
Author(s)
Brianna D. Hitt
References
Altman, D., Bland, J. (1994). “Diagnostic tests 1: Sensitivity and specificity.” BMJ, 308, 1552.
Altman, D., Bland, J. (1994). “Diagnostic tests 2: Predictive values.” BMJ, 309, 102.
Hitt, B., Bilder, C., Tebbs, J., McMahan, C. (2019). “The objective function controversy for group testing: Much ado about nothing?” Statistics in Medicine, 38, 4912–4923.
McMahan, C., Tebbs, J., Bilder, C. (2012a). “Informative Dorfman Screening.” Biometrics, 68, 287–296.
See Also
expectOrderBeta
for generating a vector of individual risk
probabilities.
Other operating characteristic functions:
GroupMembershipMatrix()
,
Sterrett()
,
halving()
,
operatingCharacteristics1()
,
operatingCharacteristics2()
Examples
# Example 1: Find the characteristics of an informative
# Dorfman algorithm, using the TOD procedure.
set.seed(1002)
p.vec <- expectOrderBeta(p = 0.01, alpha = 2, size = 20)
TOD(p = p.vec, Se = 0.95, Sp = 0.95, max = 5,
threshold = 0.015)
# Example 2: Find the threshold value for the TOD
# procedure algorithmically. Then, find
# characteristics of the algorithm.
TOD(p = p.vec, Se = 0.95, Sp = 0.95, max = 5,
init.group.sz = 10)