- 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 when `num_knots = 1`

. This results in HAL agreeing with (main terms) `glmnet`

when `smoothness_orders = 1`

and `num_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`

and `predict`

; and added `fit_control`

and `formula_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 between `X`

, `Y`

, and `X_unpenalized`

. These checks lead to quickly-produced errors, opposed to enumerating the basis list and then letting `glmnet`

error on something trivial like this. * Modified formula interface in `fit_hal`

, so `formula`

is now provided directly to `fit_hal`

and `formula_hal`

is run within `fit_hal`

. Due to these changes, it no longer made sense for `formula_hal`

to accept `data`

, so it now takes as input `X`

. Also, the `formula_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 argument `fit_type`

have been removed from `fit_hal`

. * Re-added `lambda.min.ratio`

as a `fit_control`

argument to `fit_hal`

. We’ve seen that not setting `lambda.min.ratio`

in `glmnet`

can lead to no `lambda`

values that fit the data sufficiently well, so it seems appropriate to override the `glmnet`

default.

As of February 2021: * Support *higher order* HAL via the new `smoothness_orders`

argument * `smoothness_orders`

is a vector of length 1 or length `ncol(X)`

. * If `smoothness_orders`

is of length 1 then its values are recycled to form a vector of length `ncol(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 in `X`

. * Degree-dependant binning. Higher order terms are binned more coarsely; the `num_knots`

argument is a vector up to `max_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 to `glmnet()`

. * Simplifies output of `fit_hal()`

by unifying the redundant `hal_lasso`

and `glmnet_lasso`

slots into the new `lasso_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 (https://github.com/tlverse/hal9001/pull/64). * Adds a software paper for publication in the *Journal of Open Source Software* (https://github.com/tlverse/hal9001/pull/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 argument `lambda.min.ratio`

when `family = "gaussian"`

is not set. * Adds a short software paper for submission to JOSS. * Minor documentation updates.

As of March 2020 * First CRAN release.