Learn R Programming

qLearn (version 1.0)

chooseMDoubleBootstrap: Choose the bootstrap sample size for stage 1 inference

Description

Choose the resample size for stage 1 bootstrap using double bootstrap. The form of m is: $ m = n^[1+Xi(1-pHat)/(1+Xi)]$, where the tuning parameter Xi is chosen via double bootstrap and pHat is the estimated non-regularity level computed by getModel. Example could be found under qLearn.

Usage

chooseMDoubleBootstrap(s2Formula,s1Formula, completeData,s2Treat,interact,s2Indicator,alpha=0.05, boot1Num=500,boot2Num=500,...)

Arguments

s2Formula
stage 2 regression formula
s1Formula
Stage 1 regression formula
completeData
data frame containing all the variables
s2Treat
character string: name of the stage 2 treatment variable
interact
character vector: names of variables that interact with s2Treat
s2Indicator
character string: names of the stage 2 treatment indicator variable
alpha
level of significance
boot1Num
numbers of bootstrap sampling for first order bootstrap
boot2Num
numbers of bootstrap sampling for second order bootstrap
...
other arguments of the lm function

Value

m
resample size for stage 1 bootstrap

References

Chakraborty, B., and Laber, E.B. (2012). Inference for Optimal Dynamic Treatment Regimes using an Adaptive m-out-of-n Bootstrap Scheme. Submitted.

See Also

qLearn

Examples

Run this code
set.seed(100)
# Simple Simulation on 1000 subjects
sim<-matrix(0,nrow=1000,ncol=7)
colnames(sim)<-c("H1","A1","Y1","H2","A2","Y2","IS2")
sim<-as.data.frame(sim)

# Randomly generate stage 1 covariates and stage 1 and 2 treatments
sim[,c("H1","A1","A2")]<-2*rbinom(1000*3,1,0.5)-1

# Generate stage 2 covariates based on H1 and T1
expit<-exp(0.5*sim$H1+0.5*sim$A1)/(1+exp(0.5*sim$H1+0.5*sim$A1))
sim$H2<-2*rbinom(1000,1,expit)-1

# Assume stage 1 outcome Y1 is 0
# Generate stage 2 outcome Y2 
sim$Y2<-0.5*sim$A2+0.5*sim$A2*sim$A1-0.5*sim$A1+rnorm(1000)

# Randomly assign 500 subjects to S2
sim[sample(1000,500),"IS2"]<-1 
sim[sim$IS2==0,c("A2","Y2")]<-NA

# Define models for both stages
s2Formula<-Y2~H1*A1+A1*A2+A2:H2
s1Formula<-Y1~H1*A1

# Use boot1Num=boot2Num=20 in the example to save computational time
# In real case should use greater number 
m<-chooseMDoubleBootstrap(s2Formula,s1Formula,sim,s2Treat="A2",
interact=c("A1","H2"),s2Indicator="IS2",boot1Num=20,boot2Num=20) 

Run the code above in your browser using DataLab