Skip to contents

The oc1S function defines a 1 sample design (prior, sample size, decision function) for the calculation of the frequency at which the decision is evaluated to 1 conditional on assuming known parameters. A function is returned which performs the actual operating characteristics calculations.

Usage

oc1S(prior, n, decision, ...)

# S3 method for class 'betaMix'
oc1S(prior, n, decision, ...)

# S3 method for class 'normMix'
oc1S(prior, n, decision, sigma, eps = 1e-06, ...)

# S3 method for class 'gammaMix'
oc1S(prior, n, decision, eps = 1e-06, ...)

Arguments

prior

Prior for analysis.

n

Sample size for the experiment.

decision

One-sample decision function to use; see decision1S.

...

Optional arguments.

sigma

The fixed reference scale. If left unspecified, the default reference scale of the prior is assumed.

eps

Support of random variables are determined as the interval covering 1-eps probability mass. Defaults to \(10^{-6}\).

Value

Returns a function with one argument theta which calculates the frequency at which the decision function is evaluated to 1 for the defined 1 sample design. Note that the returned function takes vectors arguments.

Details

The oc1S function defines a 1 sample design and returns a function which calculates its operating characteristics. This is the frequency with which the decision function is evaluated to 1 under the assumption of a given true distribution of the data defined by a known parameter \(\theta\). The 1 sample design is defined by the prior, the sample size and the decision function, \(D(y)\). These uniquely define the decision boundary, see decision1S_boundary.

When calling the oc1S function, then internally the critical value \(y_c\) (using decision1S_boundary) is calculated and a function is returns which can be used to calculated the desired frequency which is evaluated as

$$ F(y_c|\theta). $$

Methods (by class)

  • oc1S(betaMix): Applies for binomial model with a mixture beta prior. The calculations use exact expressions.

  • oc1S(normMix): Applies for the normal model with known standard deviation \(\sigma\) and a normal mixture prior for the mean. As a consequence from the assumption of a known standard deviation, the calculation discards sampling uncertainty of the second moment. The function oc1S has an extra argument eps (defaults to \(10^{-6}\)). The critical value \(y_c\) is searched in the region of probability mass 1-eps for \(y\).

  • oc1S(gammaMix): Applies for the Poisson model with a gamma mixture prior for the rate parameter. The function oc1S takes an extra argument eps (defaults to \(10^{-6}\)) which determines the region of probability mass 1-eps where the boundary is searched for \(y\).

See also

Other design1S: decision1S(), decision1S_boundary(), pos1S()

Examples


# non-inferiority example using normal approximation of log-hazard
# ratio, see ?decision1S for all details
s <- 2
flat_prior <- mixnorm(c(1,0,100), sigma=s)
nL <- 233
theta_ni <- 0.4
theta_a <- 0
alpha <- 0.05
beta  <- 0.2
za <- qnorm(1-alpha)
zb <- qnorm(1-beta)
n1 <- round( (s * (za + zb)/(theta_ni - theta_a))^2 )
theta_c <- theta_ni - za * s / sqrt(n1)

# standard NI design
decA <- decision1S(1 - alpha, theta_ni, lower.tail=TRUE)

# double criterion design
# statistical significance (like NI design)
dec1 <- decision1S(1-alpha, theta_ni, lower.tail=TRUE)
# require mean to be at least as good as theta_c
dec2 <- decision1S(0.5, theta_c, lower.tail=TRUE)
# combination
decComb <- decision1S(c(1-alpha, 0.5), c(theta_ni, theta_c), lower.tail=TRUE)

theta_eval  <- c(theta_a, theta_c, theta_ni)

# evaluate different designs at two sample sizes
designA_n1  <- oc1S(flat_prior, n1, decA)
#> Using default prior reference scale 2
designA_nL  <- oc1S(flat_prior, nL, decA)
#> Using default prior reference scale 2
designC_n1  <- oc1S(flat_prior, n1, decComb)
#> Using default prior reference scale 2
designC_nL  <- oc1S(flat_prior, nL, decComb)
#> Using default prior reference scale 2

# evaluate designs at the key log-HR of positive treatment (HR<1),
# the indecision point and the NI margin

designA_n1(theta_eval)
#> [1] 0.80084529 0.49980774 0.04995032
designA_nL(theta_eval)
#> [1] 0.92039728 0.64489439 0.04997268
designC_n1(theta_eval)
#> [1] 0.80084529 0.49980774 0.04995032
designC_nL(theta_eval)
#> [1] 0.84991646 0.49995959 0.02185859

# to understand further the dual criterion design it is useful to
# evaluate the criterions separatley:
# statistical significance criterion to warrant NI...
designC1_nL <- oc1S(flat_prior, nL, dec1)
#> Using default prior reference scale 2
# ... or the clinically determined indifference point
designC2_nL <- oc1S(flat_prior, nL, dec2)
#> Using default prior reference scale 2

designC1_nL(theta_eval)
#> [1] 0.92039728 0.64489439 0.04997268
designC2_nL(theta_eval)
#> [1] 0.84991646 0.49995959 0.02185859

# see also ?decision1S_boundary to see which of the two criterions
# will drive the decision