# Comparison of different engines

#### Martin Jung

#### 2024-02-29

Source:`vignettes/articles/06_engine_comparison.Rmd`

`06_engine_comparison.Rmd`

## Capabilities of included engines

As outlined by Fletcher
et al. (2019), there are many different forms of integration such as
through [`ensemble`

] modelling, adding
[`offsets`

], predictors
(e.g. [`add_predictor_range()`

] ) or [`priors`

]
and through full integration of different likelihoods (See (Data integration) ). Not all of these
options are available for every engine supported by the
*ibis.iSDM* package and the table below shows the currently
implemented engines and various types of integrations supported by
them.

Stating the name and function call of each engine and its supported
model complexity with linear (ln) and non-linear (nl) formulations,
although it should be noted that linear models can approximate
non-linearity by including transformations (as with Maxent,
e.g. hinge/product/quadratic). Not every engine supports the different
types of integration via `ensembles`

, `offsets`

,
`priors`

, joint likelihood estimation and
`ensemble`

compositing of models using separate datasets of
the same species. When multiple biodiversity datasets are added to an
engine that does not support joint likelihood estimation, the parameter
`method_integration`

in [`train()`

] determines how
the different predictions are integrated. Available options for
integration are via `predictors`

, `offsets`

,
`interactions`

, `priors`

or `weights`

(see the help file of [`train()`

] for more information).

Name | Complexity | Engine | `offsets` |
`priors` |
Joint likel. | `ensemble` |
---|---|---|---|---|---|---|

Generalized linear model (GLM) | ln | [`engine_glm()` ] |
x | x | ||

Regularized elastic net regression (GLMNET) | ln | [`engine_glmnet()` ] |
x | `GLMNETPrior()` |
x | |

Bayesian additive regression trees (BART) | nl | [`engine_bart()` ] |
(x) | `BARTPrior()` |
x | |

Bayesian regularized regression (BREG) | ln | [`engine_breg()` ] |
`BREGPrior()` |
x | ||

Gradient descent boosting (GDB) | ln/nl | [`engine_gdb()` ] |
x | `GDBPrior()` |
x | |

Integrated Nested Laplace approximation (INLA) | ln | [`engine_inla()` ] |
x | `INLAPrior()` |
x | x |

Integrated Nested Laplace approximation (INLABRU) | ln | [`engine_inlabru()` ] |
x | `INLAPrior()` |
x | x |

Bayesian regressions (Stan) | ln | [`engine_stan()` ] |
x | `STANPrior()` |
x | x |

eXtreme Gradient Boosting (XGBOOST) | ln/nl | [`engine_xgboost()` ] |
x | `XGBPrior()` |
x |