- Fixed predict method to address changes required by Matrix 1.6.2
- Reduced default number of knots used for zero-order and first-order basis
expansions as follows:
base_num_knots_0
set to 20, used to be 200base_num_knots_1
set to 10, used to be 50
- Added multivariate outcome prediction
- Fixed bug with
prediction_bounds
(afit_hal
argument infit_control
list), which would error when it was specified as a numeric vector. Also, added a check to assert this argument is correctly specified, and tests to ensure a numeric vector of bounds is provided. - Simplified
fit_control
list arguments infit_hal
. Users can still specify additional arguments tocv.glmnet
andglmnet
in this list. - Defined
weights
as a formal argument infit_hal
, opposed to an optional argument infit_control
, to facilitate specification and avoid confusion. This increases flexibility with SuperLearner wrapperSL.hal9001
as well;fit_control
can now be customized withSL.hal9001
.
- Version bump for CRAN resubmission following archiving.
- Version bump for CRAN resubmission following archiving.
- Minor adjustments to speed up unit tests and examples.
- Version bump for CRAN resubmission.
As of September 2021:
- Minor change to how binning is performed when
num_knots = 1
, ensuring that the minimal number of knots is chosen whennum_knots = 1
. This results in HAL agreeing with (main terms)glmnet
whensmoothness_orders = 1
andnum_knots = 1
. - Revised formula interface with enhanced capabilities, allowing specifciation
of penalization factors, smoothness_orders, and the number of knots for each
variable, for every single term separately using the new
h
function. It is possible to specify, e.g.,h(X) + h(W)
which will generate and concatenate the two basis function terms.
As of April 2021:
- The default of
fit_hal
is now a first order smoothed HAL with binning. - Updated documentation for
formula_hal
,fit_hal
andpredict
; and addedfit_control
andformula_control
lists for arguments. Moved much of the text to details sections, and shortened the argument descriptions. - Updated
summary
to support higher-order HAL fit interpretations. - Added checks to
fit_hal
for missingness and dimensionality correspondence betweenX
,Y
, andX_unpenalized
. These checks lead to quickly-produced errors, opposed to enumerating the basis list and then lettingglmnet
error on something trivial like this. - Modified formula interface in
fit_hal
, soformula
is now provided directly tofit_hal
andformula_hal
is run withinfit_hal
. Due to these changes, it no longer made sense forformula_hal
to acceptdata
, so it now takes as inputX
. Also, theformula_fit_hal
function was removed as it is no longer needed. - Support for the custom lasso procedure implemented in
Rcpp
has been discontinued. Accordingly, the"lassi"
option and argumentfit_type
have been removed fromfit_hal
. - Re-added
lambda.min.ratio
as afit_control
argument tofit_hal
. We've seen that not settinglambda.min.ratio
inglmnet
can lead to nolambda
values that fit the data sufficiently well, so it seems appropriate to override theglmnet
default.
As of February 2021:
- Support higher order HAL via the new
smoothness_orders
argumentsmoothness_orders
is a vector of length 1 or lengthncol(X)
.- If
smoothness_orders
is of length 1 then its values are recycled to form a vector of lengthncol(X)
. - Given such a vector of length
ncol(X)
, the ith element gives the level of smoothness for the variable corresponding to the ith column inX
.
- Degree-dependant binning. Higher order terms are binned more coarsely; the
num_knots
argument is a vector up tomax_degree
controlling the degree-specific binning. - Adds
formula_hal
which allows a formula specification of a HAL model.
As of November 2020:
- Allow support for Poisson family to
glmnet()
. - Begins consideration of supporting arbitrary
stats::family()
objects to be passed through to calls toglmnet()
. - Simplifies output of
fit_hal()
by unifying the redundanthal_lasso
andglmnet_lasso
slots into the newlasso_fit
slot. - Cleans up of methods throughout and improves documentation, reducing a few
redundancies for cleaner/simpler code in
summary.hal9001
. - Adds link to DOI of the published Journal of Open Source Software paper in
DESCRIPTION
.
As of September 2020:
- Adds a
summary
method for interpreting HAL regressions (#64). - Adds a software paper for publication in the Journal of Open Source Software (#71).
As of June 2020:
- Address bugs/inconsistencies reported in the prediction method when trying to specify a value of lambda not included in initial fitting.
- Addresses a bug arising from a silent failure in
glmnet
in which it ignores the argumentlambda.min.ratio
whenfamily = "gaussian"
is not set. - Adds a short software paper for submission to JOSS.
- Minor documentation updates.
As of March 2020
- First CRAN release.