#' @title Checks if an object stems from a multivariate response model
#' @name is_multivariate
#'
#' @description Small helper that checks if a model is a multivariate response
#' model, i.e. a model with multiple outcomes.
#'
#' @param x A model object, or an object returned by a function from this
#' package.
#'
#' @return
#' A logical, `TRUE` if either `x` is a model object and is a multivariate
#' response model, or `TRUE` if a return value from a function of **insight**
#' is from a multivariate response model.
#'
#' @examplesIf require("rstanarm", quietly = TRUE)
#' \donttest{
#' library(rstanarm)
#' data("pbcLong")
#' model <- suppressWarnings(stan_mvmer(
#' formula = list(
#' logBili ~ year + (1 | id),
#' albumin ~ sex + year + (year | id)
#' ),
#' data = pbcLong,
#' chains = 1, cores = 1, seed = 12345, iter = 1000,
#' show_messages = FALSE, refresh = 0
#' ))
#'
#' f <- find_formula(model)
#' is_multivariate(model)
#' is_multivariate(f)
#' }
#' @export
is_multivariate <- function(x) {
mv_classes <- c("stanmvreg", "mlm", "mvord")
if (inherits(x, mv_classes)) {
return(TRUE)
}
if (inherits(x, "gam", which = TRUE) == 1) {
f <- .gam_family(x)
return(isTRUE(!is.null(f) && f$family == "Multivariate normal"))
}
if (inherits(x, "brmsfit")) {
return(!is.null(stats::formula(x)$response))
}
if (!is.null(attr(x, "is_mv", exact = TRUE))) {
return(TRUE)
}
if (inherits(x, "lm_robust")) {
return(isTRUE(ncol(x$coefficients) > 1L))
}
vgam_classes <- c("vglm", "vgam")
if (inherits(x, vgam_classes)) {
return(isTRUE(x@extra$multiple.responses))
}
FALSE
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.