`panel.qtet`

computes the Quantile Treatment Effect
on the Treated (QTET) using the method of Callaway and Li (2015). This
method should be used when the researcher wants to invoke a Difference
in Differences assumption to identify the QTET. Relative to the other
Difference in Differences methods available in the `qte`

package,
this method's assumptions are more intuitively similar to the identifying
assumptions used in identifying the Average Treatment Effect on the Treated
(ATT).

Additionally, this method can accommodate covariates in a more
flexible way than the other Difference in Differences methods available.
In order to accommodate covariates, the user should specify a vector `x`

of covariate names. The user also may specify a method for estimating
the propensity score. The default is logit.

`panel.qtet`

can only be used in some situations, however. The
method requires three periods of panel data where individuals
are not treated until the last period. The data should be formatted
as a panel; the names of columns containing time periods and ids
for each cross sectional unit need to be passed to the method.

1 2 3 4 |

`formla` |
The formula y ~ d where y is the outcome and d is the treatment indicator (d should be binary) |

`t` |
The 3rd time period in the sample (this is the name of the column) |

`tmin1` |
The 2nd time period in the sample (this is the name of the column) |

`tmin2` |
The 1st time period in the sample (this is the name of the column) |

`tname` |
The name of the column containing the time periods |

`x` |
A vector of covariates (the name of the columns) |

`data` |
The name of the data.frame that contains the data |

`dropalwaystreated` |
How to handle always treated observations in panel data case (not currently used) |

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

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

`alp` |
The significance level used for constructing bootstrap confidence intervals |

`method` |
The method for estimating the propensity score when covariates are included |

`plot` |
Boolean whether or not the estimated QTET should be plotted |

`se` |
Boolean whether or not to compute standard errors |

`seedvec` |
Optional value to set random seed; can possibly be used in conjunction with bootstrapping standard errors. |

`QTE`

object

Callaway, Brantly and Tong Li. “Quantile Treatment Effects in Difference in Differences Models with Panel Data.” Working Paper, 2015.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ```
##load the data
data(lalonde)
## Run the panel.qtet method on the experimental data with no covariates
pq1 <- panel.qtet(re ~ treat, t=1978, tmin1=1975, tmin2=1974, tname="year",
x=NULL, data=lalonde.exp.panel, idname="id", se=FALSE,
probs=seq(0.05, 0.95, 0.05))
summary(pq1)
## Run the panel.qtet method on the observational data with no covariates
pq2 <- panel.qtet(re ~ treat, t=1978, tmin1=1975, tmin2=1974, tname="year",
x=NULL, data=lalonde.psid.panel, idname="id", se=FALSE,
probs=seq(0.05, 0.95, 0.05))
summary(pq2)
## Run the panel.qtet method on the observational data conditioning on
## age, education, black, hispanic, married, and nodegree.
## The propensity score will be estimated using the default logit method.
pq3 <- panel.qtet(re ~ treat, t=1978, tmin1=1975, tmin2=1974, tname="year",
x=c("age","education","black","hispanic","married","nodegree"),
data=lalonde.psid.panel, idname="id", se=FALSE,
probs=seq(0.05, 0.95, 0.05))
summary(pq3)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.