Learn R Programming

BAEssd (version 1.0.1)

ssdFcts: Sample Size Calculations via Bayesian Average Errors

Description

A Bayesian average error based approach to sample size determination. These functions compute the required sample size for various designs common to clinical trials. A specified Total Error rate is maintain and more emphasis can be placed on controlling Average Type-I Error or Type-II Error.

Usage

ssd.binom(alpha, w, logm, minn = 2, maxn = 1000, two.sample = FALSE, all = FALSE, ...) ssd.norm1KV(alpha, w, logm, minn = 2, maxn = 1000, all = FALSE, ...)

Arguments

alpha
Scalar. The bound to maintain on the Total Error rate. Must be a decimal between 0 and 1.
w
Scalar. The weight to be given to Average Type-I Error. Larger values of w control Type-I error rates more. Must be a decimal between 0 and 1.
logm
Function. Computes the log marginal (prior predictive density) under H0 and H1. This function should return a list that contains two components:
logm0
vector giving marginal density under H0.
logm1
vector giving marginal density under H1.
The first parameter of this function should be the observed data. See details for necessary form. The second parameter should be the sample size.
minn, maxn
Scalar. The minimum and maximum sample size to consider.
all
Boolean. If FALSE (default), the function terminates when an acceptable sample size is found or when maxn is reached. If TRUE, the function will only terminate when maxn is reached. This is useful for tracing out the Average Error as a function of sample size.
two.sample
Boolean. If FALSE (default), one sample experiment is assumed. If TRUE, two sample experiment is assumed.
...
Additional parameters to be passed to logm if necessary.

Value

An object of class "BAEssd" which is a list containing the following elements:
call
The call to the function.
history
Dataframe. Contains one row for each sample size considered during the function evaluation. Each row records the sample size attempted, the average type-I and type-II errors, the total weighted error, and the total error.
n
Scalar. The chosen sample size with attributes related to the function call and total error.

Details

Sample size calculations are dependent upon the knowledge of the marginal density under each hypothesis. The function logm should provide these densities. For a one-sample binomial experiment, the first argument of logm should be a vector in which each entry represents a different number of successes out of n independent binary trials. For a two-sample binomial experiment, the first argument of logm should be a matrix, in which each row represents the number of successes for each of the samples out of n indpendent trials. For an example see binom1.1sided. For a one-sample normal experiment with known variance, the first argument shoul be a vector of different sample means. For an example see norm1KV.1sided. In addition, there are a few functions specific to a given situation (or suite); these are
  • ssd.norm1KV.2sided(alpha, w, sigma, theta0, prob, mu, 
          tau, minn = 2, maxn = 1000, all = FALSE)
  • ssd.norm2KV.2sided(alpha, w, sigma, prob, mu0, tau0,
          mu1, tau1, mu2, tau2, m = 2500, minn = 2, maxn = 1000, all = FALSE)
  • ssd.norm1UV.2sided(alpha, w, theta0, prob, mu, scale,
          shape, rate, m = 2500, minn = 3, maxn = 1000, all = FALSE)

The only parameter unique to these functions is

  • m: The number of Monte Carlo replicates to use in computing the average errors.

The logm function is not required as the function is specific to that suite. Instead, various parameters unique to that suite are required. See the corresponding suite for details.

See Also

summary.BAEssd,plot.BAEssd, binom1.1sided,binom1.2sided, binom2.1sided,binom2.2sided, norm1KV.1sided,norm1KV.2sided, norm2KV.2sided,norm1UV.2sided

Examples

Run this code
############################################################
# Computing a sample size for a one-sample binomial
# experiment with a two-sided alternative.

# load suite of functions
f1 <- binom1.2sided(p0=0.5,prob=0.5,a=1,b=1)

# calculate sample size for total error bound of 0.25 and weight 0.5
attach(f1)
ss1 <- ssd.binom(alpha=0.25,w=0.5,logm=logm,two.sample=FALSE)
detach(f1)

# see results
ss1

# examine structure
str(ss1)


############################################################
# Computing a sample size for a one-sample normal
# experiment with a two-sided alternative using the
# functions internal to the suite.

# load suite of functions
f2 <- norm1KV.2sided(sigma=5,theta0=0,prob=0.5,mu=2,tau=1)

# calculate sample size for total error bound of 0.25 and weight 0.5
attach(f2)
ss2 <- ssd.norm1KV.2sided(alpha=0.25,w=0.5)
detach(f2)

# see results
ss2

Run the code above in your browser using DataLab