Skip to contents

Determine the necessary per-group sample size to achieve a desired level of statistical power for the test of a single planned (unstandardized) contrast on the adjusted means in a one-way analysis of covariance, or, given a per-group sample size, return the realized statistical power.

Usage

ss_power_c_ancova(
  psi,
  c_weights,
  sigma,
  rho,
  desired_power = 0.85,
  alpha_level = 0.05,
  n = NULL,
  directional = FALSE
)

Arguments

psi

The population unstandardized contrast effect on the adjusted means, \(\psi = \sum c_j \mu^{(adj)}_j\)

c_weights

Vector of contrast weights (must sum to zero); use fractional weights so the positive weights sum to 1

sigma

Within-group population standard deviation of the response (the same \(\sigma\) as in a one-way ANOVA on the response)

rho

Within-group population correlation between the response and the covariate; must lie in (-1, 1)

desired_power

Desired statistical power (default 0.85)

alpha_level

Type I error rate (default 0.05)

n

Per-group sample size (assumed balanced); if specified, returns the realized power

directional

Logical: TRUE for a one-sided test (in the same sign as psi), FALSE (default) for a two-sided test

Value

A data.frame with rows for necessary_n_per_group (or specified_n_per_group), actual_power, and noncentral_t_parm. The result carries the dmar_ss_power class, so tidy and glance summarize it in broom convention.

Details

This function uses the standard large-sample formulation in which the ANCOVA error variance is \(\sigma^2_{adj} = \sigma^2 (1 - \rho^2)\), the contrast t-statistic has degrees of freedom \(N - J - 1\) (one less than the corresponding ANOVA contrast because of the covariate), and the noncentrality parameter is \(\lambda = \psi / (\sigma \sqrt{1 - \rho^2} \sqrt{\sum c_j^2 / n})\). This assumes the covariate means are equal across groups (the typical assumption under random assignment); for designs with substantial group differences in the covariate, the small-sample correction \(1 + (\bar X_{j} - \bar X_{\cdot})^2 / SS^{(within)}_X\) would slightly inflate the standard error and reduce power, an effect that is negligible for moderate or large \(n\).

References

Maxwell, S. E., Delaney, H. D., & Kelley, K. (2027). Designing experiments and analyzing data: A model comparison perspective (4th ed.). Routledge.

Lai, K., & Kelley, K. (2012). Accuracy in parameter estimation for ANCOVA and ANOVA contrasts: Sample size planning via narrow confidence intervals. British Journal of Mathematical and Statistical Psychology, 65, 350–370. doi:10.1111/j.2044-8317.2011.02029.x

Author

Ken Kelley kkelley@nd.edu

Examples

# Same population contrast as in the ANOVA example, with rho = 0.5 between
# outcome and covariate; ANCOVA is more efficient than ANOVA here.
ss_power_c_ancova(psi = 0.5, c_weights = c(0.5, 0.5, -0.5, -0.5),
                  sigma = 1, rho = 0.5, desired_power = 0.80)
#>  term                  value
#>  necessary_n_per_group 25   
#>  actual_power          0.815
#>  noncentral_t_parm     2.89 

# Realized power for n = 30 per group
ss_power_c_ancova(psi = 0.5, c_weights = c(0.5, 0.5, -0.5, -0.5),
                  sigma = 1, rho = 0.5, n = 30)
#>  term                  value
#>  specified_n_per_group 30   
#>  actual_power          0.88 
#>  noncentral_t_parm     3.16