Nothing
#' @include get_predict.R
#' @rdname get_predict
#' @export
get_predict.bart <- function(model, newdata = NULL, ...) {
args <- c(
list(
object = model,
newdata = newdata),
list(...))
p <- do.call(stats::predict, args)
p_med <- collapse::fmedian(p)
if ("rowid" %in% colnames(newdata) && nrow(newdata) == length(p_med)) {
out <- data.frame(
rowid = newdata$rowid,
group = "main_marginaleffect",
estimate = p_med
)
} else {
out <- data.frame(
rowid = seq_along(length(p_med)),
group = "main_marginaleffect",
estimate = p_med
)
}
attr(out, "posterior_draws") <- t(p)
return(out)
}
#' @include sanity_model.R
#' @rdname sanitize_model_specific
#' @export
sanitize_model_specific.bart <- function(model, ...) {
insight::check_if_installed("collapse", minimum_version = "1.9.0")
if (!isTRUE(as.character(insight::get_call(model))[1] %in% c("bart2", "dbarts::bart2"))) {
msg <- "`marginaleffects` only supports models estimated using the formula interface in `bart2()` function, not the matrix input in `bart()`."
insight::format_error(msg)
}
return(model)
}
#' @rdname get_vcov
#' @export
get_vcov.bart <- function(model, vcov = NULL, ...) {
if (!is.null(vcov) && !is.logical(vcov)) {
insight::format_warning("The `vcov` argument is not supported for models of this class.")
}
return(NULL)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.