tramnet 0.1-0
New features
tramnet() is now an S3 generic. The existing interface,
taking an unpenalized tram model and a design matrix, is
available as tramnet.default() and remains unchanged.
- New formula interface
tramnet.formula(), the penalized
analogue of tram::tram(), together with the convenience
wrappers Coxphnet(), Colrnet(),
Lmnet(), BoxCoxnet(),
Lehmannnet() and Survregnet(). The design
matrix is set up and scaled internally, and the scaling of the training
data is re-used for newdata in all methods and in
cvl_tramnet().
coef() gains argument scaled. For models
fitted via the formula interface, coefficients are reported on the
original scale of the covariates by default.
- New
model.matrix() method.
mbo_recommended() additionally accepts a fitted
"tramnet" object.
- Case weights and offsets are now taken into account when
fitting.
Changes
- Model-based optimization now uses package ‘mlr3mbo’ instead of the
retired package ‘mlrMBO’. Function names and arguments of
mbo_tramnet(), elnet_obj(),
lasso_obj(), ridge_obj() and
mbo_recommended() are unchanged, but the default of
opt_crit is now "ei",
mbo_tramnet() returns a list and the objective functions
are of class bbotk::ObjectiveRFun.
- Tests use ‘testthat’.
- Removed unused dependencies (‘mlbench’, ‘utils’) and the unused
internal function
.plot_cvl(). The package description no
longer mentions models for binary and ordered categorical responses,
which cannot be fitted.
Bug fixes
logLik(object, newdata) now returns the out-of-sample
log-likelihood without subtracting the penalty of the training fit.
Consequently, cvl_tramnet() and mbo_tramnet()
tune lambda and alpha based on the unpenalized
out-of-sample log-likelihood (log score), which previously favoured
small values of lambda.
- The quadratic part of the penalty was erroneously scaled by
lambda^2 instead of lambda in the objective
function. The penalty is now
lambda * (0.5 * (1 - alpha) * ||beta||_2^2 + alpha * ||beta||_1),
as documented and as in ‘glmnet’, and coincides with the penalty
subtracted in logLik(). Fits with alpha < 1
and lambda different from 0 and 1 change.
predict(), simulate(),
plot(), residuals() and estfun()
now use the correct sign of the shift term for models with
negative = TRUE, such as Lm(),
BoxCox(), Lehmann() and
Survreg().
plot_path() no longer warns when restoring graphical
parameters.
predict(), simulate() and
plot() work with non-syntactic column names of the design
matrix (e.g., interactions or log(x)).
prof_lambda(), prof_alpha() and
cvl_tramnet(..., fit_opt = TRUE) refit models directly
instead of re-evaluating the original call, which failed when the
baseline model or the design matrix were not visible from the global
environment.