Under two-stage randomization we can estimate the average treatment effect E(Y(i,j)) of treatment regime (i,j). The estimator can be agumented in different ways: using the two randomizations and the dynamic censoring augmetatation. The treatment's must be given as factors.
binregTSR(
formula,
data,
cause = 1,
time = NULL,
cens.code = 0,
response.code = NULL,
augmentR0 = NULL,
treat.model0 = ~+1,
augmentR1 = NULL,
treat.model1 = ~+1,
augmentC = NULL,
cens.model = ~+1,
estpr = c(1, 1),
response.name = NULL,
offset = NULL,
weights = NULL,
cens.weights = NULL,
beta = NULL,
kaplan.meier = TRUE,
no.opt = FALSE,
method = "nr",
augmentation = NULL,
outcome = c("cif", "rmst", "rmst-cause"),
model = "exp",
Ydirect = NULL,
return.dataw = 0,
pi0 = 0.5,
pi1 = 0.5,
cens.time.fixed = 1,
outcome.iid = 1,
...
)
formula with outcome (see coxph
)
data frame
cause of interest
time of interest
gives censoring code
code of status of survival data that indicates a response at which 2nd randomization is performed
augmentation model for 1st randomization
logistic treatment model for 1st randomization
augmentation model for 2nd randomization
logistic treatment model for 2ndrandomization
augmentation model for censoring
stratification for censoring model based on observed covariates
estimate randomization probabilities using model
can give name of response variable, otherwise reads this as first variable of treat.model1
not implemented
not implemented
can be given
starting values
for censoring weights, rather than exp cumulative hazard
not implemented
not implemented
not implemented
can be c("cif","rmst","rmst-cause")
not implemented, uses linear regression for augmentation
use this Y instead of outcome constructed inside the program (e.g. I(T< t, epsilon=1)), see binreg for more on this
to return weighted data for all treatment regimes
set up known randomization probabilities
set up known randomization probabilities
to use time-dependent weights for censoring estimation using weights
to get iid contribution from outcome model (here linear regression working models).
Additional arguments to lower level funtions
The solved estimating eqution is $$ ( I(min(T_i,t) < G_i)/G_c(min(T_i ,t)) I(T \leq t, \epsilon=1 ) - AUG_0 - AUG_1 + AUG_C - p(i,j)) = 0 $$ where using the covariates from augmentR0 $$ AUG_0 = \frac{A_0(i) - \pi_0(i)}{ \pi_0(i)} X_0 \gamma_0$$ and using the covariates from augmentR1 $$ AUG_1 = \frac{A_0(i)}{\pi_0(i)} \frac{A_1(j) - \pi_1(j)}{ \pi_1(j)} X_1 \gamma_1$$ and the censoring augmentation is $$ AUG_C = \int_0^t \gamma_c(s)^T (e(s) - \bar e(s)) \frac{1}{G_c(s) } dM_c(s) $$ where $$ \gamma_c(s)$$ is chosen to minimize the variance given the dynamic covariates specified by augmentC.
In the observational case, we can use propensity score modelling and outcome modelling (using linear regression).
Standard errors are estimated using the influence function of all estimators and tests of differences can therefore be computed subsequently.
ddf <- mets:::gsim(200,covs=1,null=0,cens=1,ce=2)
bb <- binregTSR(Event(entry,time,status)~+1+cluster(id),ddf$datat,time=2,cause=c(1),
cens.code=0,treat.model0=A0.f~+1,treat.model1=A1.f~A0.f,
augmentR1=~X11+X12+TR,augmentR0=~X01+X02,
augmentC=~A01+A02+X01+X02+A11t+A12t+X11+X12+TR,
response.code=2)
summary(bb)
#> Simple estimator :
#> coef
#> A0.f=1, response*A1.f=1 0.6317010 0.07453510
#> A0.f=1, response*A1.f=2 0.8422987 0.08868704
#> A0.f=2, response*A1.f=1 0.4196840 0.07966228
#> A0.f=2, response*A1.f=2 0.4152135 0.08799663
#>
#> First Randomization Augmentation :
#> coef
#> A0.f=1, response*A1.f=1 0.6479061 0.07206198
#> A0.f=1, response*A1.f=2 0.8421320 0.09064128
#> A0.f=2, response*A1.f=1 0.4158910 0.07969769
#> A0.f=2, response*A1.f=2 0.4053013 0.08908108
#>
#> Second Randomization Augmentation :
#> coef
#> A0.f=1, response*A1.f=1 0.5883718 0.08075673
#> A0.f=1, response*A1.f=2 0.8514613 0.08929600
#> A0.f=2, response*A1.f=1 0.4287110 0.07707331
#> A0.f=2, response*A1.f=2 0.4114907 0.08923310
#>
#> 1st and 2nd Randomization Augmentation :
#> coef
#> A0.f=1, response*A1.f=1 0.6111168 0.07594238
#> A0.f=1, response*A1.f=2 0.8575752 0.08961180
#> A0.f=2, response*A1.f=1 0.4286800 0.07627072
#> A0.f=2, response*A1.f=2 0.4016964 0.09029309
#>