Type: | Package |
Title: | Analysis of RD Designs with Multiple Cutoffs or Scores |
Version: | 1.2 |
Description: | The regression discontinuity (RD) design is a popular quasi-experimental design for causal inference and policy evaluation. The 'rdmulti' package provides tools to analyze RD designs with multiple cutoffs or scores: rdmc() estimates pooled and cutoff specific effects for multi-cutoff designs, rdmcplot() draws RD plots for multi-cutoff designs and rdms() estimates effects in cumulative cutoffs or multi-score designs. See Cattaneo, Titiunik and Vazquez-Bare (2020) https://rdpackages.github.io/references/Cattaneo-Titiunik-VazquezBare_2020_Stata.pdf for further methodological details. |
Imports: | ggplot2, rdrobust |
License: | GPL-2 |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
NeedsCompilation: | no |
Packaged: | 2025-05-22 18:27:32 UTC; Gonzalo Vazquez-Bare |
Author: | Matias D. Cattaneo [aut], Rocio Titiunik [aut], Gonzalo Vazquez-Bare [aut, cre] |
Maintainer: | Gonzalo Vazquez-Bare <gvazquez@econ.ucsb.edu> |
Repository: | CRAN |
Date/Publication: | 2025-05-23 02:10:02 UTC |
rdmulti: analysis of RD Designs with multiple cutoffs or scores
Description
The regression discontinuity (RD) design is a popular quasi-experimental design
for causal inference and policy evaluation. The 'rdmulti'
package provides tools
to analyze RD designs with multiple cutoffs or scores: rdmc()
estimates
pooled and cutoff-specific effects in multi-cutoff designs, rdmcplot()
draws RD plots for multi-cutoff RD designs and rdms()
estimates effects in
cumulative cutoffs or multi-score designs. For more details, and related Stata
and
R
packages useful for analysis of RD designs, visit https://rdpackages.github.io/.
Author(s)
Matias Cattaneo, Princeton University. cattaneo@princeton.edu
Rocio Titiunik, Princeton University. titiunik@princeton.edu
Gonzalo Vazquez-Bare, UC Santa Barbara. gvazquez@econ.ucsb.edu
References
Calonico, S., M.D. Cattaneo, M. Farrell and R. Titiunik. (2017). rdrobust
: Software for Regression Discontinuity Designs. Stata Journal 17(2): 372-404.
Calonico, S., M.D. Cattaneo, and R. Titiunik. (2014). Robust Data-Driven Inference in the Regression-Discontinuity Design. Stata Journal 14(4): 909-946.
Calonico, S., M.D. Cattaneo, and R. Titiunik. (2015). rdrobust
: An R Package for Robust Nonparametric Inference in Regression-Discontinuity Designs. R Journal 7(1): 38-51.
Cattaneo, M.D., L. Keele, R. Titiunik and G. Vazquez-Bare. (2016). Interpreting Regression Discontinuity Designs with Multiple Cutoffs. Journal of Politics 78(4): 1229-1248.
Cattaneo, M.D., L. Keele, R. Titiunik and G. Vazquez-Bare. (2020). Extrapolating Treatment Effects in Multi-Cutoff Regression Discontinuity Designs. Journal of the American Statistical Association 116(536): 1941, 1952.
Cattaneo, M.D., R. Titiunik and G. Vazquez-Bare. (2020). Analysis of Regression Discontinuity Designs with Multiple Cutoffs or Multiple Scores. Stata Journal 20(4): 866-891.
Keele, L. and R. Titiunik. (2015). Geographic Boundaries as Regression Discontinuities. Political Analysis 23(1): 127-155
Analysis of RD designs with multiple cutoffs
Description
rdmc()
analyzes RD designs with multiple cutoffs.
Usage
rdmc(
Y,
X,
C,
fuzzy = NULL,
derivvec = NULL,
pooled_opt = NULL,
verbose = FALSE,
pvec = NULL,
qvec = NULL,
hmat = NULL,
bmat = NULL,
rhovec = NULL,
covs_mat = NULL,
covs_list = NULL,
covs_dropvec = NULL,
kernelvec = NULL,
weightsvec = NULL,
bwselectvec = NULL,
scaleparvec = NULL,
scaleregulvec = NULL,
masspointsvec = NULL,
bwcheckvec = NULL,
bwrestrictvec = NULL,
stdvarsvec = NULL,
vcevec = NULL,
nnmatchvec = NULL,
cluster = NULL,
level = 95,
plot = FALSE,
conventional = FALSE
)
Arguments
Y |
outcome variable. |
X |
running variable. |
C |
cutoff variable. |
fuzzy |
specifies a fuzzy design. See |
derivvec |
vector of cutoff-specific order of derivatives. See
|
pooled_opt |
options to be passed to |
verbose |
displays the output from |
pvec |
vector of cutoff-specific polynomial orders. See
|
qvec |
vector of cutoff-specific polynomial orders for bias estimation.
See |
hmat |
matrix of cutoff-specific bandwidths. See |
bmat |
matrix of cutoff-specific bandwidths for bias estimation. See
|
rhovec |
vector of cutoff-specific values of rho. See |
covs_mat |
matrix of covariates. See |
covs_list |
list of covariates to be used in each cutoff. |
covs_dropvec |
vector indicating whether collinear covariates should be
dropped at each cutoff. See |
kernelvec |
vector of cutoff-specific kernels. See |
weightsvec |
vector of length equal to the number of cutoffs indicating
the names of the variables to be used as weights in each cutoff. See |
bwselectvec |
vector of cutoff-specific bandwidth selection methods. See
|
scaleparvec |
vector of cutoff-specific scale parameters. See
|
scaleregulvec |
vector of cutoff-specific scale regularization
parameters. See |
masspointsvec |
vector indicating how to handle repeated values at each
cutoff. See |
bwcheckvec |
vector indicating the value of bwcheck at each cutoff. See
|
bwrestrictvec |
vector indicating whether computed bandwidths are
restricted to the range or runvar at each cutoff. See |
stdvarsvec |
vector indicating whether variables are standardized at
each cutoff. See |
vcevec |
vector of cutoff-specific variance-covariance estimation
methods. See |
nnmatchvec |
vector of cutoff-specific nearest neighbors for variance
estimation. See |
cluster |
cluster ID variable. See |
level |
confidence level for confidence intervals. See |
plot |
plots cutoff-specific estimates and weights. |
conventional |
reports conventional, instead of robust-bias corrected, p-values and confidence intervals. |
Value
tau |
pooled estimate |
se.rb |
robust bias corrected standard error for pooled estimate |
pv.rb |
robust bias corrected p-value for pooled estimate |
ci.rb.l |
left limit of robust bias corrected CI for pooled estimate |
ci.rb.r |
right limit of robust bias corrected CI for pooled estimate |
hl |
bandwidth to the left of the cutoff for pooled estimate |
hr |
bandwidth to the right of the cutofffor pooled estimate |
Nhl |
sample size within bandwidth to the left of the cutoff for pooled estimate |
Nhr |
sample size within bandwidth to the right of the cutoff for pooled estimate |
B |
vector of bias-corrected estimates |
V |
vector of robust variances of the estimates |
Coefs |
vector of conventional estimates |
W |
vector of weights for each cutoff-specific estimate |
Nh |
vector of sample sizes within bandwidth |
CI |
robust bias-corrected confidence intervals |
H |
matrix of bandwidths |
Pv |
vector of robust p-values |
rdrobust.results |
results from rdrobust for pooled estimate |
cfail |
Cutoffs where rdrobust() encountered problems |
Author(s)
Matias Cattaneo, Princeton University. cattaneo@princeton.edu
Rocio Titiunik, Princeton University. titiunik@princeton.edu
Gonzalo Vazquez-Bare, UC Santa Barbara. gvazquez@econ.ucsb.edu
References
Cattaneo, M.D., R. Titiunik and G. Vazquez-Bare. (2020). Analysis of Regression Discontinuity Designs with Multiple Cutoffs or Multiple Scores. Stata Journal, forthcoming.
Examples
# Toy dataset
X <- runif(1000,0,100)
C <- c(rep(33,500),rep(66,500))
Y <- (1 + X + (X>=C))*(C==33)+(.5 + .5*X + .8*(X>=C))*(C==66) + rnorm(1000)
# rdmc with standard syntax
tmp <- rdmc(Y,X,C)
RD plots with multiple cutoffs.
Description
rdmcplot()
RD plots with multiple cutoffs.
Usage
rdmcplot(
Y,
X,
C,
nbinsmat = NULL,
binselectvec = NULL,
scalevec = NULL,
supportmat = NULL,
pvec = NULL,
hmat = NULL,
kernelvec = NULL,
weightsvec = NULL,
covs_mat = NULL,
covs_list = NULL,
covs_evalvec = NULL,
covs_dropvec = NULL,
ci = NULL,
col_bins = NULL,
pch_bins = NULL,
col_poly = NULL,
lty_poly = NULL,
col_xline = NULL,
lty_xline = NULL,
nobins = FALSE,
nopoly = FALSE,
noxline = FALSE,
nodraw = FALSE
)
Arguments
Y |
outcome variable. |
X |
running variable. |
C |
cutoff variable. |
nbinsmat |
matrix of cutoff-specific number of bins. See |
binselectvec |
vector of cutoff-specific bins selection method. See
|
scalevec |
vector of cutoff-specific scale factors. See |
supportmat |
matrix of cutoff-specific support conditions. See
|
pvec |
vector of cutoff-specific polynomial orders. See |
hmat |
matrix of cutoff-specific bandwidths. See |
kernelvec |
vector of cutoff-specific kernels. See |
weightsvec |
vector of cutoff-specific weights. See |
covs_mat |
matrix of covariates. See |
covs_list |
list of of covariates to be used in each cutoff. |
covs_evalvec |
vector indicating the evaluation point for additional
covariates. See |
covs_dropvec |
vector indicating whether collinear covariates should be
dropped at each cutoff. See |
ci |
adds confidence intervals of the specified level to the plot. See
|
col_bins |
vector of colors for bins. |
pch_bins |
vector of characters (pch) type for bins. |
col_poly |
vector of colors for polynomial curves. |
lty_poly |
vector of lty for polynomial curves. |
col_xline |
vector of colors for vertical lines. |
lty_xline |
vector of lty for vertical lines. |
nobins |
omits bins plot. |
nopoly |
omits polynomial curve plot. |
noxline |
omits vertical lines indicating the cutoffs. |
nodraw |
omits plot. |
Value
clist |
list of cutoffs |
cnum |
number of cutoffs |
X0 |
matrix of X values for control units |
X1 |
matrix of X values for treated units |
Yhat0 |
estimated polynomial for control units |
Yhat1 |
estimated polynomial for treated units |
Xmean |
bin average of X values |
Ymean |
bin average for Y values |
CI_l |
lower end of confidence intervals |
CI_r |
upper end of confidence intervals |
cfail |
Cutoffs where rdrobust() encountered problems |
Author(s)
Matias Cattaneo, Princeton University. cattaneo@princeton.edu
Rocio Titiunik, Princeton University. titiunik@princeton.edu
Gonzalo Vazquez-Bare, UC Santa Barbara. gvazquez@econ.ucsb.edu
References
Cattaneo, M.D., R. Titiunik and G. Vazquez-Bare. (2020). Analysis of Regression Discontinuity Designs with Multiple Cutoffs or Multiple Scores. Stata Journal, forthcoming.
Examples
# Toy dataset
X <- runif(1000,0,100)
C <- c(rep(33,500),rep(66,500))
Y <- (1 + X + (X>=C))*(C==33)+(.5 + .5*X + .8*(X>=C))*(C==66) + rnorm(1000)
# rdmcplot with standard syntax
tmp <- rdmcplot(Y,X,C)
Analysis of RD designs with cumulative cutoffs or two running variables
Description
rdms()
analyzes RD designs with cumulative cutoffs or two running variables.
Usage
rdms(
Y,
X,
C,
X2 = NULL,
zvar = NULL,
C2 = NULL,
rangemat = NULL,
xnorm = NULL,
fuzzy = NULL,
derivvec = NULL,
pooled_opt = NULL,
pvec = NULL,
qvec = NULL,
hmat = NULL,
bmat = NULL,
rhovec = NULL,
covs_mat = NULL,
covs_list = NULL,
covs_dropvec = NULL,
kernelvec = NULL,
weightsvec = NULL,
bwselectvec = NULL,
scaleparvec = NULL,
scaleregulvec = NULL,
masspointsvec = NULL,
bwcheckvec = NULL,
bwrestrictvec = NULL,
stdvarsvec = NULL,
vcevec = NULL,
nnmatchvec = NULL,
cluster = NULL,
level = 95,
plot = FALSE,
conventional = FALSE
)
Arguments
Y |
outcome variable. |
X |
running variable. |
C |
vector of cutoffs. |
X2 |
if specified, second running variable. |
zvar |
if X2 is specified, treatment indicator. |
C2 |
if specified, second vector of cutoffs. |
rangemat |
matrix of cutoff-specific ranges for the running variable. |
xnorm |
normalized running variable to estimate pooled effect. |
fuzzy |
specifies a fuzzy design. See |
derivvec |
vector of cutoff-specific order of derivatives. See
|
pooled_opt |
options to be passed to |
pvec |
vector of cutoff-specific polynomial orders. See
|
qvec |
vector of cutoff-specific polynomial orders for bias estimation.
See |
hmat |
matrix of cutoff-specific bandwidths. See |
bmat |
matrix of cutoff-specific bandwidths for bias estimation. See
|
rhovec |
vector of cutoff-specific values of rho. See |
covs_mat |
matrix of covariates. See |
covs_list |
list of of covariates to be used in each cutoff. |
covs_dropvec |
vector indicating whether collinear covariates should be
dropped at each cutoff. See |
kernelvec |
vector of cutoff-specific kernels. See |
weightsvec |
vector of length equal to the number of cutoffs indicating
the names of the variables to be used as weights in each cutoff. See |
bwselectvec |
vector of cutoff-specific bandwidth selection methods. See
|
scaleparvec |
vector of cutoff-specific scale parameters. See
|
scaleregulvec |
vector of cutoff-specific scale regularization
parameters. See |
masspointsvec |
vector indicating how to handle repeated values at each
cutoff. See |
bwcheckvec |
vector indicating the value of bwcheck at each cutoff. See
|
bwrestrictvec |
vector indicating whether computed bandwidths are
restricted to the range or runvar at each cutoff. See |
stdvarsvec |
vector indicating whether variables are standardized at
each cutoff. See |
vcevec |
vector of cutoff-specific variance-covariance estimation
methods. See |
nnmatchvec |
vector of cutoff-specific nearest neighbors for variance
estimation. See |
cluster |
cluster ID variable. See |
level |
confidence level for confidence intervals. See |
plot |
plots cutoff-specific and pooled estimates. |
conventional |
reports conventional, instead of robust-bias corrected, p-values and confidence intervals. |
Value
B |
vector of bias-corrected coefficients |
V |
variance-covariance matrix of the estimators |
Coefs |
vector of conventional coefficients |
Nh |
vector of sample sizes within bandwidth at each cutoff |
CI |
bias corrected confidence intervals |
H |
bandwidth used at each cutoff |
Pv |
vector of robust p-values |
Author(s)
Matias Cattaneo, Princeton University. cattaneo@princeton.edu
Rocio Titiunik, Princeton University. titiunik@princeton.edu
Gonzalo Vazquez-Bare, UC Santa Barbara. gvazquez@econ.ucsb.edu
References
Cattaneo, M.D., R. Titiunik and G. Vazquez-Bare. (2020). Analysis of Regression Discontinuity Designs with Multiple Cutoffs or Multiple Scores. Stata Journal, forthcoming.
Examples
# Toy dataset: cumulative cutoffs
X <- runif(1000,0,100)
C <- c(33,66)
Y <- (1+X)*(X<C[1])+(0.8+0.8*X)*(X>=C[1]&X<C[2])+(1.2+1.2*X)*(X>=C[2]) + rnorm(1000)
# rmds: basic syntax
tmp <- rdms(Y,X,C)