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