| AdjBCD {carat} | R Documentation |
Covariate-adjusted Biased Coin Design
Description
Allocates patients to one of two treatments based on covariate-adjusted biased coin design as proposed by Baldi Antognini A, Zagoraiou M (2011) <doi:10.1093/biomet/asr021>.
Usage
AdjBCD(data, a = 3)
Arguments
data |
a data frame. A row of the dataframe corresponds to the covariate profile of a patient. |
a |
a design parameter governing the degree of randomness. The default is |
Details
Consider I covaraites and m_i levels for the ith covariate, i=1,\ldots,I. T_j is the assignment of the jth patient and Z_j = (k_1,\dots,k_I) indicates the covariate profile of the jth patient, j=1,\ldots,n. For convenience, (k_1,\dots,k_I) and (i;k_i) denote stratum and margin, respectively. D_j(.) is the difference between numbers of patients assigned to treatment 1 and treatment 2 at the corresponding level after j patients have been assigned.
Let F^a be a decreasing and symmetric function of D_j(.), which depends on a design parameter a\ge 0. Then, the probability of allocating the (j+1)th patient to treatment 1 is F^a(D_j(.)), where
F^a(x)=\frac{1}{x^a + 1},
for x\ge 1,
F^a(x)=1 / 2,
for x = 0, and
F^a(x)=\frac{|x|^a}{|x|^a + 1},
for x\le -1.
As a goes to \infty, the design becomes more deteministic.
Details of the procedure can be found in Baldi Antognini and M. Zagoraiou (2011).
Value
It returns an object of class "carandom".
An object of class "carandom" is a list containing the following components:
datanumeric |
a bool indicating whether the data is a numeric data frame. |
covariates |
a character string giving the name(s) of the included covariates. |
strt_num |
the number of strata. |
cov_num |
the number of covariates. |
level_num |
a vector of level numbers for each covariate. |
n |
the number of patients. |
Cov_Assig |
a |
assignments |
the randomization sequence. |
All strata |
a matrix containing all strata involved. |
Diff |
a matrix with only one column. There are final differences at the overall, within-stratum, and within-covariate-margin levels. |
method |
a character string describing the randomization procedure to be used. |
Data Type |
a character string giving the data type, |
framework |
the framework of the used randomization procedure: stratified randomization, or model-based method. |
data |
the data frame. |
References
Baldi Antognini A, Zagoraiou M. The covariate-adaptive biased coin design for balancing clinical trials in the presence of prognostic factors[J]. Biometrika, 2011, 98(3): 519-535.
Ma W, Ye X, Tu F, Hu F. carat: Covariate-Adaptive Randomization for Clinical Trials[J]. Journal of Statistical Software, 2023, 107(2): 1-47.
See Also
See AdjBCD.sim for allocating patients with covariate data generating mechanism;
See AdjBCD.ui for the command-line user interface.
Examples
# a simple use
## Real Data
## create a dataframe
df <- data.frame("gender" = sample(c("female", "male"), 1000, TRUE, c(1 / 3, 2 / 3)),
"age" = sample(c("0-30", "30-50", ">50"), 1000, TRUE),
"jobs" = sample(c("stu.", "teac.", "others"), 1000, TRUE),
stringsAsFactors = TRUE)
Res <- AdjBCD(df, a = 2)
## view the output
Res
## view all patients' profile and assignments
Res$Cov_Assig
## Simulated Data
n <- 1000
cov_num <- 3
level_num <- c(2, 3, 5)
# Set pr to follow two tips:
#(1) length of pr should be sum(level_num);
#(2) sum of probabilities for each margin should be 1.
pr <- c(0.4, 0.6, 0.3, 0.4, 0.3, rep(0.2, times = 5))
# set the design parameter
a <- 1.8
# obtain result
Res.sim <- AdjBCD.sim(n, cov_num, level_num, pr, a)
# view the assignments of patients
Res.sim$Cov_Assig[cov_num + 1, ]
# view the differences between treatment 1 and treatment 2 at all levels
Res.sim$Diff