The ci.qtet method implements estimates the Quantile Treatment Effect (QTE) under a Conditional Independence Assumption (sometimes this is called Selection on Observables) developed in Firpo (2007). This method using propensity score re-weighting and minimizes a check function to compute the QTET. Standard errors (if requested) are computed using the bootstrap.

ci.qte(
  formla,
  xformla = NULL,
  x = NULL,
  data,
  w = NULL,
  probs = seq(0.05, 0.95, 0.05),
  se = TRUE,
  iters = 100,
  alp = 0.05,
  method = "logit",
  retEachIter = FALSE,
  printIter = FALSE,
  pl = FALSE,
  cores = 2
)

Arguments

formla

The formula y ~ d where y is the outcome and d is the treatment indicator (d should be binary), d should be equal to one in all time periods for individuals that are eventually treated

xformla

A optional one sided formula for additional covariates that will be adjusted for. E.g ~ age + education. Additional covariates can also be passed by name using the x paramater.

x

Vector of covariates. Default is no covariates

data

A data.frame containing all the variables used

w

an additional vector of sampling weights

probs

A vector of values between 0 and 1 to compute the QTET at

se

Boolean whether or not to compute standard errors

iters

The number of iterations to compute bootstrap standard errors. This is only used if se=TRUE

alp

The significance level used for constructing bootstrap confidence intervals

method

Method to compute propensity score. Default is logit; other option is probit.

retEachIter

Boolean whether or not to return list of results from each iteration of the bootstrap procedure (default is FALSE). This is potentially useful for debugging but can cause errors due to running out of memory.

printIter

For debugging only; should leave at default FALSE unless you want to see a lot of output

pl

boolean for whether or not to compute bootstrap error in parallel. Note that computing standard errors in parallel is a new feature and may not work at all on Windows.

cores

the number of cores to use if bootstrap standard errors are computed in parallel

Value

QTE object

References

Firpo, Sergio. ``Efficient Semiparametric Estimation of Quantile Treatment Effects.'' Econometrica 75.1, pp. 259-276, 2015.

Examples

## Load the data
data(lalonde)

##Estimate the QTET of participating in the job training program;
##This is the no covariate case.  Note: Because individuals that participate
## in the job training program are likely to be much different than
## individuals that do not (e.g. less experience and less education), this
## method is likely to perform poorly at estimating the true QTET
q1 <- ci.qte(re78 ~ treat, x=NULL, data=lalonde.psid, se=FALSE,
 probs=seq(0.05,0.95,0.05))
summary(q1)
#> 
#> Quantile Treatment Effect:
#> 		
#> tau	QTE
#> 0.05	     0.00
#> 0.1	     0.00
#> 0.15	 -4433.18
#> 0.2	 -8866.36
#> 0.25	-11041.04
#> 0.3	-12369.66
#> 0.35	-13783.87
#> 0.4	-15404.99
#> 0.45	-15747.89
#> 0.5	-16455.86
#> 0.55	-17414.16
#> 0.6	-18013.27
#> 0.65	-18402.10
#> 0.7	-19172.21
#> 0.75	-19911.53
#> 0.8	-20845.83
#> 0.85	-22759.66
#> 0.9	-23838.99
#> 0.95	-27321.67
#> 
#> Average Treatment Effect:	-15204.78

##This estimation controls for all the available background characteristics.
q2 <- ci.qte(re78 ~ treat,
 xformla=~age + I(age^2) + education + black + hispanic + married + nodegree,
 data=lalonde.psid, se=FALSE, probs=seq(0.05, 0.95, 0.05))
summary(q2)
#> 
#> Quantile Treatment Effect:
#> 		
#> tau	QTE
#> 0.05	     0.00
#> 0.1	     0.00
#> 0.15	 -2955.45
#> 0.2	 -7536.40
#> 0.25	 -8754.13
#> 0.3	 -9748.07
#> 0.35	-10792.62
#> 0.4	-11588.75
#> 0.45	-12583.22
#> 0.5	-13667.88
#> 0.55	-13681.66
#> 0.6	-13550.83
#> 0.65	-12703.25
#> 0.7	-14180.98
#> 0.75	-16545.34
#> 0.8	-18614.16
#> 0.85	-20820.21
#> 0.9	-25253.39
#> 0.95	-29856.92
#> 
#> Average Treatment Effect:	-13194.78