Releases: nanxstats/hdnom
hdnom 6.1.0
Breaking changes
-
Updated functions and code examples to work with glmnet >= 4.1-9 (#20).
Specifically,
compare_by_validate()
andcompare_by_calibrate()
now gain a new argumentrule
for selecting lambda in glmnet models and defaults tolambda.min
. Previously, this is not tunable and defaulted tolambda.1se
. Code examples involving glmnet models are updated to use thelambda.min
rule instead oflambda.1se
so they won't generate null models.In glmnet 4.1-9, using the
lambda.1se
rule for choosing lambda from Cox model cross-validation results can generate null models more easily. Previously, cross-validation errors for Cox models were normalized by the sum of weights times event indicators per fold. In glmnet 4.1-9, cross-validation errors are normalized by the sum of all weights per fold. This change means that CV errors are divided by larger values (since censored observations now contribute to normalization), and it produces smaller CV error values and potentially smaller standard errors. It could make the 1SE rule more conservative and lead to selecting larger penalty values, hence sparser models or complete null models. This particularly affects datasets with low event rates or many censored observations, where the denominator change is most significant.
hdnom 6.0.4
Bug fixes
- Fixed C code compatibility issues with
_R_USE_STRICT_R_HEADERS_
(upcoming default in R 4.5.0) (#13):- Defined
STRICT_R_HEADERS
. - Replaced
Calloc
andFree
withR_Calloc
andR_Free
. - Included
float.h
forFLT_EPSILON
.
- Defined
hdnom 6.0.3
Improvements
- Fix "lost braces" check notes on r-devel.
- Export S3 method per guidelines in roxygen2 7.3.0.
- Use GitHub Actions to build the pkgdown site.
- Fix code linting issues.
hdnom 6.0.2
Improvements
- Use all samples instead of a much smaller set of samples in some code examples
as a temporary fix for reverse dependency check errors which result in the
null model. A proper fix will involve updating the logic to usencvsurv()
in a pathwise manner instead of with a single value of lambda.
hdnom 6.0.1
Improvements
- Removed the dependency on
survAUC
. Ported the essential C code for computing
time-dependent AUC and fixed the build issues in r-devel.
hdnom 6.0.0
This version is a major refactor of the package, with several technical adjustments to improve the functional interface, code structure, and execution performance. As a result, a few critical API-breaking changes have been made. Please update your previous code that calls hdnom accordingly. For the detailed changes, please check the updated items below.
Improvements
General
- Renamed exported functions. Most of the exported function have been renamed to be more meaningful and succinct. For example,
hdcox.*()
are renamed asfit_*()
,hdnom.nomogram()
is renamed asas_nomogram()
,hdnom.validate()
is renamed asvalidate()
, and so on. - Removed the dependency on
rms
, by reusing a minimal set of code fromrms
for nomogram construction and plotting. This results in clearer code structure, better maintainability, and faster package installation/loading speed. Also removed other non-essential package dependencies. - The first argument for
print
functions are now returned invisbily, to make it easier to use them in a pipe.
Model Fitting
- The components in the model fitting function returns are now unified across model types. For example, the model object can all be accessed by
fit$model
, and the selected "optimal" hyperparameters can be accessed byfit$lambda
. The model type is now stored explicitly asfit$type
.
Nomograms
as_nomogram
(previouslyhdnom.nomogram()
) now accepts the fitted model objects directly instead of the$model
component. It now will recognize the model type automatically, thus the previous argumentsmodel.type
has been deprecated. so that it is easier to chain the function calls together usingmagrittr
.- In
as_nomogram
, the previousddist
argument is not needed anymore and has been removed. There is also no more need to set adatadist
object as a into the global options variable (which was required in therms
user flow). - The new nomogram implementation prints and plots the nomogram for the penalized regression models directly. This supersedes the old implementation, which fits an OLS model to regress the linear predictors on the same set of predictors selected by the penalized Cox regression model, aiming to approximate the penalized model. The numerical or visual difference is minimal, though.
Visualizations
- Add a new ggplot2 theme
theme_hdnom()
and applies it to most of the validation, calibration, and comparison plots for a consistent, cleaner look across plots within the package.
hdnom 5.0
Improvements
- Exported the survival curve prediction functions (
glmnet.survcurve()
,ncvreg.survcurve()
,penalized.survcurve()
) and Breslow baseline hazard estimator functions (glmnet.basesurv()
,ncvreg.basesurv()
,penalized.basesurv()
). - New URL for the documentation website: https://nanx.me/hdnom/.