*! version 1.1.1

Title

qrkd -- Executes estimation and robust inference for heterogeneous causal effects of a continuous treatment in the quantile regression kink designs (QRKD).

Syntax

qrkd
y
x
[if] [in]
[, k(real) bpl(real) bpr(real) cover(real) ql(real) qh(real) qn(real) bw(real)]

Description

qrkd executes estimation and robust inference for heterogeneous causal effects of a continuous treatment in the quantile regression kink designs (QRKD) based on
Chiang and Sasaki (2019).
The command takes an outcome variable y and a running variable or forcing variable x.
The primary results consist of estimates and a uniform 95% confidence band of causal effects across multiple quantiles. In addition to these primary results, the command also conducts tests of: 1. the null hypothesis that the causal effects are zero for all the quantiles (i.e., uniformly null causal effects); and 2. the null hypothesis that the causal effects are constant across all the quantiles (i.e., homogeneous causal effects) against the alternative of heterogeneous treatment effects.

This command works only for a continuous treatment.
For a binary treatment, refer to rkqte.

Options

k(real) sets the kink location for the QRKD. The default value is k(0). (Note: the kink location itself is included as a part of the observations with negative x.)

bpl(real) sets the derivative b'(kink-) of the policy function b to the left of the kink location kink. The default value is bpl(0).

bpr(real) sets the derivative b'(kink+) of the policy function b to the right of the kink location kink. The default value is bpr(1).

cover(real) sets the nominal probability that the uniform confidence band covers the true causal effects. The default value is cover(.95).

ql(real) sets the lowest quantile at which the QRKD is estimated. The default value is ql(.25).

qh(real) sets the highest quantile at which the QRKD is estimated. The default value is qh(.75).

qn(real) sets the number of quantile points at which the QRKD is estimated. The default value is qn(3).

bw(real) sets the bandwidth with which to estimate the QRKD. A non-positive argument, as is the case with the default value bw(-1), will translate into an optimal rate.

Examples

(y outcome variable, x running variable)

Estimation with the policy derivatives b'(k-)=0.04 and b'(k+)=0.00 as in the analysis of heterogeneous effects of unemployment insurance on unemployment duration
(Chiang and Sasaki, 2019, Sec. 5)
:

. qrkd y x, bpl(0.04) bpr(0.00)

Estimation of the QRKD at 10th, 20th, ..., and 90th percentiles:

. qrkd y x, bpl(0.04) bpr(0.00) ql(0.1) qh(0.9) qn(9)

(The default is the inter-quartile range: 25th, 50th & 75th percentiles.)

Stored results

qrkd stores the following in r():

Scalars

r(N) observations

r(h) bandwidth

r(k) kink location

r(cover) coverage probability

Macros

r(cmd) qrkd

matrices

r(q) quantiles

r(b) QRKD estimates

r(CBlower) lower bounds of confidence band

r(CBupper) upper bounds of confidence band

r(V) variance matrix

Reference

Chiang, H.D. and Y. Sasaki. 2019. Causal Inference by Quantile Regression Kink Designs.
Journal of Econometrics, 210 (2), pp. 405-433.
Link to Paper.

Authors

Harold. D. Chiang, Vanderbilt University, Nashville, TN.

Yuya Sasaki, Vanderbilt University, Nashville, TN.