See the residual-checking vignette: `browseVignettes("sdmTMB")`

or on the documentation site.
See notes about types of residuals in 'Details' section below.

## Arguments

- object
An

`sdmTMB()`

model- type
Type of residual. See details.

- model
Which delta/hurdle model component?

- mcmc_samples
A vector of MCMC samples of the linear predictor in link space. See the sdmTMBextra package.

- ...
Passed to residual function. Only

`n`

works for binomial.

## Details

Types of residuals currently supported:

** "mle-laplace"** refers to randomized quantile residuals (Dunn &
Smyth 1996), which are also known as probability integral transform (PIT)
residuals (Smith 1985). Under model assumptions, these should be distributed
as standard normal with the following caveat: the Laplace approximation used
for the latent/random effects can cause these residuals to deviate from the
standard normal assumption even if the model is consistent with the data
(Thygesen et al. 2017). Therefore,

**these residuals are fast to calculate but can be unreliable.**

** "mle-mcmc"** refers to randomized quantile residuals where the fixed
effects are fixed at their MLE (maximum likelihood estimate) values and the
random effects are sampled with MCMC via tmbstan/Stan. As proposed in
Thygesen et al. (2017) and used in Rufener et al. (2021). Under model
assumptions, these should be distributed as standard normal.

**These residuals are theoretically preferred over the regular Laplace approximated randomized-quantile residuals, but will be considerably slower to calculate.**

See the sdmTMBextra
package for the function `predict_mle_mcmc()`

,
which can generate the MCMC samples to pass to the `mcmc_samples`

argument.
Ideally MCMC is run until convergence and then the last iteration can be
used for residuals. MCMC samples are defined by `mcmc_iter - mcmc_warmup`

.
The Stan model can be printed with `print_stan_model = TRUE`

to check.
The defaults may not be sufficient for many models.

** "mvn-laplace"** is the same as

`"mle-laplace"`

except the parameters are
based on simulations drawn from the assumed multivariate normal distribution
(using the joint precision matrix).** "response"** refers to response residuals: observed minus predicted.

## References

Dunn, P.K. & Smyth, G.K. (1996). Randomized Quantile Residuals. Journal of Computational and Graphical Statistics, 5, 236–244.

Smith, J.Q. (1985). Diagnostic checks of non-standard time series models. Journal of Forecasting, 4, 283–291.

Rufener, M.-C., Kristensen, K., Nielsen, J.R., and Bastardie, F. 2021. Bridging the gap between commercial fisheries and survey data to model the spatiotemporal dynamics of marine species. Ecological Applications. e02453. doi:10.1002/eap.2453

Thygesen, U.H., Albertsen, C.M., Berg, C.W., Kristensen, K., and Nielsen, A. 2017. Validation of ecological state space models using the Laplace approximation. Environ Ecol Stat 24(2): 317–339. doi:10.1007/s10651-017-0372-4

## Examples

```
if (inla_installed()) {
mesh <- make_mesh(pcod_2011, c("X", "Y"), cutoff = 10)
fit <- sdmTMB(
present ~ as.factor(year) + poly(depth, 3),
data = pcod_2011, mesh = mesh,
family = binomial()
)
# response residuals will be not be normally distributed unless
# the family is Gaussian:
r0 <- residuals(fit, type = "response")
qqnorm(r0)
qqline(r0)
# quick but can have issues because of Laplace approximation:
r1 <- residuals(fit, type = "mle-laplace")
qqnorm(r1)
qqline(r1)
# see also "mle-mcmc" residuals with the help of the sdmTMBextra package
}
```