Minirand: Minimization randomization to k treatment groups

Description Usage Arguments Value References Examples

View source: R/Minirand.R

Description

The function is used to generate treatment assignment by minimization algorithms.

Usage

1
2
Minirand(covmat = covmat, j, covwt = covwt, ratio = ratio,
  ntrt = ntrt, trtseq = trtseq, method = "Range", result = res, p)

Arguments

covmat

matrix or data frame of covariate factors

j

the jth subject in the randomization sequence

covwt

vector of weights of the covaraite factors

ratio

vector of randomization ratios for each treatment

ntrt

numeric number of treatment groups

trtseq

vector of a sequence of treatment groups

method

the method or algorithm for the minimization randomization

result

the treatment assignments in subjetcs achieved so far

p

the high probability for new assignment

Value

treatment assignment for the jth subject

References

Pocock and Simon (1975), Sequential Treatment Assignment with Balancing for Prognostic Factors in the Controlled Clinical Trial. Biometrics; 103-115.

Jin, Polis, and Hartzel (2019), "Algorithms for minimization randomization and the implementation with an R package". Communications in Statistics-Simulation and Computation; May 2019.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ntrt <- 3
nsample <- 120
trtseq <- c(1, 2, 3)
ratio <- c(2, 2, 1)
c1 <- sample(seq(1, 0), nsample, replace = TRUE, prob = c(0.4, 0.6)) 
c2 <- sample(seq(1, 0), nsample, replace = TRUE, prob = c(0.3, 0.7))
c3 <- sample(c(2, 1, 0), nsample, replace = TRUE, prob = c(0.33, 0.2, 0.5)) 
c4 <- sample(seq(1, 0), nsample, replace = TRUE, prob = c(0.33, 0.67)) 
covmat <- cbind(c1, c2, c3, c4) # generate the matrix of covariate factors for the subjects
# label of the covariates 
colnames(covmat) = c("Gender", "Age", "Hypertension", "Use of Antibiotics") 
covwt <- c(1/4, 1/4, 1/4, 1/4) #equal weights
res <- rep(100, nsample) # result is the treatment needed from minimization method
#gernerate treatment assignment for the 1st subject
res[1] = sample(trtseq, 1, replace = TRUE, prob = ratio/sum(ratio)) 
for (j in 2:nsample)
{
# get treatment assignment sequentiall for all subjects
res[j] <- Minirand(covmat=covmat, j, covwt=covwt, ratio=ratio, 
ntrt=ntrt, trtseq=trtseq, method="Range", result=res, p = 0.9)
}
trt1 <- res
#Display the number of randomized subjects at covariate factors
balance1 <- randbalance(trt1, covmat, ntrt, trtseq) 
balance1
totimbal(trt = trt1, covmat = covmat, covwt = covwt, 
ratio = ratio, ntrt = ntrt, trtseq = trtseq, method = "Range")

Example output

$Gender
   
trt  0  1
  1 28 20
  2 27 21
  3 14 10

$Age
   
trt  0  1
  1 32 16
  2 33 15
  3 16  8

$Hypertension
   
trt  0  1  2
  1 26  8 14
  2 25  9 14
  3 11  6  7

$`Use of Antibiotics`
   
trt  0  1
  1 34 14
  2 34 14
  3 17  7

[1] 1.5

Minirand documentation built on Jan. 26, 2020, 9:10 a.m.

Related to Minirand in Minirand...