CARM (version 1.1.0)

ARM: Adaptive Randomization via Mahalanobis Distance

Description

Allocates patients to one of two treatments using Adaptive Randomization via Mahalanobis Distance proposed by Yichen Qin,Yang Li, Wei Ma, Haoyu Yang, and Feifang Hu.(2022)

Usage

ARM(covariate, assignment, q = 0.75)

Value

An object of class "ARM" is a list containing the following components:

assignment

Allocation of patients.

sample_size

The number of patients in treatment 1 and treatment 2 respectively.

Mahalanobis_Distance

Mahalanobis distance between treatment groups 1 and 2.

Arguments

covariate

a data frame. A row of the dataframe corresponds to the covariate profile of a patient.

assignment

a vector. If partial patients had been allocated , please input their allocation. IF all the patients are not be allocated, please input 'assignment = NA' directly.

q

the biased coin probability. \(q\) should be larger than 1/2 and less than 1, default = 0.75

Details

Suppose that \(n\) patients are to be assigned to two treatment groups. Consider \(p\) continuous covariates for each patient. \(T_i\) is the assignment of the \(i\)th patient. The proposed procedure to assign units to treatment groups, namely adaptive randomization via Mahalanobis distance (ARM), is outlined below.

(1) Arrange all \(n\) units randomly into a sequence \(x_1,...,x_n\).

(2) Assign the first two units with \(T_1=1\) and \(T_2=2\).

(3) Suppose that \(2i\) units have been assigned to treatment groups, for the \(2i+1\)-th and \(2i+2\)-th units:

(3a) If the \(2i+1\)-th unit is assigned to treatment 1 and the \(2i+2\)-th unit to treatment 2, then calculate the potential Mahalanobis distance, between the updated treatment groups. with \(2i+2\) units, \(M_1(2i + 2)\).

(3b) Similarly, if the \(2i+1\)-th unit is assigned to treatment 2 and the \(2i+2\)-th unit to treatment 1, then calculate the other potential Mahalanobis distance, \(M_2(2i + 2)\).

(4) Assign the \(2i+1\)-th unit to treatment groups according to the following probabilities:

if \( M_1(2i + 2) < M_2(2i + 2)\), \(P(T_{2i+1} = 1)= q\);

if \( M_1(2i + 2) > M_2(2i + 2)\), \(P(T_{2i+1} = 1)= 1-q\);

if \( M_1(2i + 2) = M_2(2i + 2)\), \(P(T_{2i+1} = 1)= 0.5\).

(5) Repeat the last two steps until all units are assigned. If n is odd, assign the last unit to two treatments with equal probabilities.

Mahalanobis distance \(M(n)\) between the sample means across different treatment groups is:

$$M(n)= np(1-p)(\hat{x_1} - \hat{x_2})^Tcov(x)^{-1}(\hat{x_1} - \hat{x_2}$$

See the reference for more details.

References

Qin, Y., Y. Li, W. Ma, H. Yang, and F. Hu (2022). Adaptive randomization via mahalanobis distance. Statistica Sinica.DOI:<10.5705/ss.202020.0440>.

Examples

Run this code
library(MASS)
#simulate covariates of patients
p <- 6; n <- 30
sigma <- diag(p); mean <- c(rep(0,p))
data <- mvrnorm(n, mean, sigma)
covariate <- as.data.frame(data)
#IF all the patients are not be allocated
ARM(covariate = covariate, assignment = NA, q=0.75)
#IF you had allocated partial patients
ARM(covariate = covariate,assignment = c(1,2),q=0.75)

Run the code above in your browser using DataLab