Estimates the local average treatment effect (LATE) and the
local average treatment effect on the treated (LATT) using observational
data with a binary instrument, implementing the complete estimator suite
of Sloczynski, Uysal, and Wooldridge: the doubly robust estimators of
Sloczynski, Uysal, and Wooldridge (2022)
drlate provides doubly robust estimation of the local average
treatment effect (LATE) and the local average treatment effect on the
treated (LATT) from observational data with a binary instrument. It
implements the complete estimator program of Słoczyński, Uysal, and
Wooldridge in one package: the doubly robust
IPWRA/IPW/AIPW/RA estimators of
Słoczyński, Uysal & Wooldridge (2022)
and the Abadie-kappa weighting estimators of
Słoczyński, Uysal & Wooldridge (2025, JBES),
behind a single three-formula interface. Standard errors for every
estimator come from one jointly stacked M-estimation system whose sandwich
variance accounts for all estimation stages, and the test suite verifies
numerical equivalence of estimates and standard errors against fixtures
generated by the authors' own Stata commands
(drlate, SSC
S459708, and kappalate,
SSC S459257) across 38 scenarios. Around the estimators the package
provides the workflow applied IV analysis needs: design diagnostics,
weak-instrument-robust Fieller confidence sets, cluster-aware bootstrap
inference, estimator comparison, and the 2022 paper's doubly robust
Hausman test of unconfoundedness.
# install.packages("remotes")
remotes::install_github("kvenkita/drlate")
library(drlate)
data(drlate_sim)
fit <- drlate(lwage ~ age + educ, # outcome model
nvstat ~ age + educ, # treatment model
rsncode ~ age + educ, # instrument propensity score model
data = drlate_sim)
summary(fit)
#> Local average treatment effect
#> Number of obs : 2,000
#> Estimator : IPWRA
#> Outcome model : linear
#> Treatment model : logit
#> Instrument model : logit (MLE)
#>
#> Estimate Std. Error z value Pr(>|z|) [95% conf. interval]
#> LATE: D on Y 0.4705 0.07915 5.944 2.786e-09 0.3153 0.6256
#> ATE: Z on Y 0.2845 0.05043 5.642 1.679e-08 0.1857 0.3834
#> ATE: Z on D 0.6048 0.01837 32.929 8.326e-238 0.5688 0.6408
#>
#> First stage (Z on D): z = 32.93 (z^2 ~ first-stage F = 1084)
If you use drlate in your research, please cite:
Venkitasubramanian, K. (2026). drlate: Doubly Robust Estimation of the Local Average Treatment Effect in R. R package version 0.3.0. https://github.com/kvenkita/drlate
and the methodological papers whose estimators you use:
Słoczyński, T., Uysal, S. D., & Wooldridge, J. M. (2022). Doubly Robust Estimation of Local Average Treatment Effects Using Inverse Probability Weighted Regression Adjustment. arXiv:2208.01300.
Słoczyński, T., Uysal, S. D., & Wooldridge, J. M. (2025). Abadie's Kappa and Weighting Estimators of the Local Average Treatment Effect. Journal of Business & Economic Statistics 43(1), 164–177.
The package descends from the authors' Stata commands:
Uysal, D., Słoczyński, T., & Wooldridge, J. M. (2026). DRLATE: Stata module to perform doubly robust estimation of the local average treatment effect (LATE) and the local average treatment effect on the treated (LATT). Statistical Software Components S459708, Boston College Department of Economics.
(citation("drlate") prints the entries with BibTeX.)
| Estimands | LATE, LATT |
Estimators (method) |
IPWRA (default), IPW, AIPW, RA; Abadie-kappa weighting: kappa, kappa0, kappa10 (Słoczyński, Uysal & Wooldridge 2025, JBES) |
| Outcome / treatment models | linear, logit, probit, Poisson; fractional-logit and fractional-probit for outcomes in [0, 1] |
Instrument propensity score models (ivmodel) |
logit MLE (default), CBPS, IPT; probit MLE for the weighting estimators |
| Weighting | normalized (default) or unnormalized moments; sampling weights |
| Standard errors | joint sandwich over all estimation stages; robust or cluster-robust |
| Diagnostics | plot(fit) for propensity-score overlap (histogram or density), covariate balance (love plot or per-covariate densities), and weight distributions; balance() / balance(fit, detail = TRUE) tables; balance_test() (Imai–Ratkovic overidentification balance test); first-stage strength on every printout |
| Complier profiling | complier_means() for population-vs-complier covariate means; kappa_weights() for the underlying Abadie-kappa weights |
| Fieller confidence sets | confint(fit, method = "fieller") — weak-instrument-robust; available for all ratio-form estimators including kappa/kappa0 |
| Bootstrap | drlate(..., vcov = "bootstrap") — cluster-aware percentile intervals |
| DR Hausman test | dr_hausman() — test of unconfoundedness under one-sided noncompliance (2022 paper, Section 5) |
| Estimator comparison | drlate_compare() with a dot-whisker plot |
| Overlap | pstolerance enforcement, osample violator flagging |
The package website serves the primer, the package overview and Stata replication, and the function reference.
MIT. Portions derived from the Stata package drlate, © 2026 S. Derya
Uysal, Tymon Słoczyński, and Jeffrey M. Wooldridge (MIT licensed).