-
-
Notifications
You must be signed in to change notification settings - Fork 55
Commit
dev
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
#' Convert (refit) a Bayesian model to frequentist | ||
#' | ||
#' Refit Bayesian model as frequentist. Can be useful for comparisons. | ||
#' | ||
#' @param model A Bayesian model. | ||
#' @param data Data used by the model. If \code{NULL}, will try to extract it from the model. | ||
#' @examples | ||
#' \donttest{ | ||
#' # Rstanarm ---------------------- | ||
#' library(rstanarm) | ||
#' | ||
#' # Simple regressions | ||
#' model <- stan_glm(Sepal.Length ~ Petal.Length * Species, | ||
#' data = iris, chains = 2, refresh = 0) | ||
#' bayesian_as_frequentist(model) | ||
#' | ||
#' model <- stan_glm(vs ~ mpg, family = "binomial", | ||
#' data = mtcars, chains = 2, refresh = 0) | ||
#' bayesian_as_frequentist(model) | ||
#' | ||
#' # Mixed models | ||
#' model <- stan_glmer(Sepal.Length ~ Petal.Length + (1|Species), | ||
#' data = iris, chains = 2, refresh = 0) | ||
#' bayesian_as_frequentist(model) | ||
#' | ||
#' model <- stan_glmer(vs ~ mpg + (1|cyl), family = "binomial", | ||
#' data = mtcars, chains = 2, refresh = 0) | ||
#' bayesian_as_frequentist(model) | ||
#' } | ||
#' | ||
#' @importFrom stats lm glm | ||
#' @export | ||
convert_bayesian_as_frequentist <- function(model, data = NULL) { | ||
|
||
if (is.null(data)) { | ||
data <- insight::get_data(model) | ||
} | ||
|
||
# info | ||
info <- insight::model_info(model) | ||
|
||
# Call | ||
called <- model$call | ||
# fun <- as.character(called)[1] | ||
formula <- called$formula | ||
family <- called$family | ||
|
||
if (info$is_mixed) { | ||
if (!requireNamespace("lme4", quietly = TRUE)) { | ||
stop("Package 'lme4' required for this function to work. Please install it by running `install.packages('lme4')`.") | ||
} | ||
if (info$is_linear) { | ||
freq <- lme4::lmer(formula, data = data) | ||
} else{ | ||
freq <- lme4::glmer(formula, data = data, family = family) | ||
} | ||
} else{ | ||
if (info$is_linear) { | ||
freq <- stats::lm(formula, data = data) | ||
} else{ | ||
freq <- stats::glm(formula, data = data, family = family) | ||
} | ||
} | ||
|
||
freq | ||
} | ||
|
||
|
||
#' @rdname convert_bayesian_as_frequentist | ||
#' @export | ||
bayesian_as_frequentist <- convert_bayesian_as_frequentist |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.