Learn R Programming

crt2power

Overview

crt2power is an R package that allows users to calculate the statistical power or sample size of their cluster randomized trials (CRTs) with two continuous co-primary outcomes, given a set of input parameters. The motivation for this package is to aid in the design of hybrid 2 studies. Hybrid 2 studies are studies where there are two co-primary outcomes, namely an implementation outcome (such as fidelity or reach) and a health outcome (such as infection rates, or change from baseline health scores). When powering these studies, cluster correlations and the inflation of the Type I error rate must be accounted for.

The five key study design approaches are included in this package that can be used to power hybrid 2 CRTs.

  1. P-Value Adjustments for Multiple Testing
  2. Combined Outcomes Approach
  3. Single 1-Degree of Freedom (DF) Combined Test for Two Outcomes
  4. Disjunctive 2-DF Test for Two Outcomes
  5. Conjunctive Intersection-Union Test for Two outcomes

For details on the methods listed above, please refer to the publication that discusses these methods by Owen et al., available here.

Installation

This package is available on CRAN, so it is recommended to run the following code:

install.packages("crt2power")
require(crt2power)

If you wish to directly install it from the GitHub repository instead, you can run the following code:

install.packages("devtools")
require(devtools)
install_github("https://github.com/melodyaowen/crt2power")
require(crt2power)

Required Input Parameters

Table of Key Required Input Parameters:

ParameterStatistical NotationVariable NameDescription
Statistical power$\pi$powerProbability of detecting a true effect under $H_A$
Number of clusters$K$KNumber of clusters in each treatment arm
Cluster size$m$mNumber of individuals in each cluster
Family-wise false positive rate$\alpha$alphaProbability of one or more Type I error(s)
Effect for $Y_1$$\beta_1^*$beta1Estimated intervention effect on the first outcome ($Y_1$)
Effect for $Y_2$$\beta_2^*$beta2Estimated intervention effect on the second outcome ($Y_2$)
Total variance of $Y_1$$\sigma_1^2$varY1Total variance of the first outcome, $Y_1$
Total variance of $Y_2$$\sigma_2^2$varY2Total variance of the second outcome, $Y_2$
Endpoint-specific ICC for $Y_1$$\rho_0^{(1)}$rho01Correlation for $Y_1$ for two different individuals in the same cluster
Endpoint-specific ICC for $Y_2$$\rho_0^{(2)}$rho02Correlation for $Y_2$ for two different individuals in the same cluster
Inter-subject between-endpoint ICC$\rho_1^{(1,2)}$rho1Correlation between $Y_1$ and $Y_2$ for two different individuals in the same cluster
Intra-subject between-endpoint ICC$\rho_2^{(1,2)}$rho2Correlation between $Y_1$ and $Y_2$ for the same individual
Treatment allocation ratio$r$rTreatment allocation ratio; $K_2 = rK_1$ where $K_1$ is number of clusters in experimental group

Function Description

Each method has a set of functions for calculating the statistical power ($\pi$), required number of clusters per treatment group ($K$), or cluster size ($m$) given a set of input parameters. The names of all functions offered in this package are listed below, organized by study design method.

1. P-Value Adjustments for Multiple Testing

  • calc_pwr_pval_adj() calculates power for this method
  • calc_K_pval_adj() calculates number of clusters per treatment group for this method
  • calc_m_pval_adj() calculates cluster size for this method

2. Combined Outcomes Approach

  • calc_pwr_comb_outcome() calculates power for this method
  • calc_K_comb_outcome() calculates number of clusters per treatment group for this method
  • calc_m_comb_outcome() calculates cluster size for this method

3. Single 1-Degree of Freedom (DF) Combined Test for Two Outcomes

  • calc_pwr_single_1dftest() calculates power for this method
  • calc_K_single_1dftest() calculates number of clusters per treatment group for this method
  • calc_m_single_1dftest() calculates cluster size for this method

4. Disjunctive 2-DF Test for Two Outcomes

  • calc_pwr_disj_2dftest() calculates power for this method
  • calc_K_disj_2dftest() calculates number of clusters per treatment group for this method
  • calc_m_disj_2dftest() calculates cluster size for this method

5. Conjunctive Intersection-Union Test for Two outcomes

  • calc_pwr_conj_test() calculates power for this method
  • calc_K_conj_test() calculates number of clusters per treatment group for this method
  • calc_m_conj_test() calculates cluster size for this method

Usage

# Example of using Method 1 for a power calculation
calc_pwr_pval_adj(K = 15, m = 300, alpha = 0.05,
                  beta1 = 0.1, beta2 = 0.1,
                  varY1 = 0.23, varY2 = 0.25,
                  rho01 = 0.025, rho02 = 0.025,
                  rho2  = 0.05, r = 1)

# Example of using Method 3 for number of clusters in treatment group (K) calculation
calc_K_single_1dftest(power = 0.8, m = 300, alpha = 0.05,
                      beta1 = 0.1, beta2 = 0.1,
                      varY1 = 0.23, varY2 = 0.25,
                      rho01 = 0.025, rho02 = 0.025,
                      rho1 = 0.01, rho2  = 0.05, r = 1)

# Example of using Method 5 for cluster size (m) calculation
calc_m_conj_test(power = 0.8, K = 15, alpha = 0.05,
                 beta1 = 0.1, beta2 = 0.1,
                 varY1 = 0.23, varY2 = 0.25,
                 rho01 = 0.025, rho02 = 0.025,
                 rho1 = 0.01, rho2  = 0.05, r = 1)

# Example of calculating power based on all five methods
run_crt2_design(output = "power", K = 15, m = 300, alpha = 0.05,
                beta1 = 0.1, beta2 = 0.1,
                varY1 = 0.23, varY2 = 0.25,
                rho01 = 0.025, rho02 = 0.025,
                rho1 = 0.01, rho2 = 0.05, r = 1)

Contact

For questions or comments, please email Melody Owen at melody.owen@yale.edu, or submit an issue to this repository.

Copy Link

Version

Install

install.packages('crt2power')

Monthly Downloads

387

Version

1.2.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Melody Owen

Last Published

March 13th, 2025

Functions in crt2power (1.2.0)

calc_pwr_pval_adj

Calculate statistical power for a cluster-randomized trial with co-primary endpoints using three common p-value adjustment methods
calc_pwr_single_1dftest

Calculate statistical power for a cluster-randomized trial with co-primary endpoints using the single 1-DF combined test approach.
calc_m_conj_test

Calculate cluster size for a cluster-randomized trial with co-primary endpoints using the conjunctive intersection-union test approach.
calc_m_disj_2dftest

Calculate cluster size for a cluster-randomized trial with co-primary endpoints using a disjunctive 2-DF test approach.
calc_K_disj_2dftest

Calculate required number of clusters per treatment group for a cluster-randomized trial with co-primary endpoints using a disjunctive 2-DF test approach.
calc_m_pval_adj

Calculate cluster size for a cluster-randomized trial with co-primary endpoints using three common p-value adjustment methods
calc_K_pval_adj

Calculate required number of clusters per treatment group for a cluster-randomized trial with co-primary endpoints using three common p-value adjustment methods
calc_K_comb_outcome

Calculate required number of clusters per treatment group for a cluster-randomized trial with co-primary endpoints using a combined outcomes approach.
calc_K_single_1dftest

Calculate required number of clusters per treatment group for a cluster-randomized trial with co-primary endpoints using the single 1-DF combined test approach.
calc_m_comb_outcome

Calculate cluster size for a cluster-randomized trial with co-primary endpoints using a combined outcomes approach.
calc_m_single_1dftest

Calculate cluster size for a cluster-randomized trial with co-primary endpoints using the single 1-DF combined test approach.
calc_K_conj_test

Calculate required number of clusters per treatment group for a cluster-randomized trial with co-primary endpoints using the conjunctive intersection-union test approach.
calc_ncp_chi2

Find the non-centrality parameter corresponding to Type I error rate and statistical power
calc_pwr_comb_outcome

Calculate statistical power for a cluster-randomized trial with co-primary endpoints using a combined outcomes approach.
calc_pwr_conj_test

Calculate statistical power for a cluster-randomized trial with co-primary endpoints using the conjunctive intersection-union test approach.
run_crt2_design

Find study design output specifications based on all five CRT co-primary design methods.
calc_pwr_disj_2dftest

Calculate statistical power for a cluster-randomized trial with co-primary endpoints using a disjunctive 2-DF test approach.