boot.power.anova {powerbydesign}R Documentation

Bootstrap the Power of an ANOVA Design

Description

This function bootstraps the power of each effect in an ANOVA design for a given range of sample sizes. Power is computed by randomly drawing samples from a multivariate normal distribution specified according to the values supplied by the design.anova object. Power is defined as the proportion of bootstrap iterations the p-values of each effect lie below the supplied alpha level. Note that this function runs many ANOVAs which might be slow for large sample size ranges or bootstrap iterations (see Details below). Further note that this function does not check for assumptions such as sphericity.

Usage

boot.power.anova(design, n_from, n_to, num_iterations_bootstrap, alpha = 0.05)

Arguments

design

object of type design.anova

n_from

numeric, lower boundary of sample size range (inclusive) ; Refers to N per between condition

n_to

numeric, upper boundary of sample size range (inclusive) ; Refers to N per between condition

num_iterations_bootstrap

numeric, number of bootstrap iterations for each sample size

alpha

numeric, alpha level

Details

Note that this function requires the computation of many ANOVAs and therefore becomes slow with increasing sample size ranges and bootstrap iterations. It is therefore suggested to first use a very low number of bootstrap iterations, such as 10, in order to determine a sensible sample size range for the power of interest. Once done, use this small sample size range and dramatically increase the bootstrap iterations, such as 3000, in order to determine more reliable power estimates. Because the power-by-samplesize function is monotonically increasing, a zigzag of power values with increasing sample sizes indicates that the selected bootstrap iterations are too low.

Value

list containing power-by-samplesize data.frames for each effect

See Also

design.anova, plot.power_by_samplesize

Examples

## Not run: 
design <- design.anova(
   between = list(age = c("young","old"),
                  sex = c("male","female")),
   within = list(condition = c("cond1","cond2","cond3")),
   default_within_correlation = 0.7
)

power_by_samplesize <- boot.power.anova(
   design,
   n_from = 40,
   n_to = 60,
   num_iterations_bootstrap = 1000
)

plot(power_by_samplesize,
     crit_power = 0.9,
     plot_dir = "power_plots")

## End(Not run)


[Package powerbydesign version 1.0.5 Index]