ATTOptEstimate: Optimal estimation and inference for the CATT and the PATT

Description Usage Arguments Value References Examples

View source: R/att_estimate.R

Description

Computes the estimator and confidence intervals (CIs) for the conditional average treatment effect for the treated (CATT) and population average treatment effect for the treated (PATT). The tuning parameter delta is chosen to optimize the criterion specified by opt.criterion.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
ATTOptEstimate(
  y,
  d,
  D0,
  path,
  C = 1,
  opt.criterion = "RMSE",
  sigma2init,
  sigma2,
  mvar,
  DM,
  alpha = 0.05,
  beta = 0.8,
  J = 3,
  extrasteps = 50
)

Arguments

y

outcome vector with length n.

d

vector of treatment indicators with length n.

D0

matrix of distances with dimension n1 by n0 between untreated and treated units, where n0 is the number of untreated units and n1 is the number of treated units.

path

Output of ATTOptPath. If this parameter is omitted, and the parameters y, d, and D0 are supplied, ATTOptEstimate computes the path internally. Conversely, if path is supplied, the parameters y, d, and D0 are ignored.

C

Lipschitz smoothness constant

opt.criterion

criterion to optimize. One of "RMSE" (root mean squared error), "OCI" (one-sided confidence intervals), "FLCI" (fixed-length two-sided confidence intervals)

sigma2init

estimate of the conditional variance of the outcome, used to choose the optimal smoothing parameter delta. If not supplied, use homoskedastic variance estimate based on a nearest neighbor variance estimator.

sigma2

vector of variance estimates with length n for determining the conditional standard error of the optimal estimator. In contrast, sigma2init is used only for determining the optimal tuning parameter. If not supplied, use the nearest neighbor variance estimator.

mvar

Marginal variance estimate (variance of the CATT) used to construct CIs for the PATT. If not supplied use the matching estimator of Abadie and Imbens (2006).

DM

distance matrix with dimension n by n to determine nearest neighbors when when estimating sigma2init and sigma2.

alpha

determines confidence level, 1-alpha.

beta

quantile beta of excess length for determining performance of one-sided CIs.

J

number of nearest neighbors to use when estimating sigma2init and sigma2.

extrasteps

If the optimal smoothing parameter delta is attained at the end of the solution path path, compute additional extrasteps steps in the solution path and estimate it again. If extrasteps==0, then do not compute extra steps.

Value

Returns an object of class "ATTEstimate". An object of class "ATTEstimate" is a list containing the following components:

e

Vector with elements "att" (value of ATT estimate), "maxbias" (worst-case bias), "delta" (tuning parameter delta), "omega" (omega(delta)) "lindw" (maximal Lindeberg weight Lind(k)), "sd", "hl", "lower", "upper", "maxel", "rmse" (standard deviation, half-length of two-sided CI, lower and upper endpoint of one-sided CIs, worst-case excess length of one-sided CI at quantile beta and RMSE of estimator, assuming conditional variance equals sigma2inint) "rsd", "rlower", "rupper", "rhl", "rrmse", "rmaxel" (same quantities, but calculated using sigma2), "usd", "ulower", "uupper", "uhl" (standard deviation, endpoints for one-sided CIs and half-length of two-sided CI for PATE), and "C" (Value of Lipschitz constant C)

k

Vector of optimal weights k(x_i, d_i)

res

A vector with elements corresponding to the value of the state variables δ, m, r, μ, and drop of the solution path at the optimal value of delta

path

The solution path, output of ATTOptPath.

References

Armstrong, T. B., and M. Kolesár (2020): Finite-Sample Optimal Estimation and Inference on Average Treatment Effects Under Unconfoundedness, https://arxiv.org/abs/1712.04594

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
## Use NSW experimental subsample with 25 treated and untreated units
dt <- NSWexper[c(1:25, 421:445), ]
Ahalf <- diag(c(0.15, 0.6, 2.5, 2.5, 2.5, 0.5, 0.5, 0.1, 0.1))
D0 <- distMat(dt[, 2:10], Ahalf, method="manhattan", dt$treated)
## Distance matrix for variance estimation
DM <- distMat(dt[, 2:10], Ahalf, method="manhattan")
c1 <- ATTOptEstimate(y=dt$re78, d=dt$treated, D0=D0, C=1, DM=DM,
                     opt.criterion="RMSE")
## Re-use the solution path already computed
c2 <- ATTOptEstimate(path=c1$path, C=1, DM=DM, opt.criterion="FLCI")

kolesarm/ATEHonest documentation built on Nov. 14, 2020, 4:50 a.m.