Skip to contents

Calculates sample size or power for a one-sample proportion test.

Usage

one_prop_size(
  p,
  p0,
  delta = NULL,
  alpha,
  beta = NULL,
  n = NULL,
  test_type = "2-side"
)

Arguments

p

Numeric. True proportion.

p0

Numeric. Null hypothesis proportion.

delta

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

alpha

Numeric. Type I error rate.

beta

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

n

Integer (optional). Sample size. Required for power calculation.

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 n is given).

Note

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

Required arguments by test_type:

  • "2-side"/"1-side:

    • For sample size: p, p0, alpha, beta

    • For power: p, p0, alpha, n

  • "non-inferiority"/"equivalence":

    • For sample size: p, p0, delta, alpha, beta

    • For power: p, p0, sdA, delta, alpha, n

Examples

# Sample size for `"2-side"` test
one_prop_size(p = 0.5, p0 = 0.3,
              alpha = 0.05, beta = 0.2, test_type = "2-side")
#> [1] 50

# Power of `"2-side"` test
one_prop_size(p = 0.5, p0 = 0.3,
              alpha = 0.05, n = 50, test_type = "2-side")
#> [1] 0.8074304

# Sample size for `"1-side"` test
one_prop_size(p = 0.05, p0 = 0.02,
              alpha = 0.05, beta = 0.2, test_type = "1-side")
#> [1] 191

# Power of `"1-sided"` test
one_prop_size(p = 0.05, p0 = 0.02,
              alpha = 0.05, n = 191, test_type = "1-side")
#> [1] 0.8011562

# Sample size for `"non-inferiority"` test
one_prop_size(p = 0.5, p0 = 0.3, delta = -0.1,
              alpha = 0.05, beta = 0.2, test_type = "non-inferiority")
#> [1] 18

# Power of `"non-inferiority"` test
one_prop_size(p = 0.5, p0 = 0.3, delta = -0.1,
              alpha = 0.05, n = 18, test_type = "non-inferiority")
#> [1] 0.8161482

# Sample size for `"equivalence"` test
one_prop_size(p = 0.6, p0 = 0.6, delta = 0.2,
              alpha = 0.05, beta = 0.2, test_type = "equivalence")
#> [1] 52

# Power of `"equivalence"` test
one_prop_size(p = 0.6, p0 = 0.6, delta = 0.2,
              alpha = 0.05, n = 52, test_type = "equivalence")
#> [1] 0.8060834