Model components are specified with general inputs and mapping
methods to the latent variables, and the predictors are specified via
general R expressions, with separate expressions for each observation
likelihood model in multi-likelihood models. The inlabru engine - similar
as the `engine_inla`

function acts a wrapper for INLA, albeit
`"inlabru"`

has a number of convenience functions implemented that
make in particular predictions with new data much more straight forward
(e.g. via posterior simulation instead of fitting). Since more recent
versions `"inlabru"`

also supports the addition of multiple
likelihoods, therefore allowing full integrated inference.

## Usage

```
engine_inlabru(
x,
optional_mesh = NULL,
max.edge = NULL,
offset = NULL,
cutoff = NULL,
proj_stepsize = NULL,
strategy = "auto",
int.strategy = "eb",
area = "gpc2",
timeout = NULL,
type = "response",
...
)
```

## Arguments

- x
`distribution()`

(i.e.`BiodiversityDistribution`

) object.- optional_mesh
A directly supplied

`"INLA"`

mesh (Default:`NULL`

)- max.edge
The largest allowed triangle edge length, must be in the same scale units as the coordinates. Default is an educated guess (Default:

`NULL`

).- offset
interpreted as a numeric factor relative to the approximate data diameter. Default is an educated guess (Default:

`NULL`

).- cutoff
The minimum allowed distance between points on the mesh. Default is an educated guess (Default:

`NULL`

).- proj_stepsize
The stepsize in coordinate units between cells of the projection grid (Default:

`NULL`

)- strategy
Which approximation to use for the joint posterior. Options are

`"auto"`

("default"),`"adaptative"`

,`"gaussian"`

,`"simplified.laplace"`

&`"laplace"`

.- int.strategy
Integration strategy. Options are

`"auto"`

,`"grid"`

,`"eb"`

("default") &`"ccd"`

.- area
Accepts a

`character`

denoting the type of area calculation to be done on the mesh (Default:`'gpc2'`

).- timeout
Specify a timeout for INLA models in sec. Afterwards it passed.

- type
The mode used for creating posterior predictions. Either summarizing the linear

`"predictor"`

or`"response"`

(Default:`"response"`

).- ...
Other variables

## Value

An Engine.

## Details

All `INLA`

engines require the specification of a mesh that
needs to be provided to the `"optional_mesh"`

parameter. Otherwise the
mesh will be created based on best guesses of the data spread. A good mesh
needs to have triangles as regular as possible in size and shape:
equilateral.

* `"max.edge"`

: The largest allowed triangle edge length, must be in
the same scale units as the coordinates Lower bounds affect the density of
triangles * `"offset"`

: The automatic extension distance of the mesh
If positive: same scale units. If negative, interpreted as a factor relative
to the approximate data diameter i.e., a value of -0.10 will add a 10% of the
data diameter as outer extension. * `"cutoff"`

: The minimum allowed
distance between points, it means that points at a closer distance than the
supplied value are replaced by a single vertex. it is critical when there are
some points very close to each other, either for point locations or in the
domain boundary. * `"proj_stepsize"`

: The stepsize for spatial
predictions, which affects the spatial grain of any outputs created.

Priors can be set via INLAPrior.

## Note

**How INLA Meshes are generated, substantially influences prediction outcomes. See Dambly et al. (2023).**

## References

Bachl, F. E., Lindgren, F., Borchers, D. L., & Illian, J. B. (2019). inlabru: an R package for Bayesian spatial modelling from ecological survey data. Methods in Ecology and Evolution, 10(6), 760-766.

Simpson, Daniel, Janine B. Illian, S. H. Sørbye, and Håvard Rue. 2016. “Going Off Grid: Computationally Efficient Inference for Log-Gaussian Cox Processes.” Biometrika 1 (103): 49–70.

Dambly, L. I., Isaac, N. J., Jones, K. E., Boughey, K. L., & O'Hara, R. B. (2023). Integrated species distribution models fitted in INLA are sensitive to mesh parameterisation. Ecography, e06391.

## See also

Other engine:
`engine_bart()`

,
`engine_breg()`

,
`engine_gdb()`

,
`engine_glm()`

,
`engine_glmnet()`

,
`engine_inla()`

,
`engine_stan()`

,
`engine_xgboost()`

## Examples

```
if (FALSE) {
# Add inlabru as an engine
x <- distribution(background) |> engine_inlabru()
}
```