Outcome-Adaptive Lasso Propensity Scores

Estimates propensity scores by the outcome-adaptive lasso of Shortreed and Ertefaie (2017) and the generalized outcome-adaptive lasso (GOAL) of Balde, Yang and Lefebvre (2023) , using 'glmnet' with an exact penalty-scale correction so that the published objectives and tuning grids are reproduced. Tuning is by the weighted absolute mean difference balance criterion. The resulting score is designed to be supplied directly to the matchit() function of 'MatchIt' as a distance measure, to the weightit() function of 'WeightIt' as a propensity score, or to the psave() function of 'psAve' as an appended candidate.


oalasso

R-CMD-check

Outcome-adaptive lasso propensity scores — published methods, exactly.

oalasso implements the outcome-adaptive lasso (OAL) of Shortreed & Ertefaie (2017) and the generalized outcome-adaptive lasso (GOAL) of Baldé, Yang & Lefebvre (2023) for propensity score estimation. OAL fits a logistic propensity score model with an adaptively weighted lasso penalty whose weights come from an outcome regression: covariates unrelated to the outcome — instruments and noise variables — receive an exploding penalty and are excluded, while confounders and outcome predictors are retained. Excluding instruments from a propensity score model improves precision and avoids bias amplification under unmeasured confounding (Brookhart et al. 2006; Myers et al. 2011). Tuning is by the weighted absolute mean difference (wAMD) balance criterion, and method = "goal" adds Baldé's elastic-net ridge term for correlated covariates and fragile positivity.

Fidelity is the package's identity. The solver is glmnet with an exact, KKT-verified penalty-scale correction, so the published objectives and tuning grids (Shortreed & Ertefaie's $\lambda_n = n^\delta$ grid with paired $\gamma$) are reproduced rather than silently reinterpreted by glmnet's internal penalty-factor rescaling. Every fit prints a provenance line stating exactly which published method it implements — and flags anything that goes beyond the validated territory. The pipeline is fully deterministic (no seed needed).

oalasso is the second package of a suite with psAve, and a companion to the MatchIt/WeightIt/cobalt ecosystem. The deliverable is a plain numeric vector of propensity scores: fit$ps drops into MatchIt::matchit() as a distance measure, WeightIt::weightit() as a propensity score, or psAve::psave() as an appended candidate; thin oal_match() / oal_weight() wrappers do this without retyping the formula, and cobalt::bal.tab() works on the fitted object directly. Effect estimation stays where it belongs, in MatchIt/WeightIt/survey/marginaleffects.

Installation

# install.packages("remotes")
remotes::install_github("kabajiro/oalasso")

Quick example

library(oalasso)
data("lalonde", package = "MatchIt")

fit <- oal(treat ~ age + educ + race + married + nodegree + re74 + re75,
           data = lalonde, outcome = ~ re78)   # OAL, wAMD-tuned; deterministic
fit          # provenance, retained vs excluded covariates, and the literal next call

m <- oal_match(fit, method = "nearest")        # a genuine matchit object
w <- oal_weight(fit)                           # a genuine weightit object
cobalt::bal.tab(fit)                           # balance with the selected weights

Learn more

  • Getting Started with oalasso — what OAL selects and why, the three-line matching and weighting workflows, how the wAMD tuning works, and how to read the output.
  • Using oalasso with psAve — appending the OAL score as a candidate in psAve::psave(), when the composition helps, and its caveats.
  • Method details and provenance — all formulas, the exact glmnet penalty-scale correction, the provenance of every default, differences from the author's legacy code, relation to other software, and honest notes on nonlinear extensions.

Citation

If you use oalasso, please cite the methods it implements, and the package:

Shortreed, S. M., & Ertefaie, A. (2017). Outcome-adaptive lasso: Variable selection for causal inference. Biometrics, 73(4), 1111–1122. doi:10.1111/biom.12679

Baldé, I., Yang, Y. A., & Lefebvre, G. (2023). Reader reaction to "Outcome-adaptive lasso: Variable selection for causal inference" by Shortreed and Ertefaie (2017). Biometrics, 79(1), 514–520. doi:10.1111/biom.13683 (when method = "goal" is used)

Kabata, D. (2026). oalasso: Outcome-Adaptive Lasso Propensity Scores. R package. https://github.com/kabajiro/oalasso (see citation("oalasso"))

@article{shortreed2017outcome,
  author  = {Shortreed, Susan M. and Ertefaie, Ashkan},
  title   = {Outcome-adaptive lasso: Variable selection for causal inference},
  journal = {Biometrics},
  year    = {2017},
  volume  = {73},
  number  = {4},
  pages   = {1111--1122},
  doi     = {10.1111/biom.12679}
}

@article{balde2023goal,
  author  = {Bald{\'e}, Ismaila and Yang, Yi Archer and Lefebvre, Genevi{\`e}ve},
  title   = {Reader reaction to ``Outcome-adaptive lasso: Variable selection for causal inference'' by Shortreed and Ertefaie (2017)},
  journal = {Biometrics},
  year    = {2023},
  volume  = {79},
  number  = {1},
  pages   = {514--520},
  doi     = {10.1111/biom.13683}
}

License

GPL (>= 2)

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("oalasso")

1.0.0 by Daijiro Kabata, 3 months ago


https://kabajiro.github.io/oalasso/, https://github.com/kabajiro/oalasso


Report a bug at https://github.com/kabajiro/oalasso/issues


Browse source code at https://github.com/cran/oalasso


Authors: Daijiro Kabata [aut, cre, cph]


Documentation:   PDF Manual  


GPL (>= 2) license


Imports glmnet, cobalt, stats, utils, graphics

Suggests MatchIt, WeightIt, psAve, rpart, testthat, knitr, rmarkdown


See at CRAN