Skip to contents

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.

Installation

# install.packages("remotes")
remotes::install_github("kvenkita/drlate")

Example

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)

Citation

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

Features

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

Documentation

The package website serves the primer, the package overview and Stata replication, and the function reference.

License

MIT. Portions derived from the Stata package drlate, © 2026 S. Derya Uysal, Tymon Słoczyński, and Jeffrey M. Wooldridge (MIT licensed).