gather_emmeans_draws {tidybayes} | R Documentation |
Extract a tidy data frame of draws of posterior distributions of "estimated marginal means" (emmeans/lsmeans) from a Bayesian model fit.
Description
Extract draws from the result of a call to emmeans::emmeans()
(formerly lsmeans
)
or emmeans::ref_grid()
applied to a Bayesian model.
Usage
gather_emmeans_draws(object, value = ".value", ...)
## Default S3 method:
gather_emmeans_draws(object, value = ".value", ...)
## S3 method for class 'emm_list'
gather_emmeans_draws(object, value = ".value", grid = ".grid", ...)
Arguments
object |
An |
value |
The name of the output column to use to contain the values of draws. Defaults to |
... |
Additional arguments passed to the underlying method for the type of object given. |
grid |
If |
Details
emmeans::emmeans()
provides a convenient syntax for generating draws from "estimated marginal means" from a model,
and can be applied to various Bayesian models, like rstanarm::stanreg-objects and
MCMCglmm::MCMCglmm()
. Given a emmeans::ref_grid()
object as returned by functions like
emmeans::ref_grid()
or emmeans::emmeans()
applied to a Bayesian model,
gather_emmeans_draws
returns a tidy format data frame of draws from
the marginal posterior distributions generated by emmeans::emmeans()
.
Value
A tidy data frame of draws. The columns of the reference grid are returned as-is, with an
additional column called .value
(by default) containing marginal draws. The resulting data
frame is grouped by the columns from the reference grid to make use of summary functions like
point_interval()
straightforward.
If object
is an emmeans::emm_list()
, which contains estimates from different reference grids,
an additional column with the default name of ".grid"
is added to indicate the reference grid for each row in the output.
The name of this column is controlled by the grid
argument.
Author(s)
Matthew Kay
See Also
Examples
## Not run:
library(dplyr)
library(magrittr)
library(brms)
library(emmeans)
# Here's an example dataset with a categorical predictor (`condition`) with several levels:
set.seed(5)
n = 10
n_condition = 5
ABC = tibble(
condition = rep(c("A","B","C","D","E"), n),
response = rnorm(n * 5, c(0,1,2,1,-1), 0.5)
)
m = brm(response ~ condition, data = ABC,
# 1 chain / few iterations just so example runs quickly
# do not use in practice
chains = 1, iter = 500)
# Once we've fit the model, we can use emmeans() (and functions
# from that package) to get whatever marginal distributions we want.
# For example, we can get marginal means by condition:
m %>%
emmeans(~ condition) %>%
gather_emmeans_draws() %>%
median_qi()
# or we could get pairwise differences:
m %>%
emmeans(~ condition) %>%
contrast(method = "pairwise") %>%
gather_emmeans_draws() %>%
median_qi()
# see the documentation of emmeans() for more examples of types of
# contrasts supported by that packge.
## End(Not run)