Find the Highest Maximum A Posteriori probability estimate (MAP) of a
posterior, i.e., the value associated with the highest probability density
(the "peak" of the posterior distribution). In other words, it is an estimation
of the mode for continuous parameters. Note that this function relies on
estimate_density()
, which by default uses a different smoothing bandwidth
("SJ"
) compared to the legacy default implemented the base R density()
function ("nrd0"
).
map_estimate(x, ...)# S3 method for numeric
map_estimate(x, precision = 2^10, method = "kernel", ...)
# S3 method for stanreg
map_estimate(
x,
precision = 2^10,
method = "kernel",
effects = c("fixed", "random", "all"),
component = c("location", "all", "conditional", "smooth_terms", "sigma",
"distributional", "auxiliary"),
parameters = NULL,
...
)
# S3 method for brmsfit
map_estimate(
x,
precision = 2^10,
method = "kernel",
effects = c("fixed", "random", "all"),
component = c("conditional", "zi", "zero_inflated", "all"),
parameters = NULL,
...
)
# S3 method for data.frame
map_estimate(x, precision = 2^10, method = "kernel", rvar_col = NULL, ...)
# S3 method for get_predicted
map_estimate(
x,
precision = 2^10,
method = "kernel",
use_iterations = FALSE,
verbose = TRUE,
...
)
A numeric value if x
is a vector. If x
is a model-object,
returns a data frame with following columns:
Parameter
: The model parameter(s), if x
is a model-object. If x
is a
vector, this column is missing.
MAP_Estimate
: The MAP estimate for the posterior or each model parameter.
Vector representing a posterior distribution, or a data frame of such
vectors. Can also be a Bayesian model. bayestestR supports a wide range
of models (see, for example, methods("hdi")
) and not all of those are
documented in the 'Usage' section, because methods for other classes mostly
resemble the arguments of the .numeric
or .data.frame
methods.
Currently not used.
Number of points of density data. See the n
parameter in density
.
Density estimation method. Can be "kernel"
(default), "logspline"
or "KernSmooth"
.
Should results for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated.
Should results for all parameters, parameters for the conditional model or the zero-inflated part of the model be returned? May be abbreviated. Only applies to brms-models.
Regular expression pattern that describes the parameters
that should be returned. Meta-parameters (like lp__
or prior_
) are
filtered by default, so only parameters that typically appear in the
summary()
are returned. Use parameters
to select specific parameters
for the output.
A single character - the name of an rvar
column in the data
frame to be processed. See example in p_direction()
.
Logical, if TRUE
and x
is a get_predicted
object,
(returned by insight::get_predicted()
), the function is applied to the
iterations instead of the predictions. This only applies to models that return
iterations for predicted values (e.g., brmsfit
models).
Toggle off warnings.
if (FALSE) { # require("rstanarm") && require("brms")
# \donttest{
library(bayestestR)
posterior <- rnorm(10000)
map_estimate(posterior)
plot(density(posterior))
abline(v = as.numeric(map_estimate(posterior)), col = "red")
model <- rstanarm::stan_glm(mpg ~ wt + cyl, data = mtcars)
map_estimate(model)
model <- brms::brm(mpg ~ wt + cyl, data = mtcars)
map_estimate(model)
# }
}
Run the code above in your browser using DataLab