We observe \(n\) IID draws of \((Y_i, W_i, \mathbf{X}_i) \in \mathbb{R}\times \left\{ 0, 1 \right\}
\times \mathbb{R}^d\). We partition the observations into Treated \(\mathcal{T} := \left\{ i:
W_i = 1 \right\}\) and Control \(\mathcal{C} := \left\{ i: W_i = 0 \right\}\), with \(n_t =
\vert\mathcal{T}\vert\) and \(n_c = \vert\mathcal{C}\vert\) corresponding with the number of treatment and control units respectively. We define the fraction of treated units in the sample as \(\rho = n_t / n\).
Each unit has two potential outcomes: \(Y^1, Y^0\). Depending on the estimand, we make variations on the following assumptions:
Will stick to ATT from hereon; ATE estimation outside experiments is a pipe-dream.
Matching: 1:1
library(Matching)Match(y, w, X) |>summary()
Estimate... 2037.2
AI SE...... 1731.1
T-stat..... 1.1768
p.val...... 0.23928
Original number of observations.............. 2675
Original number of treated obs............... 185
Matched number of observations............... 185
Matched number of observations (unweighted). 218
Matching: M:1
Match(y, w, X, M =5) |>summary()
Estimate... 1976.3
AI SE...... 1444.9
T-stat..... 1.3679
p.val...... 0.17136
Original number of observations.............. 2675
Original number of treated obs............... 185
Matched number of observations............... 185
Matched number of observations (unweighted). 938
Bias-corrected Matching: Linear outcome model
Match(y, w, X, BiasAdjust = T) |>summary()
Estimate... 2374.7
AI SE...... 1714.1
T-stat..... 1.3854
p.val...... 0.16594
Original number of observations.............. 2675
Original number of treated obs............... 185
Matched number of observations............... 185
Matched number of observations (unweighted). 218
Matching: Pscore Matching
Match(y, w, X = ehat, BiasAdjust = T) |>summary()
Estimate... 762.06
AI SE...... 1756.3
T-stat..... 0.43391
p.val...... 0.66435
Original number of observations.............. 2675
Original number of treated obs............... 185
Matched number of observations............... 185
Matched number of observations (unweighted). 2027
Covariate Balancing Propensity Score (CBPS)
library(CBPS)# CBPScbps =CBPS(w ~ X)
[1] "Finding ATT with T=1 as the treatment. Set ATT=2 to find ATT with T=0 as the treatment"
lm_robust(y ~ w, weights = cbps$weights)
Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
(Intercept) 3911 684.7 5.712 0.00000001236 2568.8 5254 2673
w 2438 896.3 2.720 0.00657755914 680.1 4195 2673