Description Usage Arguments Details Examples
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).
1 2 3 4 5 6 7 8 9 10 |
n |
Number of samples following the MCR distribution |
p |
Cure rate parameter. When p = 0, it reduces to GMW(alpha, beta, gamma, lambda) distribution. |
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). |
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.
MCR(p, alpha, beta, gamma, lambda, tau, psi=1) reduces to S(t) MCR(p, alpha, beta, gamma, lambda, tau=0, psi) reduces to S(t)^psi, i.e. proportional hazards. MCR(p=0, alpha, beta, gamma, lambda, tau=0, psi=1) reduces to S0(t) MCR(p=0, alpha, beta=1, gamma=1, lambda=0, tau=0, psi=1) reduces to exponential dist.
Draw u from U(0, 1); if u >= 1 - S(tau)^(1-psi)*p^psi, let t = Infinity; otherwise, let v = ((1-u1)^(1/psi) / (S(tau)^(1-psi)) - p) / (1-p), and t = inv.S0(v), where inv.S0 is the inverse function of S0(t). Repeat N times.
Then the N samples t_1, ..., t_N follow the MCR dist above.
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
set.seed(2022)
#(1) Exponential distribution mixture with cure rate 0.15
p = 0.15; alpha = log(2)/12
x = rmcr(n=10000, p=0.15, alpha = log(2)/12, beta=1, gamma=1, lambda=0)
m = qmcr(pct=0.5, p=0.15, alpha = log(2)/12, beta=1, gamma=1, lambda=0)
median(x)
km<-survival::survfit(survival::Surv(x,rep(1,length(x)))~rep(1,length(x)))
plot(km, ylab="Survival")
abline(h = c(p, 0.5), col="gray80", lty=2)
#(2) Weibull distribution mixture with cure rate 0.15
p = 0.15; alpha = log(2)/12
x = rmcr(n=10000, p=0.15, alpha = log(2)/12, beta=1, gamma=0.9, lambda=0)
m = qmcr(pct=0.5, p=0.15, alpha = log(2)/12, beta=1, gamma=0.9, lambda=0)
median(x)
#(3) Rayleigh distribution mixture with cure rate 0.15
p = 0.15; alpha = log(2)/100
x = rmcr(n=10000, p=0.15, alpha = alpha, beta=1, gamma=2, lambda=0)
m = qmcr(pct=0.5, p=0.15, alpha = alpha, beta=1, gamma=2, lambda=0)
median(x)
#(4) GMW distribution mixture with cure rate 0.15
p = 0.15; alpha = log(2)/12
x = rmcr(n=10000, p=0.15, alpha = alpha, beta=1, gamma=1, lambda=0.2)
m = qmcr(pct=0.5, p=0.15, alpha = alpha, beta=1, gamma=1, lambda=0.2)
median(x)
#(5) No cure rate
x = rmcr(n=100000, p=0, alpha = log(2)/12, beta=1, gamma=1, lambda=0)
median(x)
#(6) Delayed effect 6 months, proportional hazards HR = 0.6
set.seed(2022)
#control arm:
x0 = rmcr(n=1000, p=0.15, alpha = log(2)/12, beta=1, gamma=1, lambda=0, tau=0, psi=1)
median(x0)
m0 = qmcr(pct=0.5, p=0.15, alpha = log(2)/12, beta=1, gamma=1, lambda=0, tau=0, psi=1)
m0
#Experimental arm:
x1 = rmcr(n=1000, p=0.15, alpha = log(2)/12, beta=1, gamma=1, lambda=0, tau=6, psi=0.5)
median(x1)
m1 = qmcr(pct=0.5, p=0.15, alpha = log(2)/12, beta=1, gamma=1, lambda=0, tau=6, psi=0.5)
m1
x = c(x0, x1); group = c(rep(0,length(x0)),rep(1,length(x1)))
event = rep(1, length(x)) #all events
km<-survival::survfit(survival::Surv(x,event)~group)
plot(km, ylab="Survival")
abline(h = c(p, 0.5), col="gray80", lty=2)
abline(v=c(6, m1, m0), col="gray80", lty=2)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.