pwr4exp
supports statistical power calculations for diverse experimental designs analyzed using linear mixed models.
It provides approximate F-tests for omnibus hypothesis tests and t-tests for specific contrasts, employing the Satterthwaite method for approximating degrees of freedom.
Various correlation structures (R-side) defined in the nlme
package can be used to model residuals.
# You can install pwr4exp from CRAN install.packages("pwr4exp") # Or the development version from GitHub: # install.packages("devtools") devtools::install_github("an-ethz/pwr4exp")
# Load the library library(pwr4exp)
Performing a power analysis in pwr4exp
involves two main steps:
mkdesign
is the most flexible function for defining an experimental design based on its data structure, statistical model, treatment effects, and variance-covariance components.
For example, the following code defines a completely randomized design with repeated measures:
# Create a data frame reflecting the data structure n_trt = 3 # Number of treatments trt = c("CON", "TRT1", "TRT2") n_subject = 6 # Number of subjects per treatment n_hour = 8 # Number of repeated measures (time points) df.rep <- data.frame( subject = as.factor(rep(seq_len(n_trt*n_subject), each = n_hour)), hour = as.factor(rep(seq_len(n_hour), n_subject*n_trt)), trt = rep(trt, each = n_subject*n_hour) ) # Create the design object crd.rep <- mkdesign( formula = ~ trt*hour, # model data = df.rep, # a data frame reflecting the data structure # treatment means at each hour reflecting effects means = c(1, 2.50, 3.5, 1, 3.50, 4.54, 1, 3.98, 5.80, 1, 4.03, 5.4, 1, 3.68, 5.49, 1, 3.35, 4.71, 1, 3.02, 4.08, 1, 2.94, 3.78), sigma2 = 2, # residual variance # residual correlation structure, AR1 correlation = corAR1(value = 0.6, form = ~ hour|subject) )
pwr4exp
also provides functions for some common standard designs, allowing a design to be defined by specifying key characteristics like treatment structure and replications, without manually creating a data frame.
# Create a completely randomized design crd <- designCRD( treatments = 4, # one treatment factor with 4 levels replicates = 12, # 12 experimental units per treatment means = c(30, 28, 33, 35), # treatment means sigma2 = 10 # error variance ) # Create a randomized complete block design rcbd <- designRCBD( # two factors, each with 2 levels (2x2 factorial) treatments = c(2, 2), blocks = 10, # 10 blocks means = c(30, 28, 33, 35), # treatment means (cell means) vcomp = 6, # block variance sigma2 = 4 # error variance ) # Create a Latin Square design lsd <- designLSD( # two factors, with 2 and 3 levels, respectively (2x3 factorial) treatments = c(2, 3), squares = 4, # four squares reuse = "col", # column blocks are identical acorss squares means = c(30, 28, 33, 35, 34, 35), # treatment means (cell means) vcomp = c(5, 2), # variances of blocking factor (row and column) sigma2 = 3 # error variance ) # Create a split-plot design spd <- designSPD( trt.main = 2, # one factor with two levels at main plot trt.sub = 2, # one factor with two levels at subplot # 10 units per main plot factor (blocks at subplot level) replicates = 10, means = c(30, 28, 33, 35), # treatment means (cell means) vcomp = 7, # main plot error sigma2 = 3 # residual error (subplot error) ) # If not specified, these functions internally use a default model formula that includes main effects and all interactions, with block factors fitted as random effects.
Once the design has been correctly defined, the design object can be passed to power calculation functions, including:
Computes the power of F-tests for omnibus hypotheses.
Computes the power of t-tests for specific contrasts.
pwr.contrast(crd.rep, which = "trt", by = "hour", contrast = "trt.vs.ctrl")
To learn more about power analysis with pwr4exp
, refer to the vignette which contains:
For questions or suggestions, please open an issue on our GitHub repository or contact the package maintainer.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4