This engine allows the estimation of linear coefficients using
either ridge, lasso or elastic net regressions techniques. Backbone of this
engine is the glmnet R-package which is commonly used in SDMs,
including the popular 'maxnet' (e.g. Maxent) package. Ultimately this
engine is an equivalent of engine_breg, but in a "frequentist" setting. If
user aim to emulate a model that most closely resembles maxent within the
ibis.iSDM modelling framework, then this package is the best way of doing so.
Compared to the 'maxnet' R-package, a number of efficiency settings
are implemented in particular for cross-validation of alpha and lambda
values.
Limited amount of prior information can be specified for this engine,
specifically via offsets or as GLMNETPrior, which allow to specify priors
as regularization constants.
Arguments
- x
distribution()(i.e.BiodiversityDistribution) object.- alpha
A
numericgiving the elasticnet mixing parameter, which has to be between0and1.alpha=1is the lasso penalty, andalpha=0the ridge penalty (Default:0).- nlambda
A
numericgiving the number of lambda values to be used (Default:100).- lambda
A
numericwith a user supplied estimate of lambda. Usually best to let this parameter be determined deterministically (Default:NULL).- type
The mode used for creating posterior predictions. Either making
"link"or"response"(Default:"response").- ...
Other parameters passed on to glmnet.
Value
An Engine.
Details
Regularized regressions are effectively GLMs that are fitted with
ridge, lasso or elastic-net regularization. Which of them is chosen is
critical dependent on the alpha value: * For alpha equal to 0
a ridge regularization is used. Ridge regularization has the property that it
doesn't remove variables entirely, but instead sets their coefficients to
0. * For alpha equal to 1 a lasso regularization is
used. Lassos tend to remove those coefficients fully from the final model
that do not improve the loss function. * For alpha values between
0 and 1 a elastic-net regularization is used, which is
essentially a combination of the two. The optimal lambda parameter can be
determined via cross-validation. For this option set "varsel" in
train() to "reg".
References
Jerome Friedman, Trevor Hastie, Robert Tibshirani (2010). Regularization Paths for Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 33(1), 1-22. URL https://www.jstatsoft.org/v33/i01/.
Renner, I.W., Elith, J., Baddeley, A., Fithian, W., Hastie, T., Phillips, S.J., Popovic, G. and Warton, D.I., 2015. Point process models for presence‐only analysis. Methods in Ecology and Evolution, 6(4), pp.366-379.
Fithian, W. & Hastie, T. (2013) Finite-sample equivalence in statistical models for presence-only data. The Annals of Applied Statistics 7, 1917–1939
See also
Other engine:
engine_bart(),
engine_breg(),
engine_gdb(),
engine_glm(),
engine_inla(),
engine_inlabru(),
engine_scampr(),
engine_stan(),
engine_xgboost()
Examples
if (FALSE) { # \dontrun{
# Add GLMNET as an engine
x <- distribution(background) |> engine_glmnet(iter = 1000)
} # }
