Initial release, implementing the outcome-adaptive lasso of Shortreed & Ertefaie (2017), Biometrics 73(4):1111–1122, doi:10.1111/biom.12679, and the generalized outcome-adaptive lasso (GOAL) of Baldé, Yang & Lefebvre (2023), Biometrics 79(1):514–520, doi:10.1111/biom.13683.
oal(): outcome-adaptive lasso propensity scores.
Adaptive penalty weights |b_j|^-gamma from an unpenalized
outcome model Y ~ A + X on the full sample
(gaussian() validated; binomial() allowed with
a one-time warning, GLM theory per Baldé 2025,
doi:10.1016/j.spl.2025.110379); tuning over Shortreed & Ertefaie’s
exponent grid lambda_n = n^delta with the paired penalty
exponent gamma = 2*(gamma.factor - delta + 1); selection by
the weighted absolute mean difference (wAMD) with |b_j|
weights, ATE (default) or ATT weighting; ties take the first minimum in
documented grid order.glmnet: every grid point is evaluated at
s = mean(pen) * lambda_n / n with
coef(..., exact = TRUE), undoing glmnet’s internal
sum-to-nvars penalty-factor rescaling and its per-observation loss scale
(the rejoinder recipe of Jones, Ertefaie & Shortreed 2023,
doi:10.1111/biom.13681). The KKT conditions of the target objective are
the acceptance criterion in the test suite, with a drift guard against
the installed glmnet version.method = "goal": Baldé’s elastic-net generalization via
the Zou–Hastie data augmentation with the (1 + lambda2)
rescale of ALL coefficients including the intercept (Baldé 2025
supplement: expit(cbind(1, X) %*% (1 + lambda2) * coef));
on augmented grid points (lambda2 > 0) the raw penalty
constant is (n + q)^delta with q = p
augmentation rows, matching the author’s
adaptive.lasso(lambda = n.q^(il)) with
n.q = n + q. lambda2 is selected jointly with
(delta, gamma) by the wAMD — the flat first-minimum,
equivalent to Baldé’s nested
per-lambda2-then-over-lambda2 rule — and
lambda2 = 0 exactly nests plain OAL (no augmentation on
that code path). The default lambda2 grid
c(0, 10^c(-2, -1.5, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 1))
is the author’s published grid (Baldé 2025 supplement, “taken from Zou
and Hastie (2005)”), verified against the official GOAL code on
2026-07-02.clip = c(0.01, 0.99) is a Shortreed–Ertefaie-lineage safety
choice, and clip = c(1e-12, 1 - 1e-12) effectively disables
clipping to reproduce the reference behavior.standardize = FALSE;
coefficients returned on both scales.refit = TRUE (post-selection unpenalized refit, Schnitzer
et al. 2025, doi:10.1002/sim.70316, adapted from a longitudinal setting;
convergence recorded per grid point), scalar gamma
(Schnitzer-style fixed exponent crossed with the delta grid), and the
outcome.coef hook (user-supplied weights on the
standardized scale — screening use only; zeros become hard exclusions
via glmnet’s Inf-to-exclude).fit$ps (numeric, named by
rownames(data), clipped to
clip = c(0.01, 0.99)) drops into
MatchIt::matchit(distance = ),
WeightIt::weightit(ps = ), and
psAve::psave(ps.append = ); oal_match() /
oal_weight() wrappers reuse the stored formula and data;
cobalt::bal.tab() works on oal objects.print() (provenance line first; retained
vs excluded covariates with the instrument-exclusion rationale of
Brookhart et al. 2006 and Myers et al. 2011; the literal next call;
near-positivity diagnostic when > 5% of scores sit at a clip bound),
summary(), plot() ("wamd",
"coef", "balance"), coef() (both
scales), predict() (works without keep.fits),
weights().oal_wamd() scores any candidate
propensity score on the exact S&E wAMD formula (single source of
truth; never delegated to cobalt).NA in used variables is an error naming
the variables (never a silent drop); zero-variance and
aliased/rank-deficient covariates error; fully deterministic pipeline
(no seed argument); English-only messages.fAL/fOAL code (which is superseded, not
reproduced): the fAL gamma transcription bug, the
varlist wAMD bug, global-n scoping, per-subset
scale(), and the archived lqa dependency. See
vignette("method-details", package = "oalasso").ps.append composition and its caveats), and Method details
and provenance (all formulas, the exact penalty-scale correction,
provenance table, relation to other software, honest nonlinear-extension
notes).