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
numeric
giving the elasticnet mixing parameter, which has to be between0
and1
.alpha=1
is the lasso penalty, andalpha=0
the ridge penalty (Default:0
).- nlambda
A
numeric
giving the number of lambda values to be used (Default:100
).- lambda
A
numeric
with 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)
} # }