
Last chance! 50% off unlimited learning
Sale ends in
Generates a data frame of bins representing the kernel density (or histogram) of a vector, suitable for use in generating predictive distributions using predict_curve.
density_bins(x, n = 101, ...)histogram_bins(x, n = 30, breaks = n, ...)
A numeric vector
Number of bins
Used to set bins for histogram_bins
. Can be number of bins (by default it is set to the value
of n
) or a method for setting bins. See the breaks
argument of hist
.
A data frame representing bins and their densities with the following columns:
Bin midpoint
Lower endpoint of each bin
Upper endpoint of each bin
Density estimate of the bin
These functions are simple wrappers to density
and
hist
that compute density estimates and return their results
in a consistent format: a data frame of bins suitable for use with
predict_curve
.
density_bins
computes a kernel density estimate using
density
.
histogram_bins
computes a density histogram using hist
.
See add_predicted_draws
and stat_lineribbon
for a better approach. This
function may be deprecated in the future.
# NOT RUN {
library(ggplot2)
library(dplyr)
library(purrr)
library(tidyr)
if (
require("rstanarm", quietly = TRUE) &&
require("modelr", quietly = TRUE)
) {
theme_set(theme_light())
m_mpg = stan_glm(mpg ~ hp * cyl, data = mtcars)
step = 1
mtcars %>%
group_by(cyl) %>%
data_grid(hp = seq_range(hp, by = step)) %>%
add_predicted_draws(m_mpg) %>%
summarise_all(list) %>%
mutate(densities = map(.prediction, density_bins)) %>%
unnest(densities) %>%
ggplot() +
geom_rect(aes(
xmin = hp - step/2, ymin = lower, ymax = upper, xmax = hp + step/2,
fill = ordered(cyl), alpha = density
)) +
geom_point(aes(x = hp, y = mpg, fill = ordered(cyl)), shape = 21, data = mtcars) +
scale_alpha_continuous(range = c(0, 1)) +
scale_fill_brewer(palette = "Set2")
}
# }
Run the code above in your browser using DataLab