NI.A2M {binGroup} | R Documentation |
Find the optimal testing configuration for non-informative array testing with master pooling
Description
Find the optimal testing configuration for non-informative array testing with master pooling and calculate the associated operating characteristics.
Usage
NI.A2M(p, Se, Sp, group.sz, obj.fn, weights = NULL)
Arguments
p |
the probability of disease, which can be specified as an overall probability of disease or a homogeneous vector of individual probabilities. |
Se |
the sensitivity of the diagnostic test. |
Sp |
the specificity of the diagnostic test. |
group.sz |
a single group size (representing the row/column size) for which to calculate the operating characteristics, or a range of group (row/column) sizes over which to find the OTC. |
obj.fn |
a list of objective functions which are minimized to find the OTC. The expected number of tests per individual, "ET", will always be calculated. Additional options include "MAR" (the expected number of tests divided by the expected number of correct classifications, described in Malinovsky et al. (2016)), and "GR" (a linear combination of the expected number of tests, the number of misclassified negatives, and the number of misclassified positives, described in Graff & Roeloffs (1972)). See Hitt et al. (2018) at http://chrisbilder.com/grouptesting for additional details. |
weights |
a matrix of up to six sets of weights for the GR function. Each set of weights is specified by a row of the matrix. |
Details
This function finds the OTC and computes the associated operating characteristics for non-informative array testing with master pooling. Array testing with master pooling involves testing all specimens in the array together in one group before any row or column groups are formed. This function uses only square arrays, which is the way array-based group testing is carried out in most real-world applications. Operating characteristics calculated are expected number of tests, pooling sensitivity, pooling specificity, pooling positive predictive value, and pooling negative predictive value for the algorithm. See Hitt et al. (2018) at http://chrisbilder.com/grouptesting or Kim et al. (2007) for additional details on the implementation of non-informative array testing with master pooling.
The value(s) specified by group.sz represent the row/column size, which is used for the second stage of testing after the entire array is tested together in one group. If a single value is provided for group.sz, operating characteristics will be calculated and no optimization will be performed. If a range of group sizes is specified, the OTC will be found over all group sizes.
The displayed 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 for a hierarchical algorithm. Expressions for these averages are provided in the Supplementary Material for Hitt et al. (2018). These expressions are based on accuracy definitions given by Altman and Bland (1994a, 1994b).
Value
A list containing:
prob |
the probability of disease, as specified by the user. |
Se |
the sensitivity of the diagnostic test. |
Sp |
the specificity of the diagnostic test. |
opt.ET , opt.MAR , opt.GR |
a list for each objective function specified by the user, containing:
|
Note
This function returns the pooling positive and negative predictive values for all individuals in the array even though these measures are diagnostic specific; i.e., PPV (NPV) should only be considered for those individuals who have tested positive (negative).
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.
Graff, L., Roeloffs, R. (1972). “Group testing in the presence of test error; an extension of the Dorfman procedure.” Technometrics, 14(1), 113–122. ISSN 15372723, doi: 10.1080/00401706.1972.10488888, https://www.tandfonline.com/doi/abs/10.1080/00401706.1972.10488888.
Hitt, B., Bilder, C., Tebbs, J., McMahan, C. (2018). “The Optimal Group Size Controversy for Infectious Disease Testing: Much Ado About Nothing?!” Manuscript submitted for publication.
Kim, H., Hudgens, M., Dreyfuss, J., Westreich, D., Pilcher, C. (2007). “Comparison of group testing algorithms for case identification in the presence of test error.” Biometrics, 63(4), 1152–1163. ISSN 0006341X, doi: 10.1111/j.1541-0420.2007.00817.x.
Malinovsky, Y., Albert, P., Roy, A. (2016). “Reader reaction: A note on the evaluation of group testing algorithms in the presence of misclassification.” Biometrics, 72(1), 299–302. ISSN 15410420, doi: 10.1111/biom.12385.
See Also
NI.Array
for non-informative array testing without master
pooling, Inf.Array
for informative array testing without
master pooling, and OTC
for finding the optimal testing
configuration for a number of standard group testing algorithms.
http://chrisbilder.com/grouptesting
Other OTC functions: Inf.Array
,
Inf.D3
, Inf.Dorf
,
NI.Array
, NI.D3
,
NI.Dorf
, OTC
Examples
# Find the OTC for non-informative array testing with
# master pooling over a range of group (row/column) sizes.
# This example takes approximately 1 second to run.
# Estimated running time was calculated using a
# computer with 16 GB of RAM and one core of an
# Intel i7-6500U processor.
NI.A2M(p=0.04, Se=0.95, Sp=0.95, group.sz=3:10,
obj.fn=c("ET", "MAR"))
# Calculate the operating characteristics for a specified
# group (row/column) size for non-informative array
# testing with master pooling.
# This example takes less than 1 second to run.
# Estimated running time was calculated using a
# computer with 16 GB of RAM and one core of an
# Intel i7-6500U processor.
NI.A2M(p=rep(0.01, 64), Se=0.90, Sp=0.90, group.sz=8,
obj.fn=c("ET", "MAR", "GR"),
weights=matrix(data=c(1,1,10,10),
nrow=2, ncol=2, byrow=TRUE))