pooling_mc {mMPA} | R Documentation |
Monte Carlo Simulation for Estimating the Number of Assays Required when Using Pooled Testing
Description
This function uses Monte Carlo (MC) to simulate different orders in
which the samples would be collected to form pools. Unlike the
function minipool
, mpa
, and mmpa
that calculate
the number of assays
needed for pools that are formed following the exact order
of the samples that are listed in the data, this function
pooling_mc
permutes the data many (perm_num
) times
so as to estimate the average number of
assays required (ATR) per individual. Using MC avoids the dependence
on any
specific ordering of forming pools.
Usage
pooling_mc(v, s = NULL, K = 5, vf_cut = 1000, lod = 0,
method = "mmpa", perm_num = 100, msg = F)
Arguments
v |
A vector of non-negative numerical assay results. |
s |
A vector of risk scores; |
K |
Pool size; default is |
vf_cut |
Cutoff value for defining positive cases;
default is |
lod |
A vector of lower limits of detection or a scalar if the limits are the
same; default is |
method |
Method that is used for pooled testing; must be one of |
perm_num |
The number of permutation to be used for the calculation;
default is |
msg |
Message generated during calculation; default is |
Value
The outcome is a matrix of dimension num_pool
by perm_num
.
The row number is the number of pools (num_pool
) from each permutation
of the data, which is
determined by the sample size N
and pool size K
; num_pool
= N%/%K
. The column number is the number of
permutations (num_pool
).
References
Liu T, Hogan JW, Daniels, MJ, Coetzer M, Xu Y, Bove G, et al. Improved HIV-1 Viral Load Monitoring Capacity Using Pooled Testing with Marker-Assisted Deconvolution. Journal of AIDS. 2017;75(5): 580-587.
Bilder CR, Tebbs JM, Chen P. Informative retesting. Journal of the American Statistical Association. 2010;105(491):942-955.
May S, Gamst A, Haubrich R, Benson C, Smith DM. Pooled nucleic acid testing to identify antiretroviral treatment failure during HIV infection. Journal of Acquired Immune Deficiency Syndromes. 2010;53(2):194-201.
Dorfman R. The detection of defective members of large populations. The Annals of Mathematical Statistics. 1943;14(4):436-440.
See Also
Examples
### sample size = 300
n = 300;
set.seed(100)
pvl = rgamma(n, shape = 2.8, scale = 150)
summary(pvl)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 53 225 392 424 564 1373
riskscore = (rank(pvl)/n) * 0.5 + runif(n) * 0.5
cor(pvl, riskscore, method = "spearman")
# [1] 0.69
### Pool size K is set to 5
K=5;
### so, the number of pools = 60
n.pool = n/K; n.pool
# [1] 60
foo = pooling_mc(pvl, riskscore, perm_num = 100)
### Average number of assays needed per pool for each of the 100
### permutations of the data
apply(foo, 2, mean)
# [1] 3.43 3.33 3.35 3.47 3.37 3.33 3.37 3.27 3.43 3.28 3.32 3.35 3.35 3.37
# [15] 3.38 3.37 3.30 3.43 3.28 3.38 3.42 3.35 3.35 3.48 3.30 3.47 3.40 3.35
# [29] 3.25 3.30 3.38 3.43 3.25 3.45 3.35 3.33 3.42 3.38 3.40 3.33 3.32 3.38
# [43] 3.33 3.37 3.37 3.33 3.35 3.38 3.38 3.30 3.30 3.33 3.37 3.32 3.30 3.40
# [57] 3.37 3.42 3.30 3.37 3.38 3.32 3.45 3.38 3.37 3.50 3.33 3.40 3.28 3.37
# [71] 3.23 3.33 3.23 3.42 3.32 3.32 3.45 3.35 3.32 3.32 3.33 3.33 3.30 3.38
# [85] 3.37 3.33 3.33 3.20 3.37 3.33 3.30 3.40 3.40 3.32 3.33 3.37 3.40 3.38
# [99] 3.30 3.33
### Estimated average number of assays needed per pool
mean(foo)
# 3.35
### Estimated average number of assays needed per individual
mean(foo)/K
# [1] 0.67