This learner provides fitting procedures for building regression models thru the spline regression techniques described in Friedman (1991) and Friedman (1993) , via earth and the function earth.

Format

An R6Class object inheriting from Lrnr_base.

Value

A learner object inheriting from Lrnr_base with methods for training and prediction. For a full list of learner functionality, see the complete documentation of Lrnr_base.

Parameters

  • degree: A numeric specifying the maximum degree of interactions to be used in the model. This defaults to 2, specifying up through one-way interaction terms. Note that this differs from the default of earth.

  • penalty: Generalized Cross Validation (GCV) penalty per knot. Defaults to 3 as per the recommendation for degree > 1 in the documentation of earth. Special values (for use by knowledgeable users): The value 0 penalizes only terms, not knots. The value -1 translates to no penalty.

  • pmethod: Pruning method, defaulting to "backward". Other options include "none", "exhaustive", "forward", "seqrep", "cv".

  • nfold: Number of cross-validation folds. The default is 0, for no cross-validation.

  • ncross: Only applies if nfold > 1, indicating the number of cross-validation rounds. Each cross-validation has nfold folds. Defaults to 1.

  • minspan: Minimum number of observations between knots.

  • endspan: Minimum number of observations before the first and after the final knot.

  • ...: Other parameters passed to earth. See its documentation for details.

References

Friedman JH (1991). “Multivariate adaptive regression splines.” The Annals of Statistics, 1--67.

Friedman JH (1993). “Fast MARS.” Stanford University. https://statistics.stanford.edu/sites/g/files/sbiybj6031/f/LCS%20110.pdf.

Examples

data(cpp_imputed)
covars <- c(
  "apgar1", "apgar5", "parity", "gagebrth", "mage", "meducyrs", "sexn"
)
outcome <- "haz"
task <- sl3_Task$new(cpp_imputed,
  covariates = covars,
  outcome = outcome
)
# fit and predict from a MARS model
earth_lrnr <- make_learner(Lrnr_earth)
earth_fit <- earth_lrnr$train(task)
earth_preds <- earth_fit$predict(task)