Skip to contents

Check Bayesian models fitted with brms

Usage

dh_check_brms(
  model,
  resp = NULL,
  integer = FALSE,
  plot = TRUE,
  nsamples = 1000,
  ntrys = 5,
  ...
)

Arguments

model

A fitted model brms::brmsfit-class(). Categorical and ordinal models not supported by now.

resp

Optional name of response variable (for multivariate models).

integer

Logical (TRUE/FALSE), indicating if response is an integer, as in Poisson and binomial models

plot

Logical. Plot residual checks? Default is TRUE.

nsamples

Integer. Number of samples to draw from the posterior.

ntrys

Integer. Number of trys to use for truncated distributions. See brms::posterior_predict().

...

Further arguments for DHARMa::plotResiduals()

Value

An object of type DHARMa. See DHARMa::createDHARMa() for more details.

Examples

if (FALSE) { # interactive()

#' # Example models taken from brms::brm()

# Poisson regression for the number of seizures in epileptic patients
fit1 <- brm(count ~ zAge + zBase * Trt + (1|patient),
           data = epilepsy, family = poisson())
simres <- dh_check_brms(fit1, integer = TRUE)
plot(simres, form = epilepsy$zAge)
testDispersion(simres)


# Probit regression using the binomial family
ntrials <- sample(1:10, 100, TRUE)
success <- rbinom(100, size = ntrials, prob = 0.4)
x <- rnorm(100)
data4 <- data.frame(ntrials, success, x)
fit4 <- brm(success | trials(ntrials) ~ x, data = data4,
            family = binomial("probit"))
summary(fit4)
simres <- dh_check_brms(fit4, integer = TRUE)
plot(simres, form = data4$x)


# Multivariate (multiresponse) model
data("BTdata", package = "MCMCglmm")
bf_tarsus <- bf(tarsus ~ sex + (1|p|fosternest) + (1|q|dam))
bf_back <- bf(back ~ hatchdate + (1|p|fosternest) + (1|q|dam))
fit <- brm(bf_tarsus + bf_back + set_rescor(TRUE),
            data = BTdata, chains = 2, cores = 2)
dh_check_brms(fit, resp = "tarsus")
brms::pp_check(fit, resp = "tarsus")
dh_check_brms(fit, resp = "back")
brms::pp_check(fit, resp = "back")
}