| OCandASN.MSPRT {MSPRT} | R Documentation |
Operating characteristics (OC) and Average Sample Number (ASN) of a designed MSPRT
Description
This function obtains the operating characteristics, that is the probability of accepting H_0 and the sample size required on average for reaching a decision, for a designed MSPRT at the specified effect size(s).
Usage
OCandASN.MSPRT(theta, design.MSPRT.object,
termination.threshold, test.type, side = "right",
theta0, Type1.target = 0.005, Type2.target = 0.2,
N.max, N1.max, N2.max,
sigma = 1, sigma1 = 1, sigma2 = 1,
batch.size, batch1.size, batch2.size,
nReplicate = 1e+06, nCore = max(1, detectCores() - 1),
verbose = T, seed = 1)
Arguments
theta |
Numeric vector. Vector of effect size(s) where the operating characteristics of the MSPRT is desired. |
design.MSPRT.object |
List. The output returned from |
termination.threshold |
Positive numeric. Termination threshold of the designed MSPRT. |
test.type |
Same as in |
side |
Same as in |
theta0 |
Same as in |
Type1.target |
Same as in |
Type2.target |
Same as in |
N.max |
Same as in |
N1.max |
Same as in |
N2.max |
Same as in |
sigma |
Same as in |
sigma1 |
Same as in |
sigma2 |
Same as in |
batch.size |
Same as in |
batch1.size |
Same as in |
batch2.size |
Same as in |
nReplicate |
Positive integer. Total number of replications to be used in Monte Carlo simulation for calculating the termination threshold and the operating characteristics of the MSPRT. Default: 1,000,000. |
verbose |
Logical. If |
nCore |
Positive integer. Total number of cores available for computation. Can be anything Default: |
seed |
Integer. Random number generating seed. Default: 1. |
Details
If design.MSPRT.object is provided, one can only additionally provide nReplicate, nCore, verbose and seed (Easier option). Otherwise, just like in design.MSPRT, all the other arguments together with termination.threshold (obtained from design.MSPRT) needs to be provided adequately.
Value
Data frame.
One-sample tests: The data frame has 3 columns named
theta,acceptH0.probandEN, and the number of rows equals to the number of effect sizes (length oftheta) where the operating characteristics are evaluated. Each row corresponds to a particular value of theta (effect size). The columns respectively contain the value of a particular theta (effect size), and the probability of accepting the $H_0$ and the average sample size required by the MSPRT for reaching a decision thereat.Two-sample tests: The data frame has 4 columns named
theta,acceptH0.prob,EN1andEN2, and the number of rows equals to the number of effect sizes (length oftheta) where the operating characteristics are evaluated. Each row corresponds to a particular value of theta (effect size). The columns respectively contain the value of a particular theta (effect size), and the probability of accepting theH_0at that effect size, and the average sample size from Group-1 & 2 that is required by the MSPRT for reaching a decision thereat.
Author(s)
Sandipan Pramanik, Valen E. Johnson and Anirban Bhattacharya
References
Pramanik S., Johnson V. E. and Bhattacharya A. (2020+). A Modified Sequential Probability Ratio Test. [Arxiv]
Examples
#################### one-sample proportion test ####################
#### right sided ####
### design
#design.oneprop.right <- design.MSPRT(test.type = 'oneProp', side = 'right',
# N.max = 20)
### OC and ASN
#OC.oneprop.right <- OCandASN.MSPRT(theta = seq(design.oneprop.right$theta0, 1,
# length.out = 3),
# design.MSPRT.object = design.oneprop.right)
#### left sided ####
### design
#design.oneprop.left = design.MSPRT(test.type = 'oneProp', side = 'left',
# N.max = 20)
### OC and ASN
#OC.oneprop.left = OCandASN.MSPRT(theta = seq(0, design.oneprop.right$theta0,
# length.out = 3),
# design.MSPRT.object = design.oneprop.left)
#### both sided ####
### design
#design.oneprop.both = design.MSPRT(test.type = 'oneProp', side = 'both',
# N.max = 20)
### OC and ASN
#OC.oneprop.both = OCandASN.MSPRT(theta = seq(0, 1, length.out = 3),
# design.MSPRT.object = design.oneprop.both)
#################### one-sample z test ####################
#### right sided ####
### design
#design.onez.right = design.MSPRT(test.type = 'oneZ', side = 'right',
# N.max = 20)
### OC and ASN
#OC.onez.right = OCandASN.MSPRT(theta = seq(design.onez.right$theta0,
# design.onez.right$theta0 + 3*design.onez.right$sigma,
# length.out = 3),
# design.MSPRT.object = design.onez.right)
#### left sided ####
### design
#design.onez.left = design.MSPRT(test.type = 'oneZ', side = 'left',
# N.max = 20)
### OC and ASN
#OC.onez.left = OCandASN.MSPRT(theta = seq(design.onez.left$theta0 - 3*design.onez.left$sigma,
# design.onez.left$theta0,
# length.out = 3),
# design.MSPRT.object = design.onez.left)
#### both sided ####
### design
#design.onez.both = design.MSPRT(test.type = 'oneZ', side = 'both',
# N.max = 20)
### OC and ASN
#OC.onez.both = OCandASN.MSPRT(theta = seq(design.onez.both$theta0 - 3*design.onez.both$sigma,
# design.onez.both$theta0 + 3*design.onez.both$sigma,
# length.out = 3),
# design.MSPRT.object = design.onez.both)
#################### one-sample t test ####################
#### right sided ####
### design
#design.onet.right = design.MSPRT(test.type = 'oneT', side = 'right',
# N.max = 20)
### OC and ASN
#OC.onet.right = OCandASN.MSPRT(theta = seq(design.onet.right$theta0, 1,
# length.out = 3),
# design.MSPRT.object = design.onet.right)
#### left sided ####
### design
#design.onet.left = design.MSPRT(test.type = 'oneT', side = 'left',
# N.max = 20)
### OC and ASN
#OC.onet.left = OCandASN.MSPRT(theta = seq(-1, design.onet.left$theta0,
# length.out = 3),
# design.MSPRT.object = design.onet.left)
#### both sided ####
### design
#design.onet.both = design.MSPRT(test.type = 'oneT', side = 'both',
# N.max = 20)
### OC and ASN
#OC.onet.both = OCandASN.MSPRT(theta = seq(-1, 1, length.out = 3),
# design.MSPRT.object = design.onet.both)
#################### two-sample z test ####################
#### right sided ####
### design
#design.twoz.right = design.MSPRT(test.type = 'twoZ', side = 'right',
# N1.max = 20, N2.max = 20)
### OC and ASN
#OC.twoz.right = OCandASN.MSPRT(theta = seq(design.twoz.right$theta0,
# design.twoz.right$theta0 + 2,
# length.out = 3),
# design.MSPRT.object = design.twoz.right)
#### left sided ####
### design
#design.twoz.left = design.MSPRT(test.type = 'twoZ', side = 'left',
# N1.max = 20, N2.max = 20)
### OC and ASN
#OC.twoz.left = OCandASN.MSPRT(theta = seq(design.twoz.left$theta0 - 2,
# design.twoz.left$theta0,
# length.out = 3),
# design.MSPRT.object = design.twoz.left)
#### both sided ####
### design
#design.twoz.both = design.MSPRT(test.type = 'twoZ', side = 'both',
# N1.max = 20, N2.max = 20)
### OC and ASN
#OC.twoz.both = OCandASN.MSPRT(theta = seq(design.twoz.both$theta0 - 2,
# design.twoz.both$theta0 + 2,
# length.out = 3),
# design.MSPRT.object = design.twoz.both)
#################### two-sample t test ####################
#### right sided ####
### design
#design.twot.right = design.MSPRT(test.type = 'twoT', side = 'right',
# N1.max = 20, N2.max = 20)
### OC and ASN
#OC.twot.right = OCandASN.MSPRT(theta = seq(design.twot.right$theta0,
# design.twot.right$theta0 + 2,
# length.out = 3),
# design.MSPRT.object = design.twot.right)
#### left sided ####
### design
#design.twot.left = design.MSPRT(test.type = 'twoT', side = 'left',
# N1.max = 20, N2.max = 20)
### OC and ASN
#OC.twot.left = OCandASN.MSPRT(theta = seq(design.twot.left$theta0 - 2,
# design.twot.left$theta0,
# length.out = 3),
# design.MSPRT.object = design.twot.left)
#### both sided ####
### design
#design.twot.both = design.MSPRT(test.type = 'twoT', side = 'both',
# N1.max = 20, N2.max = 20)
### OC and ASN
#OC.twot.both = OCandASN.MSPRT(theta = seq(design.twot.both$theta0 - 2,
# design.twot.both$theta0 + 2,
# length.out = 3),
# design.MSPRT.object = design.twot.both)