| implement.MSPRT {MSPRT} | R Documentation |
Implementing the MSPRT
Description
This function implements the MSPRT for a sequentially observed data.
Usage
implement.MSPRT(obs, obs1, obs2, 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,
verbose = T, plot.it = 2)
Arguments
obs |
Numeric vector. The vector of data in the order they are sequentially observed for one-sample tests.
Note: Its length can't exceed the length of |
obs1 |
Numeric vector. The vector of data in the order they are sequentially observed from Group-1 for two-sample tests.
Note: Its length can't exceed the length of |
obs2 |
Numeric vector. The vector of data in the order they are sequentially observed from Group-2 for two-sample tests.
Note: Its length can't exceed the length of |
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 |
verbose |
Logical. If TRUE (default), returns messages of the current proceedings. Otherwise it doesn't. |
plot.it |
0, 1 or 2 (default).
|
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
List. The list has the following named components in case of one-sided one-sample tests:
n |
Positive integer. Number of samples required to reach the decision. |
decision |
Character. The decision reached. The possibilities are |
RejectH0.threshold |
Positive numeric. Threshold for rejecting |
RejectH1.threshold |
Positive numeric. Threshold for accepting |
LR |
Numeric vector. Vector of weighted likelihood ratios (proportion tests) or likelihood ratios (z tests) or Bayes factor (t tests) that are computed at each step of sequential analysis until either a decision is reached or the maximum available number of samples ( |
UMPBT alternative |
This stores the UMPBT alternative(s) as
|
In case of two-sample tests, the n output above is replaced by n1 and n2. They are positive integers and refer to the number of samples from Group-1 and 2 required to reach the decision.
In case of two-sided tests at level of significance \alpha, the MSPRT carries out a right and a left sided test simultaneously at level of significance \alpha/2. In this case the outputs are same as above with following changes in components in the returned list:
LR |
List. It has two components named |
UMPBT or theta.UMPBT |
List with two components named |
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)
### implementation
#set.seed(1)
#theta.gen = 0.5 # change effect size to experiment
#y = rbinom(20, 1, theta.gen)
#implement.oneprop.right = implement.MSPRT(obs = y,
# design.MSPRT.object = design.oneprop.right)
#### left sided ####
### design
#design.oneprop.left = design.MSPRT(test.type = 'oneProp', side = 'left',
# N.max = 20)
### implementation
#set.seed(1)
#theta.gen = 0.5 # change effect size to experiment
#y = rbinom(20, 1, theta.gen)
#implement.oneprop.left = implement.MSPRT(obs = y,
# design.MSPRT.object = design.oneprop.left)
#### both sided ####
### design
#design.oneprop.both = design.MSPRT(test.type = 'oneProp', side = 'both',
# N.max = 20)
### implementation
#set.seed(1)
#theta.gen = 0.5 # change effect size to experiment
#y = rbinom(20, 1, theta.gen)
#implement.oneprop.both = implement.MSPRT(obs = y,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y = rnorm(20, theta.gen, design.onez.right$sigma)
#implement.onez.right = implement.MSPRT(obs = y,
# design.MSPRT.object = design.onez.right)
#### left sided ####
### design
#design.onez.left = design.MSPRT(test.type = 'oneZ', side = 'left',
# N.max = 20)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y = rnorm(20, theta.gen, design.onez.left$sigma)
#implement.onez.left = implement.MSPRT(obs = y,
# design.MSPRT.object = design.onez.left)
#### both sided ####
### design
#design.onez.both = design.MSPRT(test.type = 'oneZ', side = 'both',
# N.max = 20)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y = rnorm(20, theta.gen, design.onez.both$sigma)
#implement.onez.both = implement.MSPRT(obs = y,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y = rnorm(20, theta.gen, 1)
#implement.onet.right = implement.MSPRT(obs = y,
# design.MSPRT.object = design.onet.right)
#### left sided ####
### design
#design.onet.left = design.MSPRT(test.type = 'oneT', side = 'left',
# N.max = 20)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y = rnorm(20, theta.gen, 1)
#implement.onet.left = implement.MSPRT(obs = y,
# design.MSPRT.object = design.onet.left)
#### both sided ####
### design
#design.onet.both = design.MSPRT(test.type = 'oneT', side = 'both',
# N.max = 20)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y = rnorm(20, theta.gen, 1)
#implement.onet.both = implement.MSPRT(obs = y,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y1 = rnorm(20, theta.gen/2, design.twoz.right$sigma1)
#y2 = rnorm(20, -theta.gen/2, design.twoz.right$sigma2)
#implement.twoz.right = implement.MSPRT(obs1 = y1, obs2 = y2,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y1 = rnorm(20, theta.gen/2, design.twoz.left$sigma1)
#y2 = rnorm(20, -theta.gen/2, design.twoz.left$sigma2)
#implement.twoz.left = implement.MSPRT(obs1 = y1, obs2 = y2,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y1 = rnorm(20, theta.gen/2, design.twoz.both$sigma1)
#y2 = rnorm(20, -theta.gen/2, design.twoz.both$sigma2)
#implement.twoz.both = implement.MSPRT(obs1 = y1, obs2 = y2,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y1 = rnorm(20, theta.gen/2, 1)
#y2 = rnorm(20, -theta.gen/2, 1)
#implement.twot.right = implement.MSPRT(obs1 = y1, obs2 = y2,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y1 = rnorm(20, theta.gen/2, 1)
#y2 = rnorm(20, -theta.gen/2, 1)
#implement.twot.left = implement.MSPRT(obs1 = y1, obs2 = y2,
# 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)
### implementation
#set.seed(1)
#theta.gen = 0 # change effect size to experiment
#y1 = rnorm(20, theta.gen/2, 1)
#y2 = rnorm(20, -theta.gen/2, 1)
#implement.twot.both = implement.MSPRT(obs1 = y1, obs2 = y2,
# design.MSPRT.object = design.twot.both)