`QDiD.Rd`

`QDiD`

is a Difference in Differences type method for
computing the QTET.

The method can accommodate conditioning on covariates though it does so in a restrictive way: It specifies a linear model for outcomes conditional on group-time dummies and covariates. Then, after residualizing (see details in Athey and Imbens (2006)), it computes the Change in Changes model based on these quasi-residuals.

```
QDiD(
formla,
xformla = NULL,
t,
tmin1,
tname,
data,
panel = FALSE,
se = TRUE,
idname = NULL,
alp = 0.05,
probs = seq(0.05, 0.95, 0.05),
iters = 100,
retEachIter = FALSE,
pl = FALSE,
cores = NULL
)
```

- 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.

- t
The 3rd time period in the sample. Treated individuals should be treated in this time period and untreated individuals should not be treated. The code attempts to enforce this condition, but it is good try to handle this outside the panel.qtet method.

- tmin1
The 2nd time period in the sample. This should be a pre-treatment period for all individuals in the sample.

- tname
The name of the column containing the time periods

- data
A data.frame containing all the variables used

- panel
Binary variable indicating whether or not the dataset is panel. This is used for computing bootstrap standard errors correctly.

- se
Boolean whether or not to compute standard errors

- idname
The individual (cross-sectional unit) id name

- alp
The significance level used for constructing bootstrap confidence intervals

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

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

- 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.

- pl
Whether or not to compute standard errors in parallel

- cores
Number of cores to use if computing in parallel

QTE Object

Athey, Susan and Guido Imbens. ``Identification and Inference in Nonlinear Difference-in-Differences Models.'' Econometrica 74.2, pp. 431-497, 2006.

```
## load the data
data(lalonde)
## Run the Quantile Difference in Differences method conditioning on
## age, education, black, hispanic, married, and nodegree
qd1 <- QDiD(re ~ treat, t=1978, tmin1=1975, tname="year",
xformla=~age + I(age^2) + education + black + hispanic + married + nodegree,
data=lalonde.psid.panel, idname="id", se=FALSE,
probs=seq(0.05, 0.95, 0.05))
#> Warning: Solution may be nonunique
#> Warning: Solution may be nonunique
#> Warning: Solution may be nonunique
#> Warning: Solution may be nonunique
#> Warning: Solution may be nonunique
summary(qd1)
#>
#> Quantile Treatment Effect:
#>
#> tau QTE
#> 0.05 306.34
#> 0.1 -606.23
#> 0.15 -856.17
#> 0.2 -1430.94
#> 0.25 -1200.28
#> 0.3 -902.21
#> 0.35 -500.36
#> 0.4 94.13
#> 0.45 930.04
#> 0.5 1538.92
#> 0.55 2197.63
#> 0.6 3051.61
#> 0.65 3536.42
#> 0.7 2994.79
#> 0.75 3930.74
#> 0.8 4385.78
#> 0.85 4373.68
#> 0.9 3921.55
#> 0.95 4380.63
#>
#> Average Treatment Effect: 2033.09
```