← Back to all sparks
H

hdnom

ANALYTICS
Velocity5.0

Benchmarking and visualization toolkit for penalized Cox models

hdnom is in pure custodial mode, absorbing glmnet's changes so its users don't have to

survival analysisrregularizationnomogramsmaintenanceglmnet
Current state
hdnom builds nomograms and validation/calibration workflows for high-dimensional Cox survival models on top of glmnet, ncvreg and penalized. The package's own interface has been stable since the 6.0.0 refactor in 2019; every release since has been maintenance. The recent run is entirely about surviving glmnet's evolution — a lambda-selection rule argument, then a cox.ties argument pinning the old tie handling.
Where it's heading
The releases track two upstream pressures with no feature work of its own. glmnet is the larger one: its 4.1-9 change to how Cox cross-validation errors are normalized made lambda.1se select null models far more often, forcing hdnom to expose a rule argument and switch its examples to lambda.min. R-devel is the other, producing a steady trickle of strict-headers, deprecated-symbol and check-note fixes. The pattern is consistent — absorb the upstream change, default to whatever preserves existing behaviour, let users opt into the new one.
Prediction
The cox.ties default is explicitly pinned to "breslow" to silence glmnet's migration warning, which is a deferral rather than a decision; expect a future release to flip that default to "efron" once glmnet completes the transition.

Recent moves

  1. 18d ago

    hdnom 6.2.1

    A one-line fix replacing the deprecated .Names special name in a structure() call to clear an R-devel check note. Published hours after 6.2.0, so read the two together.

    View source ↗
  2. 18d ago

    hdnom 6.2.0 pins Cox tie handling ahead of glmnet's migration

    The second consecutive release absorbing a glmnet change. fit_lasso() and its siblings gain a cox.ties argument forwarded to cv.glmnet() and glmnet(), defaulted to "breslow" to lock current behaviour and silence the upstream migration warning, with "efron" available for anyone who wants it. Examples also move to rule = "lambda.min" where glmnet 5.0 would otherwise fit a null Cox model.

    View source ↗
  3. 1y ago

    hdnom 6.1.0 exposes lambda selection after a glmnet normalization change

    The release that set the current pattern. glmnet 4.1-9 changed how Cox cross-validation errors are normalized — by the sum of all fold weights rather than weights times event indicators — which made lambda.1se produce null models much more readily. compare_by_validate() and compare_by_calibrate() gain a rule argument and default to lambda.min, so results from this version will not match earlier ones.

    View source ↗
  4. 1y ago

    hdnom 6.0.4

    C code brought into line with _R_USE_STRICT_R_HEADERS_ ahead of R 4.5.0 — Calloc/Free swapped for their R_ prefixed forms. Compilation-only.

    View source ↗
  5. 2y ago

    hdnom 6.0.3

    Check-note cleanup: lost braces fixed, an S3 method exported per roxygen2 7.3.0, pkgdown moved to GitHub Actions. No behaviour change.

    View source ↗
  6. 3y ago

    hdnom 6.0.2

    Code examples widened to use all samples as a stopgap for reverse-dependency check failures producing null models — the same null-model problem glmnet would later force a real fix for. The notes flag the proper solution, a pathwise ncvsurv() call, as deferred.

    View source ↗