instudyfindt {PWEALL} | R Documentation |
calculate the timeline in study when some or all subjects have entered
Description
This will calculate the timeline from some timepoint in study when some/all subjects have entered accouting for staggered entry, delayed treatment effect, treatment crossover and loss to follow-up.
Usage
instudyfindt(target=400,y=exp(rnorm(300)),z=rbinom(300,1,0.5),
d=rep(c(0,1,2),each=100),
tcut=2,blinded=1,type0=1,type1=type0,
rp20=0.5,rp21=0.5,tchange=c(0,1),
rate10=c(1,0.7),rate20=c(0.9,0.7),rate30=c(0.4,0.6),rate40=rate20,
rate50=rate20,ratec0=c(0.3,0.3),
rate11=rate10,rate21=rate20,rate31=rate30,
rate41=rate40,rate51=rate50,ratec1=ratec0,
withmorerec=1,
ntotal=1000,taur=5,u=c(1/taur,1/taur),ut=c(taur/2,taur),pi1=0.5,
ntype0=1,ntype1=1,
nrp20=0.5,nrp21=0.5,ntchange=c(0,1),
nrate10=rate10,nrate20=rate20,nrate30=rate30,nrate40=rate40,
nrate50=rate50,nratec0=ratec0,
nrate11=rate10,nrate21=rate20,nrate31=rate30,nrate41=rate40,
nrate51=rate50,nratec1=ratec0,
eps=1.0e-2,init=tcut*1.1,epsilon=0.001,maxiter=100)
Arguments
target |
target number of events |
y |
observed times |
z |
observed treatment indicator when |
d |
event indicator, 1=event, 0=censored, 2=no event or censored up to |
tcut |
the data cut-point |
blinded |
blinded=1 if the data is blinded,=0 if it is unblinded |
type0 |
type of the crossover for the observed data in the control group |
type1 |
type of the crossover for the observed data in the treatment group |
rp20 |
re-randomization prob for the observed data in the control group |
rp21 |
re-randomization prob for the observed data in the treatment group |
tchange |
A strictly increasing sequence of time points at which the event rates changes. The first element of tchange must be zero. It must have the same length as |
rate10 |
Hazard before crossover for the old subjects in the control group |
rate20 |
Hazard after crossover for the old subjects in the control group |
rate30 |
Hazard for time to crossover for the old subjects in the control group |
rate40 |
Hazard after crossover for the old subjects in the control group for complex case |
rate50 |
Hazard after crossover for the old subjects in the control group for complex case |
ratec0 |
Hazard for time to censoring for the old subjects in the control group |
rate11 |
Hazard before crossover for the old subjects in the treatment group |
rate21 |
Hazard after crossover for the old subjects in the treatment group |
rate31 |
Hazard for time to crossover for the old subjects in the treatment group |
rate41 |
Hazard after crossover for the old subjects in the treatment group for complex case |
rate51 |
Hazard after crossover for the old subjects in the treatment group for complex case |
ratec1 |
Hazard for time to censoring for the old subjects in the treatment group |
withmorerec |
withmorerec=1 if more subjects are needed to be recruited; =0 otherwise |
ntotal |
total number of the potential new subjects |
taur |
recruitment time for the potential new subjects |
u |
Piecewise constant recuitment rate for the potential new subjects |
ut |
Recruitment intervals for the potential new subjects |
pi1 |
Allocation probability to the treatment group for the potential new subjects |
ntype0 |
type of the crossover for the potential new subjects in the control group |
ntype1 |
type of the crossover for the potential new subjects in the treatment group |
nrp20 |
re-randomization prob for the potential new subjects in the control group |
nrp21 |
re-randomization prob for the potential new subjects in the treatment group |
ntchange |
A strictly increasing sequence of time points at which the event rates changes. The first element of ntchange must be zero. It must have the same length as |
nrate10 |
Hazard before crossover for the potential new subjects in the control group |
nrate20 |
Hazard after crossover for the potential new subjects in the control group |
nrate30 |
Hazard for time to crossover for the potential new subjects in the control group |
nrate40 |
Hazard after crossover for the potential new subjects in the control group for complex case |
nrate50 |
Hazard after crossover for the potential new subjects in the control group for complex case |
nratec0 |
Hazard for time to censoring for the potential new subjects in the control group |
nrate11 |
Hazard before crossover for the potential new subjects in the treatment group |
nrate21 |
Hazard after crossover for the potential new subjects in the treatment group |
nrate31 |
Hazard for time to crossover for the potential new subjects in the treatment group |
nrate41 |
Hazard after crossover for the potential new subjects in the treatment group for complex case |
nrate51 |
Hazard after crossover for the potential new subjects in the treatment group for complex case |
nratec1 |
Hazard for time to censoring for the potential new subjects in the treatment group |
eps |
A small number representing the error tolerance when calculating the utility function
with |
init |
initital value of the timeline estimate |
epsilon |
A small number representing the error tolerance when calculating the timeline. |
maxiter |
Maximum number of iterations when calculating the timeline |
Details
The hazard functions corresponding to rate11
,...,rate51
,ratec1
, rate10
,...,rate50
,ratec0
are all piecewise constant function taking the form \lambda(t)=\sum_{j=1}^m \lambda_j I(t_{j-1}\le t<t_j)
, where \lambda_1,\ldots,\lambda_m
are the corresponding elements of the rates and t_0,\ldots,t_{m-1}
are the corresponding elements of tchange, t_m=\infty
. Note that all the rates must have the same tchange
.
The hazard functions corresponding to nrate11
,...,nrate51
,nratec1
, nrate10
,...,nrate50
,nratec0
are all piecewise constant functions and all must have the same ntchange
.
Value
t1 |
the calculated timeline |
dvalue |
the number of events |
dvprime |
the derivative of the event cummulative function at time |
tvar |
the variance of the timeline estimator |
ny |
total number of subjects that could be in the study |
eps |
final tolerance |
iter |
Number of iterations performed |
t1hist |
the history of the iteration for timeline |
dvaluehist |
the history of the iteration for the event count |
dvprimehist |
the history of the iteration for the derivative of event count with respect to time |
Note
Version 1.0 (7/19/2016)
Author(s)
Xiaodong Luo
References
Luo, et al. (2017)
See Also
Examples
n<-1000
target<-550
ntotal<-1000
pi1<-0.5
taur<-2.8
u<-c(1/taur,1/taur)
ut<-c(taur/2,taur)
r11<-c(1,0.5)
r21<-c(0.5,0.8)
r31<-c(0.7,0.4)
r41<-r51<-r21
rc1<-c(0.5,0.6)
r10<-c(1,0.7)
r20<-c(0.5,1)
r30<-c(0.3,0.4)
r40<-r50<-r20
rc0<-c(0.2,0.4)
tchange<-c(0,1.873)
tcut<-2
####generate the data
E<-T<-C<-Z<-delta<-rep(0,n)
E<-rpwu(nr=n,u=u,ut=ut)$r
Z<-rbinom(n,1,pi1)
n1<-sum(Z)
n0<-sum(1-Z)
C[Z==1]<-rpwe(nr=n1,rate=rc1,tchange=tchange)$r
C[Z==0]<-rpwe(nr=n0,rate=rc0,tchange=tchange)$r
T[Z==1]<-rpwecx(nr=n1,rate1=r11,rate2=r21,rate3=r31,
rate4=r41,rate5=r51,tchange=tchange,type=1)$r
T[Z==0]<-rpwecx(nr=n0,rate1=r10,rate2=r20,rate3=r30,
rate4=r40,rate5=r50,tchange=tchange,type=1)$r
y<-pmin(pmin(T,C),tcut-E)
y1<-pmin(C,tcut-E)
delta[T<=y]<-1
delta[C<=y]<-0
delta[tcut-E<=y & tcut-E>0]<-2
delta[tcut-E<=y & tcut-E<=0]<--1
ys<-y[delta>-1]
Zs<-Z[delta>-1]
ds<-delta[delta>-1]
nplus<-sum(delta==-1)
nd0<-sum(ds==0)
nd1<-sum(ds==1)
nd2<-sum(ds==2)
ntaur<-taur-tcut
nu<-c(1/ntaur,1/ntaur)
nut<-c(ntaur/2,ntaur)
###calculate the timeline at baseline
xt<-pwecxpwufindt(target=target,ntotal=n,taur=taur,u=u,ut=ut,pi1=pi1,
rate11=r11,rate21=r21,rate31=r31,ratec1=rc1,
rate10=r10,rate20=r20,rate30=r30,ratec0=rc0,
tchange=tchange,eps=0.001,init=taur,epsilon=0.000001,maxiter=100)
###calculate the timeline in study
yt<-instudyfindt(target=target,y=ys,z=Zs,d=ds,
tcut=tcut,blinded=0,type1=1,type0=1,tchange=tchange,
rate10=r10,rate20=r20,rate30=r30,ratec0=rc0,
rate11=r11,rate21=r21,rate31=r31,ratec1=rc1,
withmorerec=1,
ntotal=nplus,taur=ntaur,u=nu,ut=nut,pi1=pi1,
ntype1=1,ntype0=1,ntchange=tchange,
nrate10=r10,nrate20=r20,nrate30=r30,nratec0=rc0,
nrate11=r11,nrate21=r21,nrate31=r31,nratec1=rc1,
eps=1.0e-2,init=2,epsilon=0.001,maxiter=100)
##timelines
c(yt$t1,xt$t1)
##standard errors of the timeline estimators
c(sqrt(yt$tvar/yt$ny),sqrt(xt$tvar/n))
###95 percent CIs
c(yt$t1-1.96*sqrt(yt$tvar/yt$ny),yt$t1+1.96*sqrt(yt$tvar/yt$ny))
c(xt$t1-1.96*sqrt(xt$tvar/n),xt$t1+1.96*sqrt(xt$tvar/n))