Skip to contents

Calculates sample size or power for a two-sample mean test.

Usage

two_mean_size(
  muA,
  muB,
  delta = NULL,
  kappa = 1,
  sd = NULL,
  sdA = NULL,
  sdB = NULL,
  alpha,
  beta = NULL,
  nA = NULL,
  nB = NULL,
  test_type = "2-side"
)

Arguments

muA

Numeric. True mean of group A.

muB

Numeric. True mean of group B.

delta

Numeric (optional). Margin for "non-inferiority" or "equivalence test". Required for "non-inferiority" or "equivalence" test.

kappa

Numeric. Ratio of sample sizes (nA/nB). Default is 1.

sd

Numeric (optional). Standard deviation. Required for "2-side", "non-inferiority" or "equivalence" test.

sdA

Numeric (optional). Standard deviation of group A. Required for "1-side" test.

sdB

Numeric (optional). Standard deviation of group B. Required for "1-side" test.

alpha

Numeric. Type I error rate.

beta

Numeric (optional). Type II error rate. Required for sample size calculation.

nA

Integer (optional). Sample size for group A. Required for power calculation of "1-side" test.

nB

Integer (optional). Sample size for group B. Required for power calculation of "2-side", "non-inferiority" or "equivalence" test.

test_type

Character. "2-side", "1-side", "non-inferiority", or "equivalence". Default is "2-side".

Value

Numeric. Returns sample size (if beta is given), or power (if nA/nB is given).

Note

Only one of beta (for sample size calculation) or nA/nB (for power calculation) should be specified.

Required arguments by test_type:

  • "2-side":

    • For sample size: muA, muB, sd, alpha, beta

    • For power: muA, muB, sd, alpha, nB

  • "1-side":

    • For sample size: muA, muB, sdA, sdB, alpha, beta

    • For power: muA, muB, sdA, sdB, alpha, nA

  • "non-inferiority"/"equivalence":

    • For sample size: muA, muB, delta, sd, alpha, beta

    • For power: muA, muB, delta, sd, alpha, nB

Examples

# Sample size for `"2-side"` test
two_mean_size(muA = 5, muB = 10, kappa = 1, sd = 10,
              alpha = 0.05, beta = 0.2, test_type = "2-side")
#> [1] 63

# Power of `"2-side"` test
two_mean_size(muA = 5, muB = 10, kappa = 1, sd = 10,
              alpha = 0.05, nB = 63, test_type = "2-side")
#> [1] 0.8013024

# Sample size for `"1-side"` test
two_mean_size(muA = 132.86, muB = 127.44, kappa = 2, sdA = 15.34, sdB = 18.23,
              alpha = 0.05, beta = 0.2, test_type = "1-side")
#> [1] 85

# Power of `"1-sided"` test
two_mean_size(muA = 132.86, muB = 127.44, kappa = 2, sdA = 15.34, sdB = 18.23,
              alpha = 0.05, nA = 85, test_type = "1-side")
#> [1] 0.8020669

# Sample size for `"non-inferiority"` test
two_mean_size(muA = 5, muB = 5, delta = 5, kappa = 1, sd = 10,
              alpha = 0.05, beta = 0.2, test_type = "non-inferiority")
#> [1] 50

# Power of `"non-inferiority"` test
two_mean_size(muA = 5, muB = 5, delta = 5, kappa = 1, sd = 10,
              alpha = 0.05, nB = 50, test_type = "non-inferiority")
#> [1] 0.8037819

# Sample size for `"equivalence"` test
two_mean_size(muA = 5, muB = 4, delta = 5, kappa = 1, sd = 10,
              alpha = 0.05, beta = 0.2, test_type = "equivalence")
#> [1] 108

# Power of `"equivalence"` test
two_mean_size(muA = 5, muB = 4, delta = 5, kappa = 1, sd = 10,
              alpha = 0.05, nB = 108, test_type = "equivalence")
#> [1] 0.8045235