Bandwidth estimation
rdq.bandwidth.Rd
rdq.bandwidth
implements two bandwidth selection rules and obtains the cross-validation (CV) bandwidth and the MSE optimal bandwidth.
Arguments
- y
a numeric vector, the outcome variable.
- x
a vector (or a matrix) of covariates, the first column is the running variable.
- d
a numeric vector, the treatment status.
- x0
the cutoff point.
- z0
the value of the covariates at which to evaluate the effects.
- cv
either 0 or 1. When cv=1, both the CV and MSE optimal bandwidths are produced. When cv=0, the MSE optimal bandwidth is produced.
- val
a set of candidate values for the CV bandwidth.
- hp
a pilot bandwidth to estimate nuisance parameters for the MSE optimal bandwidth. It will be used only if cv=0. If cv=1, the CV bandwidth will be used as the pilot bandwidth to compute the MSE optimal bandwidth.
- pm.each
either 0 or 1. When pm.each=1, the CV bandwidths for each side of the cutoff will be obtained separately.
- bdy
either 0 or 1. When bdy=1, the CV bandwidth uses the boundary point procdure.
- p.order
either 1 or 2. When p.order=1, a local linear regression is used, and when p.order=2, a local quadratic regression is used.
- xl
if
xl=0.5
, the CV bandwidth use the 50% of observations closest to \(x_0\).
Value
A list with elements:
- cv
the selected CV bandwidth at the median.
- opt.p
the MSE optimal bandwidth at the median from the right side of \(x_0\).
- opt.m
the MSE optimal bandwidth at the median from the left side of \(x_0\).
References
Zhongjun Qu, Jungmo Yoon, Pierre Perron (2024), "Inference on Conditional Quantile Processes in Partially Linear Models with Applications to the Impact of Unemployment Benefits," The Review of Economics and Statistics; doi:10.1162/rest_a_01168
Zhongjun Qu and Jungmo Yoon (2019), "Uniform Inference on Quantile Effects under Sharp Regression Discontinuity Designs," Journal of Business and Economic Statistics, 37(4), 625–647; doi:10.1080/07350015.2017.1407323
Examples
# Without covariate
n = 500
x = runif(n,min=-4,max=4)
d = (x > 0)
y = x + 0.3*(x^2) - 0.1*(x^3) + 1.5*d + rnorm(n)
tlevel = seq(0.1,0.9,by=0.1)
rdq.bandwidth(y=y,x=x,d=d,x0=0,z0=NULL,cv=1,val=(1:4))
#>
#>
#> Selected Bandwidths
#> ------------------------------------------------------------
#> Method Values
#> ============================================================
#> Cross Validation 1
#> MSE Optimal 1.102 0.748
rdq.bandwidth(y=y,x=x,d=d,x0=0,z0=NULL,cv=0,val=(1:4),hp=2)
#>
#>
#> Selected Bandwidths
#> ------------------------------------------------------------
#> Method Values
#> ============================================================
#> Cross Validation NULL
#> MSE Optimal 1.50 1.17
# (continued) With covariates
z = sample(c(0,1),n,replace=TRUE)
y = x + 0.3*(x^2) - 0.1*(x^3) + 1.5*d + d*z + rnorm(n)
rdq.bandwidth(y=y,x=cbind(x,z),d=d,x0=0,z0=c(0,1),cv=1,val=(1:4),bdy=1,p.order=1)
#>
#>
#> Selected Bandwidths
#> ------------------------------------------------------------
#> Method Values
#> ============================================================
#> Cross Validation 2
#> MSE Optimal,Group-1 1.13 1.68
#> MSE Optimal,Group-2 1.65 4.00