crt2power
is an R package that allows users to calculate
the statistical power or sample size of their cluster randomized trials
(CRTs) with two coprimary 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 coprimary
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. PValue Adjustments for Multiple Testing 2. Combined Outcomes Approach 3. Single 1Degree of Freedom (DF) Combined Test for Two Outcomes 4. Disjunctive 2DF Test for Two Outcomes 5. Conjunctive IntersectionUnion Test for Two outcomes
For details on the methods listed above, please refer to the publication that discusses these methods, available here. (Add link)
install.packages("devtools")
require(devtools)
install_github("https://github.com/melodyaowen/crt2power")
require(crt2power)
Table of Key Required Input Parameters:  Parameter 
Statistical Notation  Variable Name  Description   —  —  —  —  
Statistical power  \(\pi\) 
power
 Probability of detecting a true effect under \(H_A\)   Number of clusters  \(K\)  K
 Number of clusters
in each treatment arm   Cluster size  \(m\)  m
 Number of
individuals in each cluster   Familywise false positive rate  \(\alpha\)  alpha
 Probability
of one or more Type I error(s)   Effect for \(Y_1\)  \(\beta_1^*\)  beta1

Estimated intervention effect on the first outcome (\(Y_1\))   Effect for \(Y_2\)  \(\beta_2^*\)  beta2

Estimated intervention effect on the second outcome (\(Y_2\))   Total variance of \(Y_1\)  \(\sigma_1^2\)  varY1
 Total
variance of the first outcome, \(Y_1\)
  Total variance of \(Y_2\)  \(\sigma_2^2\)  varY2
 Total
variance of the second outcome, \(Y_2\)
  Endpointspecific ICC for \(Y_1\) 
\(\rho_0^{(1)}\)  rho01

Correlation for \(Y_1\) for two
different individuals in the same cluster   Endpointspecific ICC for
\(Y_2\)  \(\rho_0^{(2)}\)  rho02

Correlation for \(Y_2\) for two
different individuals in the same cluster   Intersubject
betweenendpoint ICC  \(\rho_1^{(1,2)}\)  rho1

Correlation between \(Y_1\) and \(Y_2\) for two different individuals in the
same cluster   Intrasubject betweenendpoint ICC  \(\rho_2^{(1,2)}\)  rho2

Correlation between \(Y_1\) and \(Y_2\) for the same individual   Treatment
allocation ratio  \(r\) 
r
 Treatment allocation ratio; \(K_2 = rK_1\) where \(K_1\) is number of clusters in experimental
group 
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.
calc_pwr_pval_adj()
calculates power for this
methodcalc_K_pval_adj()
calculates number of clusters per
treatment group for this methodcalc_m_pval_adj()
calculates cluster size for this
methodcalc_pwr_comb_outcome()
calculates power for this
methodcalc_K_comb_outcome()
calculates number of clusters per
treatment group for this methodcalc_m_comb_outcome()
calculates cluster size for this
methodcalc_pwr_single_1dftest()
calculates power for this
methodcalc_K_single_1dftest()
calculates number of clusters
per treatment group for this methodcalc_m_single_1dftest()
calculates cluster size for
this methodcalc_pwr_disj_2dftest()
calculates power for this
methodcalc_K_disj_2dftest()
calculates number of clusters per
treatment group for this methodcalc_m_disj_2dftest()
calculates cluster size for this
methodcalc_pwr_conj_test()
calculates power for this
methodcalc_K_conj_test()
calculates number of clusters per
treatment group for this methodcalc_m_conj_test()
calculates cluster size for this
method# 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)
For questions or comments, please email Melody Owen at melody.owen@yale.edu, or submit an issue to this repository.