Stan is probabilistic programming language that can be used to
specify most types of statistical linear and non-linear regression models.
Stan provides full Bayesian inference for continuous-variable models
through Markov chain Monte Carlo methods such as the No-U-Turn sampler, an
adaptive form of Hamiltonian Monte Carlo sampling. Stan code has to be
written separately and this function acts as compiler to build the
stan-model.
**Requires the "cmdstanr" package to be installed!**

## Arguments

- x
`distribution()`

(i.e.`BiodiversityDistribution`

) object.- chains
A positive

`integer`

specifying the number of Markov chains (Default:`4`

chains).- iter
A positive

`integer`

specifying the number of iterations for each chain (including warmup). (Default:`2000`

).- warmup
A positive

`integer`

specifying the number of warmup (aka burnin) iterations per chain. If step-size adaptation is on (Default:`TRUE`

), this also controls the number of iterations for which adaptation is run (and hence these warmup samples should not be used for inference). The number of warmup iterations should be smaller than`iter`

and the default is`iter/2`

.- init
Initial values for parameters (Default:

`'random'`

). Can also be specified as list (see:`"rstan::stan"`

)- cores
If set to NULL take values from specified ibis option

`getOption('ibis.nthread')`

.- algorithm
Mode used to sample from the posterior. Available options are

`"sampling"`

,`"optimize"`

, or`"variational"`

. See`"cmdstanr"`

package for more details. (Default:`"sampling"`

).- control
See

`"rstan::stan"`

for more details on specifying the controls.- type
The mode used for creating posterior predictions. Either summarizing the linear

`"predictor"`

or`"response"`

(Default:`"response"`

).- ...
Other variables

## Value

An Engine.

## Details

By default the posterior is obtained through sampling, however stan also supports approximate inference forms through penalized maximum likelihood estimation (see Carpenter et al. 2017).

## References

Jonah Gabry and Rok Češnovar (2021). cmdstanr: R Interface to 'CmdStan'. https://mc-stan.org/cmdstanr, https://discourse.mc-stan.org.

Carpenter, B., Gelman, A., Hoffman, M. D., Lee, D., Goodrich, B., Betancourt, M., ... & Riddell, A. (2017). Stan: A probabilistic programming language. Journal of statistical software, 76(1), 1-32.

Piironen, J., & Vehtari, A. (2017). Sparsity information and regularization in the horseshoe and other shrinkage priors. Electronic Journal of Statistics, 11(2), 5018-5051.

## See also

rstan, cmdstanr

Other engine:
`engine_bart()`

,
`engine_breg()`

,
`engine_gdb()`

,
`engine_glmnet()`

,
`engine_inlabru()`

,
`engine_inla()`

,
`engine_xgboost()`

## Examples

```
if (FALSE) {
# Add Stan as an engine
x <- distribution(background) |> engine_stan(iter = 1000)
}
```