The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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).These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.