simulation.mcr: Simulation of Two-Arm Trial Data Following Mixture Cure Rate...

Description Usage Arguments Details Value Examples

View source: R/simulation.mcr.R

Description

Consider the survival function of mixture cure rate (MCR) distribution: S(t) = p + (1-p)S0(t), where S0(t) is a survival distribution for susceptible subject, i.e., S0(0)=1 and S0(t) -> 0 as t -> Infinity. S0(t) can be any proper survival function. For generality of S0(t), consider the generalized modified Weibull (GMW) distribution with parameters (alpha, beta, gamma, lambda) Martinez et al(2013).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
simulation.mcr(
  nSim = 100,
  N = 600,
  A = 18,
  w = 1.5,
  r = 1,
  p = c(0.1, 0.1),
  alpha = c(log(2)/12, log(2)/12),
  beta = c(1, 1),
  gamma = c(1, 1),
  lambda = c(0, 0),
  tau = c(0, 0),
  psi = c(1, 1),
  drop = c(0, 0),
  targetEvents = c(300, 420),
  DCO = NULL
)

Arguments

nSim

Number of trials

N

Total number patients in two arms.

A

Total accrual period in months.

w

Weight parameter in cumulative enrollment pattern. The cumulative enrollment at month t is (t / A)^w, eg, at month 6, the enrollment is N*(6/24)^2 = N/16 for 24 months planned accrual period.

r

Randomization ratio r:1, where r refers to the experimental arm, eg, r=2 in 2:1 ratio

p

Cure rate parameter. When p = 0, it reduces to GMW(alpha, beta, gamma, lambda) distribution. Each of the following parameters is a vector of 2 components for two treatment groups (control, experimental arm): p, alpha, beta, gamma, lambda, tau, psi, drop.

alpha

Generalized modified Weibull (GMW) distribution parameters. alpha > 0

beta

Generalized modified Weibull (GMW) distribution parameters. beta > 0

gamma

Generalized modified Weibull (GMW) distribution parameters. gamma >= 0 but gamma and lambda cannot be both 0.

lambda

Generalized modified Weibull (GMW) distribution parameters. lambda >= 0 but gamma and 'lambda“ cannot be both 0.

tau

Threshold for delayed effect period. tau = 0 reduces no delayed effect.

psi

Hazard ratio after delayed effect. psi = 1 reduces to the survival function without proportional hazards after delayed period (tau).

drop

Drop-off rate per unit time. For example, if 3% drop off in 1 year of followup, then drop = 0.03/12.

Details

alpha: scale parameter beta and gamma: shape parameters lambda: acceleration parameter

S0(t) = 1-(1-exp(-alphat^gammaexp(lambda*t)))^beta

Special cases: (1) Weibull dist: lambda = 0, beta = 1. Beware of the parameterization difference. (2) Exponential dist: lambda = 0, beta = 1, gamma = 1. The shape parameter (hazard rate) is alpha. (3) Rayleigh dist: lambda = 0, beta = 1, gamma = 2. (4) Exponentiated Weibull dist (EW): lambda = 0 (5) Exponentiated exponential dist (EE): lambda = 0 and gamma = 1 (6) Generalized Rayleigh dist (GR): lambda = 0, gamma = 2 (7) Modified Weibull dist (MW): beta = 1

Let T be the survival time according to survival function S1(t) below. Denote T's distribution as MCR(p, alpha, beta, gamma, lambda, tau, psi), where tau is the delayed effect and psi is the hazard ratio after delayed effect, ie. proportional hazards to S(t) after delay tau. S(t) = p + (1-p)*S0(t) S1(t) = S(t)I(t<tau) + S(tau)^(1-psi)*S(t)^psi In brief, S0(t) is the proper GMW distribution (alpha, beta, gamma, lambda); S(t) is MCR with additional cure rate parameter p; In reference to S(t), S1(t) is a delayed effect distribution and proportional hazards after delay.

Value

A dataframe for each analysis including the following variables:

sim

sequence number of simulated dataset;

treatment

treatment group with values of "control" and "experimental"

enterTime

Time of randomization in calendar time

calendarTime

the time when event/censoring occurred in calendar time

survTime

Survival time for analysis, = calendarTime - enterTime

cnsr

censor status (0=event; 1=censor) before administrative censoring due to data cut

calendarCutOff

Data CutOff Time (DCO);

survTimeCut

Survival time after cut

cnsrCut

Censor status after cut

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
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
set.seed(2022)

#(6) Delayed effect 6 months, proportional hazards HR = 0.6
set.seed(2022)
data = simulation.mcr(nSim=10, N = 600, A = 18, w=1.5, r=1, p=c(0.1,0.1), 
alpha = c(log(2)/12,log(2)/12), beta=c(1,1), gamma=c(1,1), 
lambda=c(0,0), tau=c(0,6), psi=c(1,0.6), drop=c(0,0),
targetEvents = c(300, 420), DCO = NULL) 

data.IA = data[[1]][data[[1]]$sim==1,]
data.FA = data[[2]][data[[2]]$sim==1,]
m0 = qmcr(0.5, p=0.1, alpha = log(2)/12, beta=1, gamma=1, lambda=0, tau=0, psi=1)
m1 = qmcr(0.5, p=0.1, alpha = log(2)/12, beta=1, gamma=1, lambda=0, tau=6, psi=0.6)

km.IA<-survival::survfit(survival::Surv(survTimeCut,1-as.numeric(cnsrCut))~treatment, data=data.IA)
plot(km.IA, ylab="Survival")
abline(h = c(0.1, 0.5), col="gray80", lty=2)
abline(v=c(6, m1, m0), col="gray80", lty=2)
 
km.FA<-survival::survfit(survival::Surv(survTimeCut,1-as.numeric(cnsrCut))~treatment, data=data.FA)
plot(km.FA, ylab="Survival") 
abline(h = c(0.1, 0.5), col="gray80", lty=2)
abline(v=c(6, m1, m0), col="gray80", lty=2)

phe9480/rgs documentation built on March 1, 2022, 12:26 a.m.